xref: /aoo4110/main/sfx2/source/inc/eventsupplier.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _SFX_EVENTSUPPLIER_HXX_
25*b1cdbd2cSJim Jagielski #define _SFX_EVENTSUPPLIER_HXX_
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XTypeProvider.hpp>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameReplace.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XSet.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XEventListener.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XEventBroadcaster.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XDocumentEventListener.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XEventsSupplier.hpp>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/task/XJobExecutor.hpp>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Reference.hxx>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Type.hxx>
39*b1cdbd2cSJim Jagielski #include <sal/types.h>
40*b1cdbd2cSJim Jagielski #include <osl/mutex.hxx>
41*b1cdbd2cSJim Jagielski #include <cppuhelper/weak.hxx>
42*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase1.hxx>
43*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase2.hxx>
44*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase3.hxx>
45*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase4.hxx>
46*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase7.hxx>
47*b1cdbd2cSJim Jagielski #include <comphelper/sequenceashashmap.hxx>
48*b1cdbd2cSJim Jagielski #include <comphelper/sequenceasvector.hxx>
49*b1cdbd2cSJim Jagielski #include <sfx2/sfxuno.hxx>
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski #include <vos/mutex.hxx>
52*b1cdbd2cSJim Jagielski #include <cppuhelper/interfacecontainer.hxx>
53*b1cdbd2cSJim Jagielski #include <svl/lstner.hxx>
54*b1cdbd2cSJim Jagielski #include <unotools/eventcfg.hxx>
55*b1cdbd2cSJim Jagielski 
56*b1cdbd2cSJim Jagielski namespace comphelper
57*b1cdbd2cSJim Jagielski {
58*b1cdbd2cSJim Jagielski     class NamedValueCollection;
59*b1cdbd2cSJim Jagielski }
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------
62*b1cdbd2cSJim Jagielski 
63*b1cdbd2cSJim Jagielski #define NOSUCHELEMENTEXCEPTION		::com::sun::star::container::NoSuchElementException
64*b1cdbd2cSJim Jagielski #define XNAMEREPLACE				::com::sun::star::container::XNameReplace
65*b1cdbd2cSJim Jagielski #define DOCEVENTOBJECT				::com::sun::star::document::EventObject
66*b1cdbd2cSJim Jagielski #define	XEVENTBROADCASTER			::com::sun::star::document::XEventBroadcaster
67*b1cdbd2cSJim Jagielski #define XDOCEVENTLISTENER			::com::sun::star::document::XEventListener
68*b1cdbd2cSJim Jagielski #define	XEVENTSSUPPLIER				::com::sun::star::document::XEventsSupplier
69*b1cdbd2cSJim Jagielski #define XJOBEXECUTOR                ::com::sun::star::task::XJobExecutor
70*b1cdbd2cSJim Jagielski #define EVENTOBJECT					::com::sun::star::lang::EventObject
71*b1cdbd2cSJim Jagielski #define ILLEGALARGUMENTEXCEPTION	::com::sun::star::lang::IllegalArgumentException
72*b1cdbd2cSJim Jagielski #define WRAPPEDTARGETEXCEPTION		::com::sun::star::lang::WrappedTargetException
73*b1cdbd2cSJim Jagielski #define ANY							::com::sun::star::uno::Any
74*b1cdbd2cSJim Jagielski #define	REFERENCE					::com::sun::star::uno::Reference
75*b1cdbd2cSJim Jagielski #define WEAKREFERENCE               ::com::sun::star::uno::WeakReference
76*b1cdbd2cSJim Jagielski #define RUNTIMEEXCEPTION			::com::sun::star::uno::RuntimeException
77*b1cdbd2cSJim Jagielski #define SEQUENCE					::com::sun::star::uno::Sequence
78*b1cdbd2cSJim Jagielski #define UNOTYPE						::com::sun::star::uno::Type
79*b1cdbd2cSJim Jagielski #define OUSTRING					::rtl::OUString
80*b1cdbd2cSJim Jagielski #define	OINTERFACECONTAINERHELPER   ::cppu::OInterfaceContainerHelper
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski class SfxObjectShell;
85*b1cdbd2cSJim Jagielski class SfxBaseModel;
86*b1cdbd2cSJim Jagielski class SvxMacro;
87*b1cdbd2cSJim Jagielski 
88*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski class SfxEvents_Impl : public ::cppu::WeakImplHelper2< ::com::sun::star::container::XNameReplace, ::com::sun::star::document::XEventListener  >
91*b1cdbd2cSJim Jagielski {
92*b1cdbd2cSJim Jagielski 	SEQUENCE< OUSTRING >			maEventNames;
93*b1cdbd2cSJim Jagielski 	SEQUENCE< ANY >					maEventData;
94*b1cdbd2cSJim Jagielski 	REFERENCE< XEVENTBROADCASTER >	mxBroadcaster;
95*b1cdbd2cSJim Jagielski 	::osl::Mutex					maMutex;
96*b1cdbd2cSJim Jagielski 	SfxObjectShell				   *mpObjShell;
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski     sal_Bool                    Warn_Impl( const String& );
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski public:
101*b1cdbd2cSJim Jagielski 								SfxEvents_Impl( SfxObjectShell* pShell,
102*b1cdbd2cSJim Jagielski 												REFERENCE< XEVENTBROADCASTER > xBroadcaster );
103*b1cdbd2cSJim Jagielski 							   ~SfxEvents_Impl();
104*b1cdbd2cSJim Jagielski 
105*b1cdbd2cSJim Jagielski 	//  --- XNameReplace ---
106*b1cdbd2cSJim Jagielski     virtual void SAL_CALL		replaceByName( const OUSTRING & aName, const ANY & aElement )
107*b1cdbd2cSJim Jagielski 									throw( ILLEGALARGUMENTEXCEPTION, NOSUCHELEMENTEXCEPTION,
108*b1cdbd2cSJim Jagielski 										   WRAPPEDTARGETEXCEPTION, RUNTIMEEXCEPTION );
109*b1cdbd2cSJim Jagielski 
110*b1cdbd2cSJim Jagielski 	//  --- XNameAccess ( parent of XNameReplace ) ---
111*b1cdbd2cSJim Jagielski     virtual ANY SAL_CALL		getByName( const OUSTRING& aName )
112*b1cdbd2cSJim Jagielski 									throw( NOSUCHELEMENTEXCEPTION, WRAPPEDTARGETEXCEPTION,
113*b1cdbd2cSJim Jagielski 										   RUNTIMEEXCEPTION );
114*b1cdbd2cSJim Jagielski     virtual SEQUENCE< OUSTRING > SAL_CALL getElementNames() throw ( RUNTIMEEXCEPTION );
115*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL	hasByName( const OUSTRING& aName ) throw ( RUNTIMEEXCEPTION );
116*b1cdbd2cSJim Jagielski 
117*b1cdbd2cSJim Jagielski 	//  --- XElementAccess ( parent of XNameAccess ) ---
118*b1cdbd2cSJim Jagielski     virtual UNOTYPE SAL_CALL	getElementType() throw ( RUNTIMEEXCEPTION );
119*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL	hasElements() throw ( RUNTIMEEXCEPTION );
120*b1cdbd2cSJim Jagielski 
121*b1cdbd2cSJim Jagielski     // --- ::document::XEventListener ---
122*b1cdbd2cSJim Jagielski     virtual void SAL_CALL		notifyEvent( const DOCEVENTOBJECT& aEvent )
123*b1cdbd2cSJim Jagielski 									throw( RUNTIMEEXCEPTION );
124*b1cdbd2cSJim Jagielski 
125*b1cdbd2cSJim Jagielski     // --- ::lang::XEventListener ---
126*b1cdbd2cSJim Jagielski     virtual void SAL_CALL		disposing( const EVENTOBJECT& Source )
127*b1cdbd2cSJim Jagielski 									throw( RUNTIMEEXCEPTION );
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski     static SvxMacro*            ConvertToMacro( const ANY& rElement, SfxObjectShell* pDoc, sal_Bool bNormalizeMacro );
130*b1cdbd2cSJim Jagielski 	static void					NormalizeMacro( const ANY& rIn, ANY& rOut, SfxObjectShell* pDoc );
131*b1cdbd2cSJim Jagielski     static void					NormalizeMacro(
132*b1cdbd2cSJim Jagielski                                     const ::comphelper::NamedValueCollection& i_eventDescriptor,
133*b1cdbd2cSJim Jagielski                                     ::comphelper::NamedValueCollection& o_normalizedDescriptor,
134*b1cdbd2cSJim Jagielski                                     SfxObjectShell* i_document );
135*b1cdbd2cSJim Jagielski };
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski //=============================================================================
138*b1cdbd2cSJim Jagielski struct ModelCollectionMutexBase
139*b1cdbd2cSJim Jagielski {
140*b1cdbd2cSJim Jagielski     public:
141*b1cdbd2cSJim Jagielski         ::osl::Mutex m_aLock;
142*b1cdbd2cSJim Jagielski };
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski //=============================================================================
145*b1cdbd2cSJim Jagielski typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > > TModelList;
146*b1cdbd2cSJim Jagielski 
147*b1cdbd2cSJim Jagielski //=============================================================================
148*b1cdbd2cSJim Jagielski class ModelCollectionEnumeration : public ModelCollectionMutexBase
149*b1cdbd2cSJim Jagielski                                  , public ::cppu::WeakImplHelper1< ::com::sun::star::container::XEnumeration >
150*b1cdbd2cSJim Jagielski {
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski     //-------------------------------------------------------------------------
153*b1cdbd2cSJim Jagielski     // member
154*b1cdbd2cSJim Jagielski     //-------------------------------------------------------------------------
155*b1cdbd2cSJim Jagielski     private:
156*b1cdbd2cSJim Jagielski         ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xSMGR;
157*b1cdbd2cSJim Jagielski         TModelList m_lModels;
158*b1cdbd2cSJim Jagielski         TModelList::iterator m_pEnumerationIt;
159*b1cdbd2cSJim Jagielski 
160*b1cdbd2cSJim Jagielski     //-------------------------------------------------------------------------
161*b1cdbd2cSJim Jagielski     // native interface
162*b1cdbd2cSJim Jagielski     //-------------------------------------------------------------------------
163*b1cdbd2cSJim Jagielski     public:
164*b1cdbd2cSJim Jagielski         ModelCollectionEnumeration(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xSMGR);
165*b1cdbd2cSJim Jagielski         virtual ~ModelCollectionEnumeration();
166*b1cdbd2cSJim Jagielski         void setModelList(const TModelList& rList);
167*b1cdbd2cSJim Jagielski 
168*b1cdbd2cSJim Jagielski     //-------------------------------------------------------------------------
169*b1cdbd2cSJim Jagielski     // uno interface
170*b1cdbd2cSJim Jagielski     //-------------------------------------------------------------------------
171*b1cdbd2cSJim Jagielski     public:
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski         // css.container.XEnumeration
174*b1cdbd2cSJim Jagielski         virtual sal_Bool SAL_CALL hasMoreElements()
175*b1cdbd2cSJim Jagielski             throw(::com::sun::star::uno::RuntimeException);
176*b1cdbd2cSJim Jagielski 
177*b1cdbd2cSJim Jagielski         virtual ::com::sun::star::uno::Any SAL_CALL nextElement()
178*b1cdbd2cSJim Jagielski             throw(::com::sun::star::container::NoSuchElementException,
179*b1cdbd2cSJim Jagielski                   ::com::sun::star::lang::WrappedTargetException     ,
180*b1cdbd2cSJim Jagielski                   ::com::sun::star::uno::RuntimeException            );
181*b1cdbd2cSJim Jagielski };
182*b1cdbd2cSJim Jagielski 
183*b1cdbd2cSJim Jagielski //=============================================================================
184*b1cdbd2cSJim Jagielski class SfxGlobalEvents_Impl : public ModelCollectionMutexBase
185*b1cdbd2cSJim Jagielski                            , public ::cppu::WeakImplHelper7< ::com::sun::star::lang::XServiceInfo
186*b1cdbd2cSJim Jagielski                                                            , ::com::sun::star::document::XEventsSupplier
187*b1cdbd2cSJim Jagielski                                                            , ::com::sun::star::document::XEventBroadcaster
188*b1cdbd2cSJim Jagielski                                                            , ::com::sun::star::document::XDocumentEventBroadcaster
189*b1cdbd2cSJim Jagielski                                                            , ::com::sun::star::document::XEventListener
190*b1cdbd2cSJim Jagielski                                                            , ::com::sun::star::document::XDocumentEventListener
191*b1cdbd2cSJim Jagielski                                                            , ::com::sun::star::container::XSet >
192*b1cdbd2cSJim Jagielski {
193*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xSMGR;
194*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > m_xEvents;
195*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::WeakReference< ::com::sun::star::document::XEventListener > m_xJobExecutorListener;
196*b1cdbd2cSJim Jagielski 	OINTERFACECONTAINERHELPER m_aLegacyListeners;
197*b1cdbd2cSJim Jagielski     OINTERFACECONTAINERHELPER m_aDocumentListeners;
198*b1cdbd2cSJim Jagielski     TModelList m_lModels;
199*b1cdbd2cSJim Jagielski 	GlobalEventConfig* pImp;
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski public:
202*b1cdbd2cSJim Jagielski     SfxGlobalEvents_Impl(const com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory >& xSMGR);
203*b1cdbd2cSJim Jagielski     virtual ~SfxGlobalEvents_Impl();
204*b1cdbd2cSJim Jagielski 
205*b1cdbd2cSJim Jagielski     SFX_DECL_XSERVICEINFO
206*b1cdbd2cSJim Jagielski 
207*b1cdbd2cSJim Jagielski     // css.document.XEventBroadcaster
208*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents()
209*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski     virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& xListener)
212*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& xListener)
215*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
216*b1cdbd2cSJim Jagielski 
217*b1cdbd2cSJim Jagielski     // css.document.XDocumentEventBroadcaster
218*b1cdbd2cSJim Jagielski     virtual void SAL_CALL addDocumentEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentEventListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
219*b1cdbd2cSJim Jagielski     virtual void SAL_CALL removeDocumentEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentEventListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
220*b1cdbd2cSJim Jagielski     virtual void SAL_CALL notifyDocumentEvent( const ::rtl::OUString& _EventName, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >& _ViewController, const ::com::sun::star::uno::Any& _Supplement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
221*b1cdbd2cSJim Jagielski 
222*b1cdbd2cSJim Jagielski     // css.document.XEventListener
223*b1cdbd2cSJim Jagielski     virtual void SAL_CALL notifyEvent(const ::com::sun::star::document::EventObject& aEvent)
224*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
225*b1cdbd2cSJim Jagielski 
226*b1cdbd2cSJim Jagielski     // css.document.XDocumentEventListener
227*b1cdbd2cSJim Jagielski     virtual void SAL_CALL documentEventOccured( const ::com::sun::star::document::DocumentEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski     // css.container.XSet
230*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL has(const ::com::sun::star::uno::Any& aElement)
231*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
232*b1cdbd2cSJim Jagielski 
233*b1cdbd2cSJim Jagielski     virtual void SAL_CALL insert(const ::com::sun::star::uno::Any& aElement)
234*b1cdbd2cSJim Jagielski         throw(::com::sun::star::lang::IllegalArgumentException  ,
235*b1cdbd2cSJim Jagielski               ::com::sun::star::container::ElementExistException,
236*b1cdbd2cSJim Jagielski               ::com::sun::star::uno::RuntimeException           );
237*b1cdbd2cSJim Jagielski 
238*b1cdbd2cSJim Jagielski     virtual void SAL_CALL remove(const ::com::sun::star::uno::Any& aElement)
239*b1cdbd2cSJim Jagielski         throw(::com::sun::star::lang::IllegalArgumentException   ,
240*b1cdbd2cSJim Jagielski               ::com::sun::star::container::NoSuchElementException,
241*b1cdbd2cSJim Jagielski               ::com::sun::star::uno::RuntimeException            );
242*b1cdbd2cSJim Jagielski 
243*b1cdbd2cSJim Jagielski     // css.container.XEnumerationAccess
244*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration()
245*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
246*b1cdbd2cSJim Jagielski 
247*b1cdbd2cSJim Jagielski     // css.container.XElementAccess
248*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
249*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
250*b1cdbd2cSJim Jagielski 
251*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL hasElements()
252*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
253*b1cdbd2cSJim Jagielski 
254*b1cdbd2cSJim Jagielski     // css.lang.XEventListener
255*b1cdbd2cSJim Jagielski     virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& aEvent)
256*b1cdbd2cSJim Jagielski         throw(::com::sun::star::uno::RuntimeException);
257*b1cdbd2cSJim Jagielski 
258*b1cdbd2cSJim Jagielski private:
259*b1cdbd2cSJim Jagielski 
260*b1cdbd2cSJim Jagielski     // threadsafe
261*b1cdbd2cSJim Jagielski     void implts_notifyJobExecution(const ::com::sun::star::document::EventObject& aEvent);
262*b1cdbd2cSJim Jagielski     void implts_checkAndExecuteEventBindings(const ::com::sun::star::document::DocumentEvent& aEvent);
263*b1cdbd2cSJim Jagielski     void implts_notifyListener(const ::com::sun::star::document::DocumentEvent& aEvent);
264*b1cdbd2cSJim Jagielski 
265*b1cdbd2cSJim Jagielski     // not threadsafe
266*b1cdbd2cSJim Jagielski     TModelList::iterator impl_searchDoc(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel);
267*b1cdbd2cSJim Jagielski };
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski #endif
270