diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-15 12:18:11 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-15 15:11:53 +0100 |
commit | 9b73d3a4cd9c1aea29b51b1b23d0a44c34f2f8a2 (patch) | |
tree | 801b8d9fcee8031ad8bb58ac0fc75d061bedc4a0 /sfx2/source/inc | |
parent | 21bc6014f7d334c84288c748b8012484dcbe4ca7 (diff) |
sfx: Use constructor feature for SfxGlobalEvents_Impl.
Change-Id: Ie93235666e035d6a594cfbe112f7a0d935dae1c4
Diffstat (limited to 'sfx2/source/inc')
-rw-r--r-- | sfx2/source/inc/eventsupplier.hxx | 137 |
1 files changed, 3 insertions, 134 deletions
diff --git a/sfx2/source/inc/eventsupplier.hxx b/sfx2/source/inc/eventsupplier.hxx index 2465ca8919fa..d8d2a8d124da 100644 --- a/sfx2/source/inc/eventsupplier.hxx +++ b/sfx2/source/inc/eventsupplier.hxx @@ -20,9 +20,9 @@ #ifndef INCLUDED_SFX2_SOURCE_INC_EVENTSUPPLIER_HXX #define INCLUDED_SFX2_SOURCE_INC_EVENTSUPPLIER_HXX -#include <com/sun/star/lang/XTypeProvider.hpp> +#include <sal/types.h> + #include <com/sun/star/container/XNameReplace.hpp> -#include <com/sun/star/container/XSet.hpp> #include <com/sun/star/document/XEventListener.hpp> #include <com/sun/star/document/XEventBroadcaster.hpp> #include <com/sun/star/document/XDocumentEventListener.hpp> @@ -32,11 +32,7 @@ #include <com/sun/star/task/XJobExecutor.hpp> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/uno/Type.hxx> -#include <sal/types.h> -#include <osl/mutex.hxx> -#include <cppuhelper/implbase1.hxx> #include <cppuhelper/implbase2.hxx> -#include <cppuhelper/implbase3.hxx> #include <comphelper/sequenceashashmap.hxx> #include <comphelper/sequenceasvector.hxx> #include <sfx2/sfxuno.hxx> @@ -98,134 +94,7 @@ public: const ::comphelper::NamedValueCollection& i_eventDescriptor, ::comphelper::NamedValueCollection& o_normalizedDescriptor, SfxObjectShell* i_document ); -}; - -//============================================================================= -struct ModelCollectionMutexBase -{ - public: - ::osl::Mutex m_aLock; -}; - -//============================================================================= -typedef ::std::vector< css::uno::Reference< css::frame::XModel > > TModelList; - -//============================================================================= -class ModelCollectionEnumeration : public ModelCollectionMutexBase - , public ::cppu::WeakImplHelper1< css::container::XEnumeration > -{ - - //------------------------------------------------------------------------- - // member - //------------------------------------------------------------------------- - private: - TModelList m_lModels; - TModelList::iterator m_pEnumerationIt; - - //------------------------------------------------------------------------- - // native interface - //------------------------------------------------------------------------- - public: - ModelCollectionEnumeration(); - virtual ~ModelCollectionEnumeration(); - void setModelList(const TModelList& rList); - - //------------------------------------------------------------------------- - // uno interface - //------------------------------------------------------------------------- - public: - - // css.container.XEnumeration - virtual sal_Bool SAL_CALL hasMoreElements() - throw(css::uno::RuntimeException); - - virtual css::uno::Any SAL_CALL nextElement() - throw(css::container::NoSuchElementException, - css::lang::WrappedTargetException , - css::uno::RuntimeException ); -}; - -//============================================================================= -//TODO: remove support of obsolete document::XEventBroadcaster/Listener -class SfxGlobalEvents_Impl : public ModelCollectionMutexBase - , public ::cppu::WeakImplHelper3< css::lang::XServiceInfo - , css::frame::XGlobalEventBroadcaster - , css::document::XEventListener - > -{ - css::uno::Reference< css::container::XNameReplace > m_xEvents; - css::uno::Reference< css::document::XEventListener > m_xJobExecutorListener; - ::cppu::OInterfaceContainerHelper m_aLegacyListeners; - ::cppu::OInterfaceContainerHelper m_aDocumentListeners; - TModelList m_lModels; - GlobalEventConfig* pImp; - -public: - SfxGlobalEvents_Impl(const css::uno::Reference < css::uno::XComponentContext >& rxContext); - virtual ~SfxGlobalEvents_Impl(); - - SFX_DECL_XSERVICEINFO - - // css.document.XEventBroadcaster - virtual css::uno::Reference< css::container::XNameReplace > SAL_CALL getEvents() - throw(css::uno::RuntimeException); - - virtual void SAL_CALL addEventListener(const css::uno::Reference< css::document::XEventListener >& xListener) - throw(css::uno::RuntimeException); - - virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::document::XEventListener >& xListener) - throw(css::uno::RuntimeException); - - // css.document.XDocumentEventBroadcaster - virtual void SAL_CALL addDocumentEventListener( const css::uno::Reference< css::document::XDocumentEventListener >& _Listener ) throw (css::uno::RuntimeException); - virtual void SAL_CALL removeDocumentEventListener( const css::uno::Reference< css::document::XDocumentEventListener >& _Listener ) throw (css::uno::RuntimeException); - virtual void SAL_CALL notifyDocumentEvent( const OUString& _EventName, const css::uno::Reference< css::frame::XController2 >& _ViewController, const css::uno::Any& _Supplement ) throw (css::lang::IllegalArgumentException, css::lang::NoSupportException, css::uno::RuntimeException); - - // css.document.XEventListener - virtual void SAL_CALL notifyEvent(const css::document::EventObject& aEvent) - throw(css::uno::RuntimeException); - - // css.document.XDocumentEventListener - virtual void SAL_CALL documentEventOccured( const css::document::DocumentEvent& Event ) throw (css::uno::RuntimeException); - - // css.container.XSet - virtual sal_Bool SAL_CALL has(const css::uno::Any& aElement) - throw(css::uno::RuntimeException); - - virtual void SAL_CALL insert(const css::uno::Any& aElement) - throw(css::lang::IllegalArgumentException , - css::container::ElementExistException, - css::uno::RuntimeException ); - - virtual void SAL_CALL remove(const css::uno::Any& aElement) - throw(css::lang::IllegalArgumentException , - css::container::NoSuchElementException, - css::uno::RuntimeException ); - - // css.container.XEnumerationAccess - virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() - throw(css::uno::RuntimeException); - - // css.container.XElementAccess - virtual css::uno::Type SAL_CALL getElementType() - throw(css::uno::RuntimeException); - - virtual sal_Bool SAL_CALL hasElements() - throw(css::uno::RuntimeException); - - // css.lang.XEventListener - virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent) - throw(css::uno::RuntimeException); - -private: - - // threadsafe - void implts_notifyJobExecution(const css::document::EventObject& aEvent); - void implts_checkAndExecuteEventBindings(const css::document::DocumentEvent& aEvent); - void implts_notifyListener(const css::document::DocumentEvent& aEvent); - - // not threadsafe - TModelList::iterator impl_searchDoc(const css::uno::Reference< css::frame::XModel >& xModel); + static void Execute( css::uno::Any& aEventData, const css::document::DocumentEvent& aTrigger, SfxObjectShell* pDoc ); }; #endif |