ooo-build r12605 - in trunk: . patches/test
- From: kyoshida svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r12605 - in trunk: . patches/test
- Date: Tue, 20 May 2008 04:07:35 +0000 (UTC)
Author: kyoshida
Date: Tue May 20 04:07:34 2008
New Revision: 12605
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12605&view=rev
Log:
2008-05-20 Kohei Yoshida <kyoshida novell com>
* patches/test/sfx-broadcaster-hashset-automation.diff:
* patches/test/sfx-broadcaster-hashset-basic.diff:
* patches/test/sfx-broadcaster-hashset-chart2.diff:
* patches/test/sfx-broadcaster-hashset-sc.diff:
* patches/test/sfx-broadcaster-hashset-sd.diff:
* patches/test/sfx-broadcaster-hashset-sfx2.diff:
* patches/test/sfx-broadcaster-hashset-svtools.diff:
* patches/test/sfx-broadcaster-hashset-svx.diff: experimental patch set
to re-implement SfxBroadcaster and SfxListener with hashed containers.
It doesn't quite work yet.
Added:
trunk/patches/test/sfx-broadcaster-hashset-automation.diff
trunk/patches/test/sfx-broadcaster-hashset-basic.diff
trunk/patches/test/sfx-broadcaster-hashset-chart2.diff
trunk/patches/test/sfx-broadcaster-hashset-sc.diff
trunk/patches/test/sfx-broadcaster-hashset-sd.diff
trunk/patches/test/sfx-broadcaster-hashset-sfx2.diff
trunk/patches/test/sfx-broadcaster-hashset-svtools.diff
trunk/patches/test/sfx-broadcaster-hashset-svx.diff
Modified:
trunk/ChangeLog
Added: trunk/patches/test/sfx-broadcaster-hashset-automation.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-automation.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,16 @@
+diff --git a/automation/source/app/testbasi.cxx b/automation/source/app/testbasi.cxx
+index d5d8ee2..3f77243 100644
+--- automation/source/app/testbasi.cxx
++++ automation/source/app/testbasi.cxx
+@@ -152,9 +152,9 @@ void TTBasic::ReportRuntimeError( AppBasEd *pEditWin )
+ {
+ SbxVariableRef aDummy = new SbxVariable;
+ aDummy->SetUserData( 24 ); // ID_MaybeAddErr
+- ((TestToolObj*)pTestObject)->SFX_NOTIFY( pTestObject->GetBroadcaster(), xx, SbxHint( SBX_HINT_DATAWANTED, aDummy ), xx );
++ ((TestToolObj*)pTestObject)->Notify( pTestObject->GetBroadcaster(), SbxHint( SBX_HINT_DATAWANTED, aDummy ) );
+ aDummy->SetUserData( 18 ); // ID_ExceptLog
+- ((TestToolObj*)pTestObject)->SFX_NOTIFY( pTestObject->GetBroadcaster(), xx, SbxHint( SBX_HINT_DATAWANTED, aDummy ), xx );
++ ((TestToolObj*)pTestObject)->Notify( pTestObject->GetBroadcaster(), SbxHint( SBX_HINT_DATAWANTED, aDummy ) );
+ MyBasic::ReportRuntimeError( pEditWin );
+ }
+
Added: trunk/patches/test/sfx-broadcaster-hashset-basic.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-basic.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,28 @@
+diff --git a/basic/source/app/app.cxx b/basic/source/app/app.cxx
+index ff2be94..ffd1eff 100644
+--- basic/source/app/app.cxx
++++ basic/source/app/app.cxx
+@@ -828,8 +828,7 @@ void BasicFrame::SetAutoRun( BOOL bAuto )
+ bIsAutoRun = bAuto;
+ }
+
+-void BasicFrame::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
+- const SfxHint& rHint, const TypeId& )
++void BasicFrame::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+ if ( rHint.ISA( TTExecutionStatusHint ) )
+ {
+diff --git a/basic/source/app/appbased.cxx b/basic/source/app/appbased.cxx
+index 06b59d6..3ea8541 100644
+--- basic/source/app/appbased.cxx
++++ basic/source/app/appbased.cxx
+@@ -108,8 +108,7 @@ AppBasEd::~AppBasEd()
+ pMod->SetName( CUniString("--").Append( pMod->GetName() ) );
+ }
+
+-void AppBasEd::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
+- const SfxHint& rHint, const TypeId& )
++void AppBasEd::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+ const SfxSimpleHint* p = PTR_CAST(SfxSimpleHint,&rHint);
+ if( p )
Added: trunk/patches/test/sfx-broadcaster-hashset-chart2.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-chart2.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,34 @@
+diff --git a/chart2/source/controller/drawinglayer/DrawViewWrapper.cxx b/chart2/source/controller/drawinglayer/DrawViewWrapper.cxx
+index 4dba7a8..728e443 100644
+--- chart2/source/controller/drawinglayer/DrawViewWrapper.cxx
++++ chart2/source/controller/drawinglayer/DrawViewWrapper.cxx
+@@ -342,14 +342,14 @@ bool DrawViewWrapper::IsObjectHit( SdrObject* pObj, const Point& rPnt ) const
+ return false;
+ }
+
+-void DrawViewWrapper::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void DrawViewWrapper::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ //prevent wrong reselection of objects
+ SdrModel* pSdrModel( this->GetModel() );
+ if( pSdrModel && pSdrModel->isLocked() )
+ return;
+
+- E3dView::SFX_NOTIFY(rBC, rBCType, rHint, rHintType);
++ E3dView::Notify(rBC, rHint);
+
+ const SdrHint* pSdrHint = dynamic_cast< const SdrHint* >( &rHint );
+ if( pSdrHint != 0 )
+diff --git a/chart2/source/controller/inc/DrawViewWrapper.hxx b/chart2/source/controller/inc/DrawViewWrapper.hxx
+index 6329d2e..b22b31b 100644
+--- chart2/source/controller/inc/DrawViewWrapper.hxx
++++ chart2/source/controller/inc/DrawViewWrapper.hxx
+@@ -94,7 +94,7 @@ public:
+ SdrObject* getNamedSdrObject( const rtl::OUString& rName ) const;
+ bool IsObjectHit( SdrObject* pObj, const Point& rPnt ) const;
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ static SdrObject* getSdrObject( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XShape >& xShape );
Added: trunk/patches/test/sfx-broadcaster-hashset-sc.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-sc.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,186 @@
+diff --git a/sc/inc/stlsheet.hxx b/sc/inc/stlsheet.hxx
+index 3a9248d..7b768b0 100644
+--- sc/inc/stlsheet.hxx
++++ sc/inc/stlsheet.hxx
+@@ -87,8 +87,7 @@ protected:
+ SfxStyleFamily eFamily,
+ USHORT nMask );
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+ };
+
+ #endif // SC_STLSHEET_HXX
+diff --git a/sc/source/ui/docshell/servobj.cxx b/sc/source/ui/docshell/servobj.cxx
+index 8c31a1b..d71757b 100644
+--- sc/source/ui/docshell/servobj.cxx
++++ sc/source/ui/docshell/servobj.cxx
+@@ -209,8 +209,7 @@ BOOL __EXPORT ScServerObject::GetData(
+ return 0;
+ }
+
+-void __EXPORT ScServerObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType )
++void __EXPORT ScServerObject::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ {
+ BOOL bDataChanged = FALSE;
+
+diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
+index c718207..7579cae 100644
+--- sc/source/ui/inc/docsh.hxx
++++ sc/source/ui/inc/docsh.hxx
+@@ -161,8 +161,7 @@ class SC_DLLPUBLIC ScDocShell: public SfxObjectShell, public SfxListener
+
+ protected:
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ public:
+ TYPEINFO();
+diff --git a/sc/source/ui/inc/drawview.hxx b/sc/source/ui/inc/drawview.hxx
+index fa02725..3177ba9 100644
+--- sc/source/ui/inc/drawview.hxx
++++ sc/source/ui/inc/drawview.hxx
+@@ -71,8 +71,7 @@ public:
+ virtual ~ScDrawView();
+
+ virtual void MarkListHasChanged();
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ virtual void DoConnect(SdrOle2Obj* pOleObj);
+
+diff --git a/sc/source/ui/inc/dwfunctr.hxx b/sc/source/ui/inc/dwfunctr.hxx
+index ce25f83..b1d0a08 100644
+--- sc/source/ui/inc/dwfunctr.hxx
++++ sc/source/ui/inc/dwfunctr.hxx
+@@ -146,8 +146,7 @@ public:
+ ~ScFunctionDockWin();
+
+ using SfxDockingWindow::Notify;
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ void SetSlotIDs( USHORT nLeft, USHORT nRight )
+ { nLeftSlot = nLeft; nRightSlot = nRight; }
+diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
+index 02338fa..e32a9f5 100644
+--- sc/source/ui/inc/inputwin.hxx
++++ sc/source/ui/inc/inputwin.hxx
+@@ -140,8 +140,7 @@ protected:
+
+ virtual long Notify( NotifyEvent& rNEvt );
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ private:
+ void FillRangeNames();
+diff --git a/sc/source/ui/inc/navipi.hxx b/sc/source/ui/inc/navipi.hxx
+index 0c9e34a..27bf4a5 100644
+--- sc/source/ui/inc/navipi.hxx
++++ sc/source/ui/inc/navipi.hxx
+@@ -330,8 +330,7 @@ public:
+ ~ScNavigatorDlg();
+
+ using Window::Notify;
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ void CursorPosChanged();
+
+diff --git a/sc/source/ui/inc/prevwsh.hxx b/sc/source/ui/inc/prevwsh.hxx
+index 7fd20a3..02a57c4 100644
+--- sc/source/ui/inc/prevwsh.hxx
++++ sc/source/ui/inc/prevwsh.hxx
+@@ -118,8 +118,7 @@ public:
+ GetSourceData() const { return aSourceData; }
+ BYTE GetSourceDesignMode() const { return nSourceDesignMode; }
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ virtual SfxPrinter* GetPrinter( BOOL bCreate = FALSE );
+ virtual USHORT SetPrinter( SfxPrinter* pNewPrinter, USHORT nDiffFlags = SFX_PRINTER_ALL, bool bIsAPI=false );
+diff --git a/sc/source/ui/inc/servobj.hxx b/sc/source/ui/inc/servobj.hxx
+index 48a7dd4..e2bda29 100644
+--- sc/source/ui/inc/servobj.hxx
++++ sc/source/ui/inc/servobj.hxx
+@@ -69,8 +69,7 @@ public:
+ const String & rMimeType,
+ BOOL bSynchron = FALSE );
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+ void EndListeningAll();
+ };
+
+diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
+index c6dd6a5..b0f3949 100644
+--- sc/source/ui/inc/tabvwsh.hxx
++++ sc/source/ui/inc/tabvwsh.hxx
+@@ -357,8 +357,7 @@ public:
+ void SetEditChartName(const String& aStr){aEditChartName=aStr;}
+ const String& GetEditChartName() const;
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ ScNavigatorSettings* GetNavigatorSettings();
+
+diff --git a/sc/source/ui/view/drawvie3.cxx b/sc/source/ui/view/drawvie3.cxx
+index 9eb58ee..6a8af49 100644
+--- sc/source/ui/view/drawvie3.cxx
++++ sc/source/ui/view/drawvie3.cxx
+@@ -141,8 +141,7 @@ ScAnchorType ScDrawView::GetAnchor() const
+ return SCA_DONTKNOW;
+ }
+
+-void __EXPORT ScDrawView::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType )
++void __EXPORT ScDrawView::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ {
+ if (rHint.ISA(ScTabDeletedHint)) // Tabelle geloescht
+ {
+@@ -160,7 +159,7 @@ void __EXPORT ScDrawView::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType
+ UpdateWorkArea();
+ }
+ else
+- FmFormView::SFX_NOTIFY( rBC,rBCType,rHint,rHintType );
++ FmFormView::Notify( rBC,rHint );
+ }
+
+ void ScDrawView::UpdateIMap( SdrObject* pObj )
+diff --git a/sc/source/ui/view/tabvwsh5.cxx b/sc/source/ui/view/tabvwsh5.cxx
+index e60c51c..56bac97 100644
+--- sc/source/ui/view/tabvwsh5.cxx
++++ sc/source/ui/view/tabvwsh5.cxx
+@@ -58,8 +58,7 @@
+
+ //==================================================================
+
+-void __EXPORT ScTabViewShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType )
++void __EXPORT ScTabViewShell::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ {
+ if (rHint.ISA(SfxSimpleHint)) // ohne Parameter
+ {
+@@ -313,7 +312,7 @@ void __EXPORT ScTabViewShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBC
+ }
+ }
+
+- SfxViewShell::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
++ SfxViewShell::Notify( rBC, rHint );
+ }
+
+ //------------------------------------------------------------------
Added: trunk/patches/test/sfx-broadcaster-hashset-sd.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-sd.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,250 @@
+diff --git a/sd/inc/stlpool.hxx b/sd/inc/stlpool.hxx
+index 4e12eee..ff5fc49 100644
+--- sd/inc/stlpool.hxx
++++ sd/inc/stlpool.hxx
+@@ -135,7 +135,7 @@ protected:
+ using SfxStyleSheetPool::Create;
+ virtual ~SdStyleSheetPool();
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ void AddStyleFamily( const SdPage* pPage );
+ void RemoveStyleFamily( const SdPage* pPage );
+diff --git a/sd/inc/stlsheet.hxx b/sd/inc/stlsheet.hxx
+index 3ee3e39..d5761f4 100644
+--- sd/inc/stlsheet.hxx
++++ sd/inc/stlsheet.hxx
+@@ -136,7 +136,7 @@ protected:
+ virtual void Load (SvStream& rIn, USHORT nVersion);
+ virtual void Store(SvStream& rOut);
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ virtual ~SdStyleSheet();
+
+ void throwIfDisposed() throw (::com::sun::star::uno::RuntimeException);
+diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx
+index f36a91b..4da57c3 100644
+--- sd/source/core/stlsheet.cxx
++++ sd/source/core/stlsheet.cxx
+@@ -112,7 +112,7 @@ class ModifyListenerForewarder : public SfxListener
+ public:
+ ModifyListenerForewarder( SdStyleSheet* pStyleSheet );
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ private:
+ SdStyleSheet* mpStyleSheet;
+@@ -128,7 +128,7 @@ ModifyListenerForewarder::ModifyListenerForewarder( SdStyleSheet* pStyleSheet )
+ }
+ }
+
+-void ModifyListenerForewarder::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& /*rBCType*/, const SfxHint& /*rHint*/, const TypeId& /*rHintType*/)
++void ModifyListenerForewarder::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& /*rHint*/)
+ {
+ if( mpStyleSheet )
+ mpStyleSheet->notifyModifyListener();
+@@ -553,8 +553,7 @@ SdStyleSheet* SdStyleSheet::GetPseudoStyleSheet() const
+ |*
+ \************************************************************************/
+
+-void SdStyleSheet::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType)
++void SdStyleSheet::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ // erstmal die Basisklassenfunktionalitaet
+ SfxStyleSheet::Notify(rBC, rHint);
+diff --git a/sd/source/ui/dlg/docprev.cxx b/sd/source/ui/dlg/docprev.cxx
+index 269006e..950fd0c 100644
+--- sd/source/ui/dlg/docprev.cxx
++++ sd/source/ui/dlg/docprev.cxx
+@@ -305,7 +305,7 @@ void SdDocPreviewWin::updateViewSettings()
+ Invalidate();
+ }
+
+-void SdDocPreviewWin::SFX_NOTIFY(SfxBroadcaster&, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void SdDocPreviewWin::Notify(SfxBroadcaster&, const SfxHint& rHint)
+ {
+ if( rHint.ISA( SfxSimpleHint ) && ( (SfxSimpleHint&) rHint ).GetId() == SFX_HINT_COLORS_CHANGED )
+ {
+diff --git a/sd/source/ui/inc/FormShellManager.hxx b/sd/source/ui/inc/FormShellManager.hxx
+index 0cd52a1..ff83426 100644
+--- sd/source/ui/inc/FormShellManager.hxx
++++ sd/source/ui/inc/FormShellManager.hxx
+@@ -138,11 +138,7 @@ private:
+ the factory working properly this method should not be necessary
+ (and may be removed in the future.)
+ */
+- virtual void SFX_NOTIFY(
+- SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ };
+
+ } // end of namespace sd
+diff --git a/sd/source/ui/inc/PreviewRenderer.hxx b/sd/source/ui/inc/PreviewRenderer.hxx
+index f0bcebb..e91a82a 100644
+--- sd/source/ui/inc/PreviewRenderer.hxx
++++ sd/source/ui/inc/PreviewRenderer.hxx
+@@ -116,10 +116,7 @@ public:
+ int nWidth);
+
+ protected:
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ private:
+ ::std::auto_ptr<VirtualDevice> mpPreviewDevice;
+diff --git a/sd/source/ui/inc/SlideView.hxx b/sd/source/ui/inc/SlideView.hxx
+index 6abf393..2d45737 100644
+--- sd/source/ui/inc/SlideView.hxx
++++ sd/source/ui/inc/SlideView.hxx
+@@ -107,8 +107,7 @@ public:
+ void AddToCache( SdPage* pPage, const Bitmap& rBitmap, long nZoom );
+ const GraphicObject* GetFromCache( SdPage* pPage, long& rZoom, long nZoomTolerance ) const;
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ virtual void DoCut( ::Window* pWindow = NULL );
+ virtual void DoCopy( ::Window* pWindow = NULL );
+diff --git a/sd/source/ui/inc/ViewShellBase.hxx b/sd/source/ui/inc/ViewShellBase.hxx
+index a59d6ca..c8912b6 100644
+--- sd/source/ui/inc/ViewShellBase.hxx
++++ sd/source/ui/inc/ViewShellBase.hxx
+@@ -262,10 +262,7 @@ public:
+ protected:
+ osl::Mutex maMutex;
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ virtual void InitializeFramework (void);
+
+diff --git a/sd/source/ui/inc/docprev.hxx b/sd/source/ui/inc/docprev.hxx
+index 13434bd..10ef73d 100644
+--- sd/source/ui/inc/docprev.hxx
++++ sd/source/ui/inc/docprev.hxx
+@@ -67,7 +67,7 @@ protected:
+
+ svtools::ColorConfig maColorConfig;
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ void updateViewSettings();
+
+diff --git a/sd/source/ui/inc/drawview.hxx b/sd/source/ui/inc/drawview.hxx
+index 4de544a..ea24ea7 100644
+--- sd/source/ui/inc/drawview.hxx
++++ sd/source/ui/inc/drawview.hxx
+@@ -65,8 +65,7 @@ public:
+
+ virtual BOOL SetAttributes(const SfxItemSet& rSet, BOOL bReplaceAll = FALSE);
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ void BlockPageOrderChangedHint(BOOL bBlock);
+
+diff --git a/sd/source/ui/slidesorter/view/SlideSorterView.cxx b/sd/source/ui/slidesorter/view/SlideSorterView.cxx
+index d4e5df4..114a42e 100644
+--- sd/source/ui/slidesorter/view/SlideSorterView.cxx
++++ sd/source/ui/slidesorter/view/SlideSorterView.cxx
+@@ -750,7 +750,7 @@ void SlideSorterView::Notify (SfxBroadcaster& rBroadcaster, const SfxHint& rHint
+ if (pDocShell!=NULL && pDocShell->IsEnableSetModified())
+ mbModelChangedWhileModifyEnabled = true;
+
+- ::sd::View::SFX_NOTIFY(rBroadcaster, rBroadcastType, rHint, rHintType);
++ ::sd::View::Notify(rBroadcaster, rHint);
+ }
+
+
+diff --git a/sd/source/ui/tools/PreviewRenderer.cxx b/sd/source/ui/tools/PreviewRenderer.cxx
+index 2c5f67a..1faa495 100644
+--- sd/source/ui/tools/PreviewRenderer.cxx
++++ sd/source/ui/tools/PreviewRenderer.cxx
+@@ -477,11 +477,7 @@ Image PreviewRenderer::ScaleBitmap (
+
+
+
+-void PreviewRenderer::SFX_NOTIFY(
+- SfxBroadcaster&,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType)
++void PreviewRenderer::Notify(SfxBroadcaster&, const SfxHint& rHint)
+ {
+ if (rHint.IsA(TYPE(SfxSimpleHint))
+ && mpDocShellOfView != NULL)
+diff --git a/sd/source/ui/view/FormShellManager.cxx b/sd/source/ui/view/FormShellManager.cxx
+index 3d21f3e..ad77b02 100644
+--- sd/source/ui/view/FormShellManager.cxx
++++ sd/source/ui/view/FormShellManager.cxx
+@@ -323,11 +323,7 @@ IMPL_LINK(FormShellManager, WindowEventHandler, VclWindowEvent*, pEvent)
+
+
+
+-void FormShellManager::SFX_NOTIFY(
+- SfxBroadcaster&,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType)
++void FormShellManager::Notify(SfxBroadcaster&, const SfxHint& rHint)
+ {
+ const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+ if (pSimpleHint!=NULL && pSimpleHint->GetId()==SFX_HINT_DYING)
+diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
+index a7ed783..ce2c70a 100644
+--- sd/source/ui/view/ViewShellBase.cxx
++++ sd/source/ui/view/ViewShellBase.cxx
+@@ -478,12 +478,9 @@ SdDrawDocument* ViewShellBase::GetDocument (void) const
+
+
+
+-void ViewShellBase::SFX_NOTIFY(SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType)
++void ViewShellBase::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+- SfxViewShell::SFX_NOTIFY(rBC, rBCType, rHint, rHintType);
++ SfxViewShell::Notify(rBC, rHint);
+
+ if (rHint.IsA(TYPE(SfxEventHint)))
+ {
+diff --git a/sd/source/ui/view/drawview.cxx b/sd/source/ui/view/drawview.cxx
+index 9889045..fe7031a 100644
+--- sd/source/ui/view/drawview.cxx
++++ sd/source/ui/view/drawview.cxx
+@@ -404,8 +404,7 @@ BOOL DrawView::SetAttributes(const SfxItemSet& rSet,
+ |*
+ \************************************************************************/
+
+-void DrawView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType)
++void DrawView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ if ( mpDrawViewShell && rHint.ISA(SdrHint) )
+ {
+@@ -436,7 +435,7 @@ void DrawView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+ }
+ }
+
+- ::sd::View::SFX_NOTIFY(rBC, rBCType, rHint, rHintType);
++ ::sd::View::Notify(rBC, rHint);
+ }
+
+ /*************************************************************************
Added: trunk/patches/test/sfx-broadcaster-hashset-sfx2.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-sfx2.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,116 @@
+diff --git a/sfx2/inc/sfx2/viewfrm.hxx b/sfx2/inc/sfx2/viewfrm.hxx
+index eaf7aac..898730d 100644
+--- sfx2/inc/sfx2/viewfrm.hxx
++++ sfx2/inc/sfx2/viewfrm.hxx
+@@ -145,8 +145,7 @@ private:
+ #endif
+
+ protected:
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ SAL_DLLPRIVATE void SetWindow_Impl( Window *pWin );
+
+diff --git a/sfx2/inc/sfx2/viewsh.hxx b/sfx2/inc/sfx2/viewsh.hxx
+index d246439..016e401 100644
+--- sfx2/inc/sfx2/viewsh.hxx
++++ sfx2/inc/sfx2/viewsh.hxx
+@@ -185,10 +185,8 @@ protected:
+
+ virtual void Move();
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
++
+ public:
+ // Iteration
+ static SfxViewShell* GetFirst( const TypeId* pType = 0, BOOL bOnlyVisible = TRUE );
+diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
+index 65aa8df..de32503 100644
+--- sfx2/source/dialog/templdlg.cxx
++++ sfx2/source/dialog/templdlg.cxx
+@@ -1562,8 +1562,7 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, TimeOut, Timer *, pTim )
+
+
+ //-------------------------------------------------------------------------
+-void SfxCommonTemplateDialog_Impl::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType)
++void SfxCommonTemplateDialog_Impl::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
+ {
+ // Aktualisierung anstossen
+ if(rHint.Type() == TYPE(SfxSimpleHint))
+diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx
+index 79818f5..9d43d53 100644
+--- sfx2/source/inc/templdgi.hxx
++++ sfx2/source/inc/templdgi.hxx
+@@ -226,8 +226,7 @@ protected:
+ USHORT StyleNrToInfoOffset( USHORT i );
+ USHORT InfoOffsetToStyleNr( USHORT i );
+
+- void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ void FamilySelect( USHORT nId );
+ void SetFamily( USHORT nId );
+diff --git a/sfx2/source/view/prnmon.cxx b/sfx2/source/view/prnmon.cxx
+index bfd4374..46aa9c1 100644
+--- sfx2/source/view/prnmon.cxx
++++ sfx2/source/view/prnmon.cxx
+@@ -113,17 +113,10 @@ public:
+ SfxViewShell* GetViewShell() const { return pViewShell; }
+ BOOL SetPage( USHORT nPage, const String &rPage );
+ void CreateMonitor();
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+ };
+
+-void SfxPrintProgress_Impl::SFX_NOTIFY(
+- SfxBroadcaster& /*rBC*/,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType )
++void SfxPrintProgress_Impl::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
+ {
+ SfxPrintingHint* pPrintHint = PTR_CAST( SfxPrintingHint, &rHint );
+ if ( pPrintHint )
+diff --git a/sfx2/source/view/topfrm.cxx b/sfx2/source/view/topfrm.cxx
+index fda1518..f289053 100644
+--- sfx2/source/view/topfrm.cxx
++++ sfx2/source/view/topfrm.cxx
+@@ -1151,7 +1151,7 @@ void SfxTopViewFrame::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ }
+ }
+
+- SfxViewFrame::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
++ SfxViewFrame::Notify( rBC, rHint );
+ }
+
+ //--------------------------------------------------------------------
+diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
+index edf7045..3b95c2a 100644
+--- sfx2/source/view/viewfrm.cxx
++++ sfx2/source/view/viewfrm.cxx
+@@ -1222,13 +1222,8 @@ void SfxViewFrame::ReleaseObjectShell_Impl( sal_Bool bStoreView )
+ pDispatcher->Flush();
+ EndListening( *xObjSh );
+
+- SFX_NOTIFY( *xObjSh, xObjSh->Type(),
+- SfxSimpleHint(SFX_HINT_TITLECHANGED),
+- TYPE(SfxSimpleHint) );
+-
+- SFX_NOTIFY( *xObjSh, xObjSh->Type(),
+- SfxSimpleHint(SFX_HINT_DOCCHANGED),
+- TYPE(SfxSimpleHint) );
++ Notify( *xObjSh, SfxSimpleHint(SFX_HINT_TITLECHANGED) );
++ Notify( *xObjSh, SfxSimpleHint(SFX_HINT_DOCCHANGED) );
+
+ if ( 1 == xObjSh->GetOwnerLockCount() && pImp->bObjLocked && xObjSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ xObjSh->DoClose();
Added: trunk/patches/test/sfx-broadcaster-hashset-svtools.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-svtools.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,606 @@
+diff --git a/svtools/inc/svtools/brdcst.hxx b/svtools/inc/svtools/brdcst.hxx
+index 6734f63..8d02b30 100644
+--- svtools/inc/svtools/brdcst.hxx
++++ svtools/inc/svtools/brdcst.hxx
+@@ -31,35 +31,34 @@
+ #define _SFXBRDCST_HXX
+
+ #include "svtools/svldllapi.h"
++#include "svtools/svarray.hxx"
+ #include <tools/rtti.hxx>
+-#include <svtools/svarray.hxx>
++
++#include <hash_set>
+
+ class SfxListener;
+ class SfxHint;
+
+-#ifndef _SFX_BRDCST_CXX
+-typedef SvPtrarr SfxListenerArr_Impl;
+-#endif
+-
+-#define SFX_FORWARD( rBC, rBCT, rHint, rHintT ) \
+- Forward( rBC, rHint )
+-
+-//-------------------------------------------------------------------------
++struct SfxListenerHash
++{
++ size_t operator()(SfxListener* p) const
++ {
++ return reinterpret_cast<size_t>(p);
++ }
++};
+
+ class SVL_DLLPUBLIC SfxBroadcaster
+ {
+ friend class SfxListener;
+
+- SfxListenerArr_Impl aListeners;
++ typedef ::std::hash_set<SfxListener*, SfxListenerHash> ListenerArray;
++ ListenerArray maListeners;
+
+ private:
+- BOOL AddListener( SfxListener& rListener );
+- void RemoveListener( SfxListener& rListener );
+ const SfxBroadcaster& operator=(const SfxBroadcaster &); // verboten
+
+ protected:
+- void SFX_FORWARD(SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType);
++ void Forward(SfxBroadcaster& rBC, const SfxHint& rHint);
+ virtual void ListenersGone();
+
+ public:
+@@ -73,10 +72,11 @@ public:
+ void BroadcastDelayed( const SfxHint& rHint );
+ void BroadcastInIdle( const SfxHint& rHint );
+
++ BOOL AddListener( SfxListener& rListener );
++ void RemoveListener( SfxListener& rListener );
+ BOOL HasListeners() const;
+- USHORT GetListenerCount() const { return aListeners.Count(); }
+- SfxListener* GetListener( USHORT nNo ) const
+- { return (SfxListener*) aListeners[nNo]; }
++ size_t GetListenerCount() const;
++ SfxListener* GetListener( size_t nNo ) const;
+ };
+
+ #endif
+diff --git a/svtools/inc/svtools/lstner.hxx b/svtools/inc/svtools/lstner.hxx
+index e60c028..805a472 100644
+--- svtools/inc/svtools/lstner.hxx
++++ svtools/inc/svtools/lstner.hxx
+@@ -31,24 +31,26 @@
+ #define _SFXLSTNER_HXX
+
+ #include "svtools/svldllapi.h"
++#include "svtools/svarray.hxx"
+ #include <tools/rtti.hxx>
+-#include <svtools/svarray.hxx>
++
++#include <hash_set>
+
+ class SfxBroadcaster;
+ class SfxHint;
+
+-#ifndef _SFX_LSTNER_CXX
+-typedef SvPtrarr SfxBroadcasterArr_Impl;
+-#endif
+-
+-#define SFX_NOTIFY( rBC, rBCT, rHint, rHintT ) \
+- Notify( rBC, rHint )
+-
+-//-------------------------------------------------------------------------
++struct SfxBroadcasterHash
++{
++ size_t operator()(SfxBroadcaster* p) const
++ {
++ return reinterpret_cast<size_t>(p);
++ }
++};
+
+ class SVL_DLLPUBLIC SfxListener
+ {
+- SfxBroadcasterArr_Impl aBCs;
++ typedef ::std::hash_multiset<SfxBroadcaster*, SfxBroadcasterHash> BroadcasterArray;
++ BroadcasterArray maBCs;
+
+ private:
+ const SfxListener& operator=(const SfxListener &); // n.i., ist verboten
+@@ -62,14 +64,12 @@ public:
+
+ BOOL StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDups = FALSE );
+ BOOL EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups = FALSE );
+- void EndListening( USHORT nNo );
++ void EndListening( size_t nNo );
+ void EndListeningAll();
+ BOOL IsListening( SfxBroadcaster& rBroadcaster ) const;
+
+- USHORT GetBroadcasterCount() const
+- { return aBCs.Count(); }
+- SfxBroadcaster* GetBroadcasterJOE( USHORT nNo ) const
+- { return (SfxBroadcaster*) aBCs.GetObject(nNo); }
++ size_t GetBroadcasterCount() const;
++ SfxBroadcaster* GetBroadcasterJOE( size_t nNo ) const;
+
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+diff --git a/svtools/source/items/style.cxx b/svtools/source/items/style.cxx
+index cc3b525..519f5fe 100644
+--- svtools/source/items/style.cxx
++++ svtools/source/items/style.cxx
+@@ -1286,7 +1286,7 @@ BOOL SfxStyleSheet::SetParent( const XubString& rName )
+ void SfxStyleSheet::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType )
+ {
+- SFX_FORWARD(rBC, rBCType, rHint, rHintType);
++ Forward(rBC, rHint);
+ }
+
+ //////////////////////// SfxStyleSheetPool ///////////////////////////////
+diff --git a/svtools/source/notify/brdcst.cxx b/svtools/source/notify/brdcst.cxx
+index 4e7f5c5..c6dd206 100644
+--- svtools/source/notify/brdcst.cxx
++++ svtools/source/notify/brdcst.cxx
+@@ -39,17 +39,86 @@
+ #include <svtools/smplhint.hxx>
+ #include <svtools/lstner.hxx>
+
+-SV_DECL_PTRARR( SfxListenerArr_Impl, SfxListener*, 0, 2 )
+-
+-#define _SFX_BRDCST_CXX
+ #include <svtools/brdcst.hxx>
+
++#include <algorithm>
++
++using ::std::find;
++using ::std::unary_function;
++
+ //====================================================================
+ DBG_NAME(SfxBroadcaster)
+ TYPEINIT0(SfxBroadcaster);
+
+ //====================================================================
+
++class NotifyListenerFunc : public unary_function<SfxListener*, void>
++{
++public:
++ explicit NotifyListenerFunc(const SfxHint& rHint, SfxBroadcaster& rParent) :
++ mrHint(rHint),
++ mrParentBC(rParent)
++ {
++ }
++
++ void operator()(SfxListener* pListener)
++ {
++ if (pListener)
++ pListener->Notify(mrParentBC, mrHint);
++ }
++private:
++ NotifyListenerFunc(); // disable
++
++private:
++ const SfxHint& mrHint;
++ SfxBroadcaster& mrParentBC;
++};
++
++// ----------------------------------------------------------------------------
++
++class UnregisterListenerFunc : public unary_function<SfxListener*, void>
++{
++public:
++ explicit UnregisterListenerFunc(SfxBroadcaster& rParent) :
++ mrParentBC(rParent)
++ {
++ }
++
++ void operator()(SfxListener* pListener)
++ {
++ if (pListener)
++ pListener->RemoveBroadcaster_Impl(mrParentBC);
++ }
++private:
++ UnregisterListenerFunc(); // disable
++
++private:
++ SfxBroadcaster& mrParentBC;
++};
++
++// ----------------------------------------------------------------------------
++
++class RegisterListenerFunc : public ::std::unary_function<SfxListener*, void>
++{
++public:
++ explicit RegisterListenerFunc(SfxBroadcaster& rParent) :
++ mrParentBC(rParent)
++ {
++ }
++
++ void operator()(SfxListener* pListener)
++ {
++ if (pListener)
++ pListener->StartListening(mrParentBC);
++ }
++
++private:
++ RegisterListenerFunc(); // disabled
++
++private:
++ SfxBroadcaster& mrParentBC;
++};
++
+ //====================================================================
+ // broadcast immediately
+
+@@ -59,25 +128,11 @@ void SfxBroadcaster::Broadcast( const SfxHint &rHint )
+ DBG_CHKTHIS(SfxBroadcaster, 0);
+
+ // is anybody to notify?
+- if ( aListeners.Count() /*! || aGlobListeners.Count() */ )
++ if ( !maListeners.empty() /*! || aGlobListeners.Count() */ )
+ {
+- #if 0
+- // determine the type only once, because of its expensiveness
+- const TypeId& rBCType = Type();
+- const TypeId& rHintType = rHint.Type();
+- #endif
+-
+ // notify all registered listeners exactly once
+- for ( USHORT n = 0; n < aListeners.Count(); ++n )
+- {
+- SfxListener* pListener = aListeners[n];
+- if ( pListener )
+- #if 0
+- pListener->SFX_NOTIFY( *this, rBCType, rHint, rHintType );
+- #else
+- pListener->Notify( *this, rHint );
+- #endif
+- }
++ NotifyListenerFunc f(rHint, *this);
++ for_each(maListeners.begin(), maListeners.end(), f);
+ }
+ }
+
+@@ -111,12 +166,8 @@ SfxBroadcaster::~SfxBroadcaster()
+ Broadcast( SfxSimpleHint(SFX_HINT_DYING) );
+
+ // remove all still registered listeners
+- for ( USHORT nPos = 0; nPos < aListeners.Count(); ++nPos )
+- {
+- SfxListener *pListener = aListeners[nPos];
+- if ( pListener )
+- pListener->RemoveBroadcaster_Impl(*this);
+- }
++ UnregisterListenerFunc f(*this);
++ for_each(maListeners.begin(), maListeners.end(), f);
+ }
+
+ //--------------------------------------------------------------------
+@@ -137,12 +188,8 @@ SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
+ {
+ DBG_CTOR(SfxBroadcaster, 0);
+
+- for ( USHORT n = 0; n < rBC.aListeners.Count(); ++n )
+- {
+- SfxListener *pListener = rBC.aListeners[n];
+- if ( pListener )
+- pListener->StartListening( *this );
+- }
++ RegisterListenerFunc f(*this);
++ for_each(rBC.maListeners.begin(), rBC.maListeners.end(), f);
+ }
+
+ //--------------------------------------------------------------------
+@@ -152,21 +199,8 @@ SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
+ BOOL SfxBroadcaster::AddListener( SfxListener& rListener )
+ {
+ DBG_CHKTHIS(SfxBroadcaster, 0);
+- const SfxListener *pListener = &rListener;
+- const SfxListener *pNull = 0;
+- USHORT nFreePos = aListeners.GetPos( pNull );
+- if ( nFreePos < aListeners.Count() )
+- aListeners.GetData()[nFreePos] = pListener;
+- else if ( aListeners.Count() < (USHRT_MAX-1) )
+- aListeners.Insert( pListener, aListeners.Count() );
+- else
+- {
+- DBG_ERROR( "array overflow" );
+- return FALSE;
+- }
+-
+- DBG_ASSERT( USHRT_MAX != aListeners.GetPos(pListener),
+- "AddListener failed" );
++ SfxListener *pListener = &rListener;
++ maListeners.insert(pListener);
+ return TRUE;
+ }
+
+@@ -182,17 +216,10 @@ void SfxBroadcaster::ListenersGone()
+ //--------------------------------------------------------------------
+
+ // forward a notification to all registered listeners
+-
+-void SfxBroadcaster::SFX_FORWARD(SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType)
++void SfxBroadcaster::Forward(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+- const USHORT nCount = aListeners.Count();
+- for ( USHORT i = 0; i < nCount; ++i )
+- {
+- SfxListener *pListener = aListeners[i];
+- if ( pListener )
+- pListener->SFX_NOTIFY( rBC, rBCType, rHint, rHintType);
+- }
++ NotifyListenerFunc f(rHint, rBC);
++ for_each(maListeners.begin(), maListeners.end(), f);
+ }
+
+ //--------------------------------------------------------------------
+@@ -202,10 +229,14 @@ void SfxBroadcaster::SFX_FORWARD(SfxBroadcaster& rBC, const TypeId& rBCType,
+ void SfxBroadcaster::RemoveListener( SfxListener& rListener )
+ {
+ {DBG_CHKTHIS(SfxBroadcaster, 0);}
+- const SfxListener *pListener = &rListener;
+- USHORT nPos = aListeners.GetPos(pListener);
+- DBG_ASSERT( nPos != USHRT_MAX, "RemoveListener: Listener unknown" );
+- aListeners.GetData()[nPos] = 0;
++ SfxListener *pListener = &rListener;
++ ListenerArray::iterator itr = find(maListeners.begin(), maListeners.end(), pListener);
++ if (itr == maListeners.end())
++ // listener not found!
++ return;
++
++ maListeners.erase(itr);
++
+ if ( !HasListeners() )
+ ListenersGone();
+ }
+@@ -214,10 +245,22 @@ void SfxBroadcaster::RemoveListener( SfxListener& rListener )
+
+ BOOL SfxBroadcaster::HasListeners() const
+ {
+- for ( USHORT n = 0; n < aListeners.Count(); ++n )
+- if ( aListeners.GetObject(n) != 0 )
+- return TRUE;
+- return FALSE;
++ return !maListeners.empty();
+ }
+
+-//--------------------------------------------------------------------
++// ----------------------------------------------------------------------------
++
++size_t SfxBroadcaster::GetListenerCount() const
++{
++ return maListeners.size();
++}
++
++SfxListener* SfxBroadcaster::GetListener( size_t nNo ) const
++{
++ if (nNo >= maListeners.size())
++ return NULL;
++
++ ListenerArray::const_iterator itr = maListeners.begin();
++ ::std::advance(itr, nNo);
++ return *itr;
++}
+diff --git a/svtools/source/notify/lstner.cxx b/svtools/source/notify/lstner.cxx
+index 25246c0..e4897d8 100644
+--- svtools/source/notify/lstner.cxx
++++ svtools/source/notify/lstner.cxx
+@@ -39,16 +39,56 @@
+
+ #include <svtools/hint.hxx>
+ #include <svtools/brdcst.hxx>
++#include <svtools/lstner.hxx>
+
+-SV_DECL_PTRARR( SfxBroadcasterArr_Impl, SfxBroadcaster*, 0, 2 )
++#include <algorithm>
+
+-#define _SFX_LSTNER_CXX
+-#include <svtools/lstner.hxx>
++using ::std::find;
++using ::std::unary_function;
++using ::std::advance;
+
+ //====================================================================
+ DBG_NAME(SfxListener)
+ TYPEINIT0(SfxListener);
+
++class StartListeningToBC : public unary_function<SfxBroadcaster*, void>
++{
++public:
++ explicit StartListeningToBC(SfxListener& rListener) :
++ mrListener(rListener)
++ {
++ }
++
++ void operator()(SfxBroadcaster* pBC)
++ {
++ mrListener.StartListening(*pBC);
++ }
++private:
++ StartListeningToBC(); // disabled
++
++private:
++ SfxListener& mrListener;
++};
++
++class RemoveListenerFromBC : public unary_function<SfxBroadcaster*, void>
++{
++public:
++ explicit RemoveListenerFromBC(SfxListener& rListener) :
++ mrListener(rListener)
++ {
++ }
++
++ void operator()(SfxBroadcaster* pBC)
++ {
++ pBC->RemoveListener(mrListener);
++ }
++private:
++ RemoveListenerFromBC(); // disabled
++
++private:
++ SfxListener& mrListener;
++};
++
+ //====================================================================
+ // simple ctor of class SfxListener
+
+@@ -63,10 +103,10 @@ SfxListener::SfxListener()
+ SfxListener::SfxListener( const SfxListener &rListener )
+ {
+ DBG_CTOR(SfxListener, 0);
+-
+- for ( USHORT n = 0; n < rListener.aBCs.Count(); ++n )
+- StartListening( *rListener.aBCs[n] );
++ StartListeningToBC f(*this);
++ for_each(rListener.maBCs.begin(), rListener.maBCs.end(), f);
+ }
++
+ //--------------------------------------------------------------------
+
+ // unregisteres the SfxListener from its SfxBroadcasters
+@@ -76,11 +116,8 @@ SfxListener::~SfxListener()
+ DBG_DTOR(SfxListener, 0);
+
+ // unregister at all remainding broadcasters
+- for ( USHORT nPos = 0; nPos < aBCs.Count(); ++nPos )
+- {
+- SfxBroadcaster *pBC = aBCs[nPos];
+- pBC->RemoveListener(*this);
+- }
++ RemoveListenerFromBC f(*this);
++ for_each(maBCs.begin(), maBCs.end(), f);
+ }
+
+ //--------------------------------------------------------------------
+@@ -91,8 +128,10 @@ void SfxListener::RemoveBroadcaster_Impl( SfxBroadcaster& rBC )
+ {
+ DBG_CHKTHIS(SfxListener, 0);
+
+- const SfxBroadcaster *pBC = &rBC;
+- aBCs.Remove( aBCs.GetPos(pBC), 1 );
++ SfxBroadcaster *pBC = &rBC;
++ BroadcasterArray::iterator itr = ::std::find(maBCs.begin(), maBCs.end(), pBC);
++ if (itr != maBCs.end())
++ maBCs.erase(itr);
+ }
+
+ //--------------------------------------------------------------------
+@@ -107,8 +146,9 @@ BOOL SfxListener::StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDup
+ {
+ if ( rBroadcaster.AddListener(*this) )
+ {
+- const SfxBroadcaster *pBC = &rBroadcaster;
+- aBCs.Insert( pBC, aBCs.Count() );
++ SfxBroadcaster *pBC = &rBroadcaster;
++ maBCs.insert(pBC);
++// maBCs.push_back(pBC);
+
+ DBG_ASSERT( IsListening(rBroadcaster), "StartListening failed" );
+ return TRUE;
+@@ -132,8 +172,10 @@ BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
+ do
+ {
+ rBroadcaster.RemoveListener(*this);
+- const SfxBroadcaster *pBC = &rBroadcaster;
+- aBCs.Remove( aBCs.GetPos(pBC), 1 );
++ SfxBroadcaster *pBC = &rBroadcaster;
++ BroadcasterArray::iterator itr = ::std::find(maBCs.begin(), maBCs.end(), pBC);
++ if (itr != maBCs.end())
++ maBCs.erase(itr);
+ }
+ while ( bAllDups && IsListening( rBroadcaster ) );
+ return TRUE;
+@@ -143,13 +185,18 @@ BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
+
+ // unregisteres at a specific SfxBroadcaster by index
+
+-void SfxListener::EndListening( USHORT nNo )
++void SfxListener::EndListening( size_t nNo )
+ {
+ DBG_CHKTHIS(SfxListener, 0);
+
+- SfxBroadcaster *pBC = aBCs.GetObject(nNo);
+- pBC->RemoveListener(*this);
+- aBCs.Remove( nNo, 1 );
++ if (nNo >= maBCs.size())
++ return;
++
++ BroadcasterArray::iterator itr = maBCs.begin();
++ advance(itr, nNo);
++ SfxBroadcaster* pBC = *itr;
++ pBC->RemoveListener(*this);
++ maBCs.erase(itr);
+ }
+
+ //--------------------------------------------------------------------
+@@ -160,21 +207,33 @@ void SfxListener::EndListeningAll()
+ {
+ DBG_CHKTHIS(SfxListener, 0);
+
+- // MI: bei Optimierung beachten: Seiteneffekte von RemoveListener beachten!
+- while ( aBCs.Count() )
+- {
+- SfxBroadcaster *pBC = aBCs.GetObject(0);
+- pBC->RemoveListener(*this);
+- aBCs.Remove( 0, 1 );
+- }
++ RemoveListenerFromBC f(*this);
++ for_each(maBCs.begin(), maBCs.end(), f);
++ maBCs.clear();
+ }
+
+ //--------------------------------------------------------------------
+
+ BOOL SfxListener::IsListening( SfxBroadcaster& rBroadcaster ) const
+ {
+- const SfxBroadcaster *pBC = &rBroadcaster;
+- return USHRT_MAX != aBCs.GetPos( pBC );
++ SfxBroadcaster *pBC = &rBroadcaster;
++ BroadcasterArray::const_iterator itr = find(maBCs.begin(), maBCs.end(), pBC);
++ return itr != maBCs.end();
++}
++
++size_t SfxListener::GetBroadcasterCount() const
++{
++ return maBCs.size();
++}
++
++SfxBroadcaster* SfxListener::GetBroadcasterJOE( size_t nNo ) const
++{
++ if (nNo >= maBCs.size())
++ return NULL;
++
++ BroadcasterArray::const_iterator itr = maBCs.begin();
++ advance(itr, nNo);
++ return *itr;
+ }
+
+ //--------------------------------------------------------------------
+@@ -182,17 +241,16 @@ BOOL SfxListener::IsListening( SfxBroadcaster& rBroadcaster ) const
+ // base implementation of notification handler
+
+ #ifdef DBG_UTIL
+-void SfxListener::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint&, const TypeId& rHintType )
++void SfxListener::Notify( SfxBroadcaster& rBC, const SfxHint& )
+ #else
+-void SfxListener::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
+- const SfxHint&, const TypeId& )
++void SfxListener::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& )
+ #endif
+ {
+- #ifdef DBG_UTIL
+- const SfxBroadcaster *pBC = &rBC;
+- DBG_ASSERT( USHRT_MAX != aBCs.GetPos(pBC),
++#ifdef DBG_UTIL
++ SfxBroadcaster *pBC = &rBC;
++ BroadcasterArray::const_iterator itr = find(maBCs.begin(), maBCs.end(), pBC);
++ DBG_ASSERT( itr != maBCs.end(),
+ "notification from unregistered broadcaster" );
+- #endif
++#endif
+ }
+
Added: trunk/patches/test/sfx-broadcaster-hashset-svx.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/sfx-broadcaster-hashset-svx.diff Tue May 20 04:07:34 2008
@@ -0,0 +1,525 @@
+diff --git a/svx/inc/svx/colrctrl.hxx b/svx/inc/svx/colrctrl.hxx
+index ab0dd63..2d8441c 100644
+--- svx/inc/svx/colrctrl.hxx
++++ svx/inc/svx/colrctrl.hxx
+@@ -136,8 +136,7 @@ public:
+ const ResId& rResId );
+ ~SvxColorDockingWindow();
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ void SetSlotIDs( USHORT nLeft, USHORT nRight )
+ { nLeftSlot = nLeft; nRightSlot = nRight; }
+diff --git a/svx/inc/svx/fntctl.hxx b/svx/inc/svx/fntctl.hxx
+index cbe6e9b..5ff9f07 100644
+--- svx/inc/svx/fntctl.hxx
++++ svx/inc/svx/fntctl.hxx
+@@ -54,10 +54,7 @@ private:
+ DECL_LINK( MenuSelect, FontNameMenu * );
+ SVX_DLLPRIVATE virtual void StateChanged( USHORT nSID, SfxItemState eState,
+ const SfxPoolItem* pState );
+- SVX_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType );
++ SVX_DLLPRIVATE virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+ //#endif
+
+ public:
+diff --git a/svx/inc/svx/ruler.hxx b/svx/inc/svx/ruler.hxx
+index e3c0d7d..caf9ec1 100644
+--- svx/inc/svx/ruler.hxx
++++ svx/inc/svx/ruler.hxx
+@@ -216,8 +216,7 @@ protected:
+ virtual void ExtraDown();
+ virtual void MouseMove( const MouseEvent& rMEvt );
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ // Berechnung der Grenzwerte fuer Objectgrenzen
+ // Werte sind bezogen auf die Seite
+diff --git a/svx/inc/svx/scene3d.hxx b/svx/inc/svx/scene3d.hxx
+index 3951d93..6a178d0 100644
+--- svx/inc/svx/scene3d.hxx
++++ svx/inc/svx/scene3d.hxx
+@@ -122,10 +122,7 @@ protected:
+
+ void RebuildLists();
+
+- virtual void SFX_NOTIFY(SfxBroadcaster &rBC,
+- const TypeId &rBCType,
+- const SfxHint &rHint,
+- const TypeId &rHintType);
++ virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint);
+
+ BOOL AreThereTransparentParts() const;
+
+diff --git a/svx/inc/svx/svdedxv.hxx b/svx/inc/svx/svdedxv.hxx
+index c438a6d..a187240 100644
+--- svx/inc/svx/svdedxv.hxx
++++ svx/inc/svx/svdedxv.hxx
+@@ -158,7 +158,7 @@ public:
+ virtual void BckAction();
+ virtual void TakeActionRect(Rectangle& rRect) const;
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ virtual void ModelHasChanged();
+
+ //************************************************************************
+diff --git a/svx/inc/svx/svdmrkv.hxx b/svx/inc/svx/svdmrkv.hxx
+index 1dcbe6b..91edbd6 100644
+--- svx/inc/svx/svdmrkv.hxx
++++ svx/inc/svx/svdmrkv.hxx
+@@ -166,7 +166,7 @@ private:
+ void UndirtyMrkPnt() const;
+
+ protected:
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ virtual void ModelHasChanged(); // Wird von der PaintView gerufen
+ virtual void SetMarkHandles(); // aHdl (Liste der Handles) fuellen
+ virtual void SetMarkRects(); // Rects an den PageViews
+diff --git a/svx/inc/svx/svdoattr.hxx b/svx/inc/svx/svdoattr.hxx
+index 751c083..fb8bbfb 100644
+--- svx/inc/svx/svdoattr.hxx
++++ svx/inc/svx/svdoattr.hxx
+@@ -80,7 +80,7 @@ protected:
+ FASTBOOL ImpSetShadowAttributes( const SfxItemSet& rSet, SfxItemSet& rShadowSet ) const;
+
+ // Zuhoeren, ob sich ein StyleSheet aendert
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ SdrAttrObj();
+ virtual ~SdrAttrObj();
+diff --git a/svx/inc/svx/svdocapt.hxx b/svx/inc/svx/svdocapt.hxx
+index 428e9b9..c671bfe 100644
+--- svx/inc/svx/svdocapt.hxx
++++ svx/inc/svx/svdocapt.hxx
+@@ -113,7 +113,7 @@ public:
+
+ virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const;
+ virtual void SetModel(SdrModel* pNewModel);
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ virtual sal_uInt32 GetHdlCount() const;
+ virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const;
+diff --git a/svx/inc/svx/svdocirc.hxx b/svx/inc/svx/svdocirc.hxx
+index 634cc72..ec7b08b 100644
+--- svx/inc/svx/svdocirc.hxx
++++ svx/inc/svx/svdocirc.hxx
+@@ -93,7 +93,7 @@ private:
+ SVX_DLLPRIVATE virtual void RecalcXPoly();
+
+ protected:
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ public:
+ TYPEINFO();
+diff --git a/svx/inc/svx/svdoedge.hxx b/svx/inc/svx/svdoedge.hxx
+index fda6329..087e7fd 100644
+--- svx/inc/svx/svdoedge.hxx
++++ svx/inc/svx/svdoedge.hxx
+@@ -203,7 +203,7 @@ public:
+ sal_Bool IsBoundRectCalculationRunning() const { return mbBoundRectCalculationRunning; }
+
+ protected:
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ XPolygon ImpCalcObjToCenter(const Point& rStPt, long nEscAngle, const Rectangle& rRect, const Point& rCenter) const;
+ void ImpRecalcEdgeTrack(); // Neuberechnung des Verbindungsverlaufs
+diff --git a/svx/inc/svx/svdograf.hxx b/svx/inc/svx/svdograf.hxx
+index fe5e4b1..d7bd973 100644
+--- svx/inc/svx/svdograf.hxx
++++ svx/inc/svx/svdograf.hxx
+@@ -222,8 +222,7 @@ public:
+
+ void AdjustToMaxRect( const Rectangle& rMaxRect, BOOL bShrinkOnly );
+
+- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ bool IsMirrored() { return bMirrored; }
+ void SetMirrored( bool _bMirrored ) { bMirrored = _bMirrored; }
+diff --git a/svx/inc/svx/svdorect.hxx b/svx/inc/svx/svdorect.hxx
+index e4c86fa..905cc10 100644
+--- svx/inc/svx/svdorect.hxx
++++ svx/inc/svx/svdorect.hxx
+@@ -148,7 +148,7 @@ public:
+
+ virtual SdrObject* DoConvertToPolyObj(BOOL bBezier) const;
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ };
+
+ #endif //_SVDORECT_HXX
+diff --git a/svx/inc/svx/svdovirt.hxx b/svx/inc/svx/svdovirt.hxx
+index 79ef5a2..3c19feb 100644
+--- svx/inc/svx/svdovirt.hxx
++++ svx/inc/svx/svdovirt.hxx
+@@ -58,7 +58,7 @@ protected:
+ Rectangle aSnapRect;
+
+ protected:
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ virtual SdrObjGeoData* NewGeoData() const;
+ virtual void SaveGeoData(SdrObjGeoData& rGeo) const;
+diff --git a/svx/inc/svx/svdpagv.hxx b/svx/inc/svx/svdpagv.hxx
+index 288582e..acc0f25 100644
+--- svx/inc/svx/svdpagv.hxx
++++ svx/inc/svx/svdpagv.hxx
+@@ -142,7 +142,7 @@ protected:
+ sal_Bool IsLayer(const String& rName, const SetOfByte& rBS) const;
+ void SetAllLayers(SetOfByte& rB, sal_Bool bJa);
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ // Nachsehen, ob AktGroup noch Inserted ist.
+ void CheckAktGroup();
+diff --git a/svx/inc/svx/svdpntv.hxx b/svx/inc/svx/svdpntv.hxx
+index 202b12b..e412a94 100644
+--- svx/inc/svx/svdpntv.hxx
++++ svx/inc/svx/svdpntv.hxx
+@@ -272,7 +272,7 @@ public:
+ BOOL ImpIsGlueVisible() { return bGlueVisible || bGlueVisible2 || bGlueVisible3 || bGlueVisible4; }
+ protected:
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ void GlueInvalidate() const;
+
+ void ShowEncirclement(OutputDevice* pOut);
+diff --git a/svx/inc/svx/svdview.hxx b/svx/inc/svx/svdview.hxx
+index 721e812..fb79b7a 100644
+--- svx/inc/svx/svdview.hxx
++++ svx/inc/svx/svdview.hxx
+@@ -197,7 +197,7 @@ class SVX_DLLPUBLIC SdrView: public SdrCreateView, public tools::WeakBase< SdrVi
+ protected:
+ SvtAccessibilityOptions maAccessibilityOptions;
+
+- virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
++ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ public:
+ TYPEINFO();
+diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx
+index df7684f..a6f5506 100644
+--- svx/source/dialog/svxruler.cxx
++++ svx/source/dialog/svxruler.cxx
+@@ -3621,8 +3621,7 @@ void __EXPORT SvxRuler::ExtraDown()
+ }
+
+
+-void __EXPORT SvxRuler::SFX_NOTIFY(SfxBroadcaster& , const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType)
++void __EXPORT SvxRuler::Notify(SfxBroadcaster&, const SfxHint& rHint)
+ /*
+
+ [Beschreibung]
+diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx
+index 207bf0d..2811cfd 100644
+--- svx/source/engine3d/scene3d.cxx
++++ svx/source/engine3d/scene3d.cxx
+@@ -1010,13 +1010,10 @@ void E3dScene::RestGeoData(const SdrObjGeoData& rGeo)
+ |*
+ \************************************************************************/
+
+-void E3dScene::SFX_NOTIFY(SfxBroadcaster &rBC,
+- const TypeId &rBCType,
+- const SfxHint &rHint,
+- const TypeId &rHintType)
++void E3dScene::Notify(SfxBroadcaster &rBC, const SfxHint &rHint)
+ {
+ SetRectsDirty();
+- E3dObject::SFX_NOTIFY(rBC, rBCType, rHint, rHintType);
++ E3dObject::Notify(rBC, rHint);
+ }
+
+ /*************************************************************************
+diff --git a/svx/source/items/boxobj.hxx b/svx/source/items/boxobj.hxx
+index 77f42d6..171d4f7 100644
+--- svx/source/items/boxobj.hxx
++++ svx/source/items/boxobj.hxx
+@@ -66,8 +66,7 @@ private:
+
+ protected:
+ // Schnittstelle zum SbxObject/SvDispatch/SfxShell..Object
+- void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType );
++ void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+ virtual ULONG SetProperty( USHORT nSID, SbxVariable &rRet );
+ virtual ULONG GetProperty( USHORT nSID, SbxVariable &rRet );
+
+diff --git a/svx/source/mnuctrls/fntctl.cxx b/svx/source/mnuctrls/fntctl.cxx
+index 2502874..c4e9a8a 100644
+--- svx/source/mnuctrls/fntctl.cxx
++++ svx/source/mnuctrls/fntctl.cxx
+@@ -132,8 +132,7 @@ void SvxFontMenuControl::StateChanged(
+ der DocumentShell gef"ullt.
+ */
+
+-void SvxFontMenuControl::SFX_NOTIFY( SfxBroadcaster&, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType )
++void SvxFontMenuControl::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+ if ( rHint.Type() != TYPE(SfxSimpleHint) &&
+ ( (SfxSimpleHint&)rHint ).GetId() == SFX_HINT_DOCCHANGED )
+diff --git a/svx/source/sdr/properties/graphicproperties.cxx b/svx/source/sdr/properties/graphicproperties.cxx
+index 78ceedc..b1a49d6 100644
+--- svx/source/sdr/properties/graphicproperties.cxx
++++ svx/source/sdr/properties/graphicproperties.cxx
+@@ -91,7 +91,7 @@ namespace sdr
+ rObj.SetXPolyDirty();
+
+ // #i29367# Update GraphicAttr, too. This was formerly
+- // triggered by SdrGrafObj::SFX_NOTIFY, which is no longer
++ // triggered by SdrGrafObj::Notify, which is no longer
+ // called nowadays. BTW: strictly speaking, the whole
+ // ImpSetAttrToGrafInfo/ImpSetGrafInfoToAttr stuff could
+ // be dumped, when SdrGrafObj::aGrafInfo is removed and
+diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
+index f419a77..11a14da 100644
+--- svx/source/svdraw/svdedxv.cxx
++++ svx/source/svdraw/svdedxv.cxx
+@@ -157,9 +157,9 @@ void SdrObjEditView::TakeActionRect(Rectangle& rRect) const
+ }
+ }
+
+-void __EXPORT SdrObjEditView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void __EXPORT SdrObjEditView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+- SdrGlueEditView::SFX_NOTIFY(rBC,rBCType,rHint,rHintType);
++ SdrGlueEditView::Notify(rBC,rHint);
+ // Printerwechsel waerend des Editierens
+ SdrHint* pSdrHint=PTR_CAST(SdrHint,&rHint);
+ if (pSdrHint!=NULL && pTextEditOutliner!=NULL) {
+diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
+index 787567a..9f5063e 100644
+--- svx/source/svdraw/svdmrkv.cxx
++++ svx/source/svdraw/svdmrkv.cxx
+@@ -203,7 +203,7 @@ SdrMarkView::~SdrMarkView()
+ delete mpSdrViewSelection;
+ }
+
+-void __EXPORT SdrMarkView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void __EXPORT SdrMarkView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ SdrHint* pSdrHint=PTR_CAST(SdrHint,&rHint);
+ if (pSdrHint!=NULL)
+@@ -216,7 +216,7 @@ void __EXPORT SdrMarkView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType
+ bMarkedPointsRectsDirty=TRUE;
+ }
+ }
+- SdrSnapView::SFX_NOTIFY(rBC,rBCType,rHint,rHintType);
++ SdrSnapView::Notify(rBC,rHint);
+ }
+
+ void SdrMarkView::ModelHasChanged()
+diff --git a/svx/source/svdraw/svdoattr.cxx b/svx/source/svdraw/svdoattr.cxx
+index 45947f8..fc67cad 100644
+--- svx/source/svdraw/svdoattr.cxx
++++ svx/source/svdraw/svdoattr.cxx
+@@ -141,8 +141,7 @@ void SdrAttrObj::SetModel(SdrModel* pNewModel)
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ // syntactical sugar for ItemSet accesses
+
+-void __EXPORT SdrAttrObj::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType)
++void __EXPORT SdrAttrObj::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
+ {
+ SfxSimpleHint *pSimple = PTR_CAST(SfxSimpleHint, &rHint);
+ BOOL bDataChg(pSimple && SFX_HINT_DATACHANGED == pSimple->GetId());
+diff --git a/svx/source/svdraw/svdocapt.cxx b/svx/source/svdraw/svdocapt.cxx
+index ae8336f..ec9d030 100644
+--- svx/source/svdraw/svdocapt.cxx
++++ svx/source/svdraw/svdocapt.cxx
+@@ -867,9 +867,9 @@ void SdrCaptionObj::SetModel(SdrModel* pNewModel)
+ ImpRecalcTail();
+ }
+
+-void SdrCaptionObj::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void SdrCaptionObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+- SdrRectObj::SFX_NOTIFY(rBC,rBCType,rHint,rHintType);
++ SdrRectObj::Notify(rBC,rHint);
+ ImpRecalcTail();
+ }
+
+diff --git a/svx/source/svdraw/svdocirc.cxx b/svx/source/svdraw/svdocirc.cxx
+index 8b08c53..b0a20de 100644
+--- svx/source/svdraw/svdocirc.cxx
++++ svx/source/svdraw/svdocirc.cxx
+@@ -1355,10 +1355,10 @@ Point SdrCircObj::GetSnapPoint(sal_uInt32 i) const
+ }
+ }
+
+-void __EXPORT SdrCircObj::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void __EXPORT SdrCircObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ SetXPolyDirty();
+- SdrRectObj::SFX_NOTIFY(rBC,rBCType,rHint,rHintType);
++ SdrRectObj::Notify(rBC,rHint);
+ ImpSetAttrToCircInfo();
+ }
+
+diff --git a/svx/source/svdraw/svdoedge.cxx b/svx/source/svdraw/svdoedge.cxx
+index 59a18d7..0c5a874 100644
+--- svx/source/svdraw/svdoedge.cxx
++++ svx/source/svdraw/svdoedge.cxx
+@@ -1661,7 +1661,7 @@ je Objekt variiert von 0-3:
+ 'C': n 0-3 0-3 = 1+U+1
+ */
+
+-void __EXPORT SdrEdgeObj::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId&, const SfxHint& rHint, const TypeId&)
++void __EXPORT SdrEdgeObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ SfxSimpleHint* pSimple=PTR_CAST(SfxSimpleHint,&rHint);
+ ULONG nId=pSimple==0 ? 0 : pSimple->GetId();
+@@ -1676,7 +1676,7 @@ void __EXPORT SdrEdgeObj::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId&, const S
+ if (bObj2) aCon2.pObj=NULL;
+ return; // Und mehr braucht hier nicht getan werden.
+ }
+- SdrTextObj::SFX_NOTIFY(rBC,rBCType,rHint,rHintType);
++ SdrTextObj::Notify(rBC,rHint);
+ if (nNotifyingCount==0) { // Hier nun auch ein VerriegelungsFlag
+ ((SdrEdgeObj*)this)->nNotifyingCount++;
+ SdrHint* pSdrHint=PTR_CAST(SdrHint,&rHint);
+@@ -1712,13 +1712,13 @@ void SdrEdgeObj::Reformat()
+ if( NULL != aCon1.pObj )
+ {
+ SfxSimpleHint aHint( SFX_HINT_DATACHANGED );
+- SFX_NOTIFY( *const_cast<SfxBroadcaster*>(aCon1.pObj->GetBroadcaster()), NULL, aHint, NULL );
++ Notify( *const_cast<SfxBroadcaster*>(aCon1.pObj->GetBroadcaster()), aHint );
+ }
+
+ if( NULL != aCon2.pObj )
+ {
+ SfxSimpleHint aHint( SFX_HINT_DATACHANGED );
+- SFX_NOTIFY( *const_cast<SfxBroadcaster*>(aCon2.pObj->GetBroadcaster()), NULL, aHint, NULL );
++ Notify( *const_cast<SfxBroadcaster*>(aCon2.pObj->GetBroadcaster()), aHint );
+ }
+ }
+
+diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
+index 205fc86..481ce93 100644
+--- svx/source/svdraw/svdograf.cxx
++++ svx/source/svdraw/svdograf.cxx
+@@ -1259,11 +1259,10 @@ SdrObject* SdrGrafObj::DoConvertToPolyObj(BOOL bBezier) const
+
+ // -----------------------------------------------------------------------------
+
+-void SdrGrafObj::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+- const SfxHint& rHint, const TypeId& rHintType )
++void SdrGrafObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ {
+ SetXPolyDirty();
+- SdrRectObj::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
++ SdrRectObj::Notify( rBC, rHint );
+ ImpSetAttrToGrafInfo();
+ }
+
+diff --git a/svx/source/svdraw/svdorect.cxx b/svx/source/svdraw/svdorect.cxx
+index 3a7db4b..5ffee4f 100644
+--- svx/source/svdraw/svdorect.cxx
++++ svx/source/svdraw/svdorect.cxx
+@@ -844,9 +844,9 @@ SdrObject* SdrRectObj::DoConvertToPolyObj(BOOL bBezier) const
+ return pRet;
+ }
+
+-void SdrRectObj::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void SdrRectObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+- SdrTextObj::SFX_NOTIFY(rBC,rBCType,rHint,rHintType);
++ SdrTextObj::Notify(rBC,rHint);
+ SetXPolyDirty(); // wg. Eckenradius
+ }
+
+diff --git a/svx/source/svdraw/svdovirt.cxx b/svx/source/svdraw/svdovirt.cxx
+index 83799d7..dd2f777 100644
+--- svx/source/svdraw/svdovirt.cxx
++++ svx/source/svdraw/svdovirt.cxx
+@@ -92,7 +92,7 @@ SdrObject& SdrVirtObj::ReferencedObj()
+ return rRefObj;
+ }
+
+-void __EXPORT SdrVirtObj::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& rBCType, const SfxHint& /*rHint*/, const TypeId& rHintType)
++void __EXPORT SdrVirtObj::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& /*rHint*/)
+ {
+ bClosedObj=rRefObj.IsClosedObj();
+ SetRectsDirty(); // hier noch Optimieren.
+diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
+index 529776c..9f6a388 100644
+--- svx/source/svdraw/svdpagv.cxx
++++ svx/source/svdraw/svdpagv.cxx
+@@ -275,7 +275,7 @@ void SdrPageView::RemovePaintWindowFromPageView(SdrPaintWindow& rPaintWindow)
+ return xReturn;
+ }
+
+-void __EXPORT SdrPageView::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& /*rBCType*/, const SfxHint& /*rHint*/, const TypeId& /*rHintType*/)
++void __EXPORT SdrPageView::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& /*rHint*/)
+ {
+ // not really interested in
+ }
+diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
+index e88d886..3623a70 100644
+--- svx/source/svdraw/svdpntv.cxx
++++ svx/source/svdraw/svdpntv.cxx
+@@ -327,7 +327,7 @@ SdrPaintView::~SdrPaintView()
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+
+-void __EXPORT SdrPaintView::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void __EXPORT SdrPaintView::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
+ {
+ BOOL bObjChg=!bSomeObjChgdFlag; // TRUE= auswerten fuer ComeBack-Timer
+ if (bObjChg) {
+diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx
+index 2e7f562..8f13ac3 100644
+--- svx/source/svdraw/svdview.cxx
++++ svx/source/svdraw/svdview.cxx
+@@ -1550,14 +1550,14 @@ BOOL SdrView::IsDeleteMarkedPossible() const
+ return IsDeleteMarkedObjPossible();
+ }
+
+-void SdrView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType)
++void SdrView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+ {
+ if( rHint.ISA( SfxSimpleHint ) && ( (SfxSimpleHint&) rHint ).GetId() == SFX_HINT_ACCESSIBILITY_CHANGED )
+ {
+ onAccessibilityOptionsChanged();
+ }
+
+- SdrCreateView::SFX_NOTIFY(rBC, rBCType, rHint, rHintType );
++ SdrCreateView::Notify(rBC, rHint);
+ }
+
+ SvtAccessibilityOptions& SdrView::getAccessibilityOptions()
+diff --git a/svx/source/tbxctrls/colrctrl.cxx b/svx/source/tbxctrls/colrctrl.cxx
+index 2fffe37..c69587b 100644
+--- svx/source/tbxctrls/colrctrl.cxx
++++ svx/source/tbxctrls/colrctrl.cxx
+@@ -357,10 +357,7 @@ SvxColorDockingWindow::~SvxColorDockingWindow()
+ |*
+ \************************************************************************/
+
+-void SvxColorDockingWindow::SFX_NOTIFY( SfxBroadcaster& ,
+- const TypeId& rBCType,
+- const SfxHint& rHint,
+- const TypeId& rHintType )
++void SvxColorDockingWindow::Notify( SfxBroadcaster& , const SfxHint& rHint )
+ {
+ const SfxPoolItemHint *pPoolItemHint = PTR_CAST(SfxPoolItemHint, &rHint);
+ if ( pPoolItemHint
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]