summaryrefslogtreecommitdiff
path: root/sfx2/source/inc
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-01-15 12:18:11 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-01-15 15:11:53 +0100
commit9b73d3a4cd9c1aea29b51b1b23d0a44c34f2f8a2 (patch)
tree801b8d9fcee8031ad8bb58ac0fc75d061bedc4a0 /sfx2/source/inc
parent21bc6014f7d334c84288c748b8012484dcbe4ca7 (diff)
sfx: Use constructor feature for SfxGlobalEvents_Impl.
Change-Id: Ie93235666e035d6a594cfbe112f7a0d935dae1c4
Diffstat (limited to 'sfx2/source/inc')
-rw-r--r--sfx2/source/inc/eventsupplier.hxx137
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