xref: /AOO41X/main/sd/source/ui/inc/DrawController.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef SD_DRAW_CONTROLLER_HXX
29*cdf0e10cSrcweir #define SD_DRAW_CONTROLLER_HXX
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include "ViewShell.hxx"
32*cdf0e10cSrcweir 
33*cdf0e10cSrcweir #include <osl/mutex.hxx>
34*cdf0e10cSrcweir #include <cppuhelper/propshlp.hxx>
35*cdf0e10cSrcweir #include <sfx2/sfxbasecontroller.hxx>
36*cdf0e10cSrcweir #include <com/sun/star/view/XSelectionSupplier.hpp>
37*cdf0e10cSrcweir #include <com/sun/star/view/XFormLayerAccess.hpp>
38*cdf0e10cSrcweir #include <com/sun/star/drawing/XDrawSubController.hpp>
39*cdf0e10cSrcweir #include <com/sun/star/drawing/XDrawView.hpp>
40*cdf0e10cSrcweir #include <com/sun/star/drawing/framework/XConfigurationController.hpp>
41*cdf0e10cSrcweir #include <com/sun/star/drawing/framework/XControllerManager.hpp>
42*cdf0e10cSrcweir #include <com/sun/star/drawing/framework/ModuleController.hpp>
43*cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
44*cdf0e10cSrcweir #include <com/sun/star/lang/DisposedException.hpp>
45*cdf0e10cSrcweir #include <comphelper/uno3.hxx>
46*cdf0e10cSrcweir #include <cppuhelper/implbase7.hxx>
47*cdf0e10cSrcweir #include <tools/weakbase.hxx>
48*cdf0e10cSrcweir #include <memory>
49*cdf0e10cSrcweir #include <vector>
50*cdf0e10cSrcweir #include <boost/scoped_ptr.hpp>
51*cdf0e10cSrcweir 
52*cdf0e10cSrcweir class SfxViewShell;
53*cdf0e10cSrcweir class SdXImpressDocument;
54*cdf0e10cSrcweir 
55*cdf0e10cSrcweir namespace css = ::com::sun::star;
56*cdf0e10cSrcweir 
57*cdf0e10cSrcweir namespace sd {
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir typedef ::cppu::ImplInheritanceHelper7 <
60*cdf0e10cSrcweir     SfxBaseController,
61*cdf0e10cSrcweir     ::com::sun::star::view::XSelectionSupplier,
62*cdf0e10cSrcweir     ::com::sun::star::lang::XServiceInfo,
63*cdf0e10cSrcweir     ::com::sun::star::drawing::XDrawView,
64*cdf0e10cSrcweir     ::com::sun::star::view::XSelectionChangeListener,
65*cdf0e10cSrcweir     ::com::sun::star::view::XFormLayerAccess,
66*cdf0e10cSrcweir     ::com::sun::star::drawing::framework::XControllerManager,
67*cdf0e10cSrcweir     ::com::sun::star::lang::XUnoTunnel
68*cdf0e10cSrcweir     > DrawControllerInterfaceBase;
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir class BroadcastHelperOwner
71*cdf0e10cSrcweir {
72*cdf0e10cSrcweir public:
73*cdf0e10cSrcweir     BroadcastHelperOwner (::osl::Mutex& rMutex) : maBroadcastHelper(rMutex) {};
74*cdf0e10cSrcweir     ::cppu::OBroadcastHelper maBroadcastHelper;
75*cdf0e10cSrcweir };
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir class DrawSubController;
78*cdf0e10cSrcweir class ViewShellBase;
79*cdf0e10cSrcweir class ViewShell;
80*cdf0e10cSrcweir class View;
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir 
83*cdf0e10cSrcweir /** The DrawController is the UNO controller for Impress and Draw.  It
84*cdf0e10cSrcweir     relies objects that implement the DrawSubController interface for view
85*cdf0e10cSrcweir     specific behaviour.  The life time of the DrawController is roughly that
86*cdf0e10cSrcweir     of ViewShellBase but note that the DrawController can (in the case of a
87*cdf0e10cSrcweir     reload) outlive the ViewShellBase.
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir     The implementation of the XControllerManager interface is not yet in its
90*cdf0e10cSrcweir     final form.
91*cdf0e10cSrcweir */
92*cdf0e10cSrcweir class DrawController
93*cdf0e10cSrcweir     : public DrawControllerInterfaceBase,
94*cdf0e10cSrcweir       private BroadcastHelperOwner,
95*cdf0e10cSrcweir       public ::cppu::OPropertySetHelper
96*cdf0e10cSrcweir {
97*cdf0e10cSrcweir public:
98*cdf0e10cSrcweir     enum PropertyHandle {
99*cdf0e10cSrcweir         PROPERTY_WORKAREA = 0,
100*cdf0e10cSrcweir         PROPERTY_SUB_CONTROLLER = 1,
101*cdf0e10cSrcweir         PROPERTY_CURRENTPAGE = 2,
102*cdf0e10cSrcweir         PROPERTY_MASTERPAGEMODE = 3,
103*cdf0e10cSrcweir         PROPERTY_LAYERMODE = 4,
104*cdf0e10cSrcweir         PROPERTY_ACTIVE_LAYER = 5,
105*cdf0e10cSrcweir         PROPERTY_ZOOMTYPE = 6,
106*cdf0e10cSrcweir         PROPERTY_ZOOMVALUE = 7,
107*cdf0e10cSrcweir         PROPERTY_VIEWOFFSET = 8,
108*cdf0e10cSrcweir 		PROPERTY_DRAWVIEWMODE = 9
109*cdf0e10cSrcweir     };
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir     /** Create a new DrawController object for the given ViewShellBase.
112*cdf0e10cSrcweir     */
113*cdf0e10cSrcweir 	DrawController (ViewShellBase& rBase) throw();
114*cdf0e10cSrcweir 
115*cdf0e10cSrcweir 	virtual ~DrawController (void) throw();
116*cdf0e10cSrcweir 
117*cdf0e10cSrcweir     /** Replace the currently used sub controller with the given one.  This
118*cdf0e10cSrcweir         new sub controller is used from now on for the view (that is the
119*cdf0e10cSrcweir         main view shell to be precise) specific tasks.  Call this method
120*cdf0e10cSrcweir         with a suitable sub controller whenever the view shell in the center
121*cdf0e10cSrcweir         pane is exchanged.
122*cdf0e10cSrcweir         @param pSubController
123*cdf0e10cSrcweir             The ViewShell specific sub controller or NULL when (temporarily
124*cdf0e10cSrcweir             while switching to another one) there is no ViewShell displayed
125*cdf0e10cSrcweir             in the center pane.
126*cdf0e10cSrcweir     */
127*cdf0e10cSrcweir     void SetSubController (
128*cdf0e10cSrcweir         const css::uno::Reference<css::drawing::XDrawSubController>& rxSubController);
129*cdf0e10cSrcweir 
130*cdf0e10cSrcweir     /** Call this method when the VisArea has changed.
131*cdf0e10cSrcweir     */
132*cdf0e10cSrcweir     void FireVisAreaChanged (const Rectangle& rVisArea) throw();
133*cdf0e10cSrcweir 
134*cdf0e10cSrcweir     /** Call this method when the selection has changed.
135*cdf0e10cSrcweir     */
136*cdf0e10cSrcweir 	void FireSelectionChangeListener (void) throw();
137*cdf0e10cSrcweir 
138*cdf0e10cSrcweir     /** Call this method when the edit mode has changed.
139*cdf0e10cSrcweir     */
140*cdf0e10cSrcweir     void FireChangeEditMode (bool bMasterPageMode) throw();
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir     /** Call this method when the layer mode has changed.
143*cdf0e10cSrcweir     */
144*cdf0e10cSrcweir 	void FireChangeLayerMode (bool bLayerMode) throw();
145*cdf0e10cSrcweir 
146*cdf0e10cSrcweir     /** Call this method when there is a new current page.
147*cdf0e10cSrcweir     */
148*cdf0e10cSrcweir 	void FireSwitchCurrentPage (SdPage* pCurrentPage) throw();
149*cdf0e10cSrcweir 
150*cdf0e10cSrcweir     /** Return a pointer to the ViewShellBase object that the DrawController
151*cdf0e10cSrcweir         is connected to.
152*cdf0e10cSrcweir         @return
153*cdf0e10cSrcweir             The returned pointer is <NULL/> after a call to
154*cdf0e10cSrcweir             ReleaseViewShellBase().
155*cdf0e10cSrcweir     */
156*cdf0e10cSrcweir     ViewShellBase* GetViewShellBase (void);
157*cdf0e10cSrcweir 
158*cdf0e10cSrcweir     /** This method is typically called from the destructor of ViewShellBase
159*cdf0e10cSrcweir         to tell the DrawController that it and its members must not access
160*cdf0e10cSrcweir         the ViewShellBase anymore.
161*cdf0e10cSrcweir         After this call the DrawController is semi-disposed.
162*cdf0e10cSrcweir     */
163*cdf0e10cSrcweir     void ReleaseViewShellBase (void);
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir     static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId (void);
166*cdf0e10cSrcweir 
167*cdf0e10cSrcweir     DECLARE_XINTERFACE()
168*cdf0e10cSrcweir 	DECLARE_XTYPEPROVIDER()
169*cdf0e10cSrcweir 
170*cdf0e10cSrcweir 	// XComponent
171*cdf0e10cSrcweir 	virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException );
172*cdf0e10cSrcweir     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
173*cdf0e10cSrcweir     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
174*cdf0e10cSrcweir 
175*cdf0e10cSrcweir 	// XController
176*cdf0e10cSrcweir     virtual ::sal_Bool SAL_CALL suspend( ::sal_Bool Suspend ) throw (::com::sun::star::uno::RuntimeException);
177*cdf0e10cSrcweir 
178*cdf0e10cSrcweir 	// XServiceInfo
179*cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
180*cdf0e10cSrcweir     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
181*cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
182*cdf0e10cSrcweir 
183*cdf0e10cSrcweir 	// XSelectionSupplier
184*cdf0e10cSrcweir     virtual sal_Bool SAL_CALL select( const ::com::sun::star::uno::Any& aSelection ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
185*cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getSelection(  ) throw(::com::sun::star::uno::RuntimeException);
186*cdf0e10cSrcweir     virtual void SAL_CALL addSelectionChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
187*cdf0e10cSrcweir     virtual void SAL_CALL removeSelectionChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
188*cdf0e10cSrcweir 
189*cdf0e10cSrcweir 	// XPropertySet
190*cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(::com::sun::star::uno::RuntimeException);
191*cdf0e10cSrcweir 
192*cdf0e10cSrcweir     // XFormLayerAccess
193*cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > SAL_CALL getFormController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& Form ) throw (::com::sun::star::uno::RuntimeException);
194*cdf0e10cSrcweir     virtual ::sal_Bool SAL_CALL isFormDesignMode(  ) throw (::com::sun::star::uno::RuntimeException);
195*cdf0e10cSrcweir     virtual void SAL_CALL setFormDesignMode( ::sal_Bool DesignMode ) throw (::com::sun::star::uno::RuntimeException);
196*cdf0e10cSrcweir 
197*cdf0e10cSrcweir     // XControlAccess
198*cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl > SAL_CALL getControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& xModel ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
199*cdf0e10cSrcweir 
200*cdf0e10cSrcweir 	// XDrawView
201*cdf0e10cSrcweir     virtual void SAL_CALL
202*cdf0e10cSrcweir         setCurrentPage (
203*cdf0e10cSrcweir             const ::com::sun::star::uno::Reference<
204*cdf0e10cSrcweir             ::com::sun::star::drawing::XDrawPage >& xPage)
205*cdf0e10cSrcweir         throw(::com::sun::star::uno::RuntimeException);
206*cdf0e10cSrcweir 
207*cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference<
208*cdf0e10cSrcweir         ::com::sun::star::drawing::XDrawPage > SAL_CALL
209*cdf0e10cSrcweir         getCurrentPage (void)
210*cdf0e10cSrcweir         throw(::com::sun::star::uno::RuntimeException);
211*cdf0e10cSrcweir 
212*cdf0e10cSrcweir 
213*cdf0e10cSrcweir     // lang::XEventListener
214*cdf0e10cSrcweir     virtual void SAL_CALL
215*cdf0e10cSrcweir         disposing (const ::com::sun::star::lang::EventObject& rEventObject)
216*cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
217*cdf0e10cSrcweir 
218*cdf0e10cSrcweir 
219*cdf0e10cSrcweir     // view::XSelectionChangeListener
220*cdf0e10cSrcweir     virtual void  SAL_CALL
221*cdf0e10cSrcweir         selectionChanged (const ::com::sun::star::lang::EventObject& rEvent)
222*cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
223*cdf0e10cSrcweir 
224*cdf0e10cSrcweir 
225*cdf0e10cSrcweir     // XControllerManager
226*cdf0e10cSrcweir 
227*cdf0e10cSrcweir     virtual css::uno::Reference<css::drawing::framework::XConfigurationController> SAL_CALL
228*cdf0e10cSrcweir         getConfigurationController (void)
229*cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
230*cdf0e10cSrcweir 
231*cdf0e10cSrcweir     virtual css::uno::Reference<css::drawing::framework::XModuleController> SAL_CALL
232*cdf0e10cSrcweir         getModuleController (void)
233*cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
234*cdf0e10cSrcweir 
235*cdf0e10cSrcweir 
236*cdf0e10cSrcweir     // XUnoTunnel
237*cdf0e10cSrcweir 
238*cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL getSomething (const com::sun::star::uno::Sequence<sal_Int8>& rId)
239*cdf0e10cSrcweir         throw (com::sun::star::uno::RuntimeException);
240*cdf0e10cSrcweir 
241*cdf0e10cSrcweir protected:
242*cdf0e10cSrcweir 	/** This method must return the name to index table. This table
243*cdf0e10cSrcweir 	    contains all property names and types of this object.
244*cdf0e10cSrcweir 	 */
245*cdf0e10cSrcweir 	virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
246*cdf0e10cSrcweir 
247*cdf0e10cSrcweir     virtual void FillPropertyTable (
248*cdf0e10cSrcweir         ::std::vector< ::com::sun::star::beans::Property>& rProperties);
249*cdf0e10cSrcweir 
250*cdf0e10cSrcweir 	/**
251*cdf0e10cSrcweir 	 * The same as getFastProperyValue, but return the value through
252*cdf0e10cSrcweir 	 * rValue and nHandle is always valid.
253*cdf0e10cSrcweir 	 */
254*cdf0e10cSrcweir 	virtual void SAL_CALL getFastPropertyValue(
255*cdf0e10cSrcweir 		::com::sun::star::uno::Any& rValue,
256*cdf0e10cSrcweir 		sal_Int32 nHandle ) const;
257*cdf0e10cSrcweir 
258*cdf0e10cSrcweir 	/** Convert the value rValue and return the result in rConvertedValue and the
259*cdf0e10cSrcweir         old value in rOldValue.
260*cdf0e10cSrcweir         After this call the vetoable listeners are notified.
261*cdf0e10cSrcweir 
262*cdf0e10cSrcweir         @param rConvertedValue
263*cdf0e10cSrcweir             The converted value. Only set if return is true.
264*cdf0e10cSrcweir         @param rOldValue
265*cdf0e10cSrcweir             The old value. Only set if return is true.
266*cdf0e10cSrcweir         @param nHandle
267*cdf0e10cSrcweir             The handle of the proberty.
268*cdf0e10cSrcweir         @return
269*cdf0e10cSrcweir             <TRUE/> if the value is converted successfully.
270*cdf0e10cSrcweir         @throws IllegalArgumentException
271*cdf0e10cSrcweir 	 */
272*cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL convertFastPropertyValue(
273*cdf0e10cSrcweir 		::com::sun::star::uno::Any & rConvertedValue,
274*cdf0e10cSrcweir 		::com::sun::star::uno::Any & rOldValue,
275*cdf0e10cSrcweir 		sal_Int32 nHandle,
276*cdf0e10cSrcweir 		const ::com::sun::star::uno::Any& rValue )
277*cdf0e10cSrcweir 		throw (::com::sun::star::lang::IllegalArgumentException);
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir 	/** The same as setFastProperyValue, but no exception is thrown and nHandle
280*cdf0e10cSrcweir         is always valid. You must not broadcast the changes in this method.
281*cdf0e10cSrcweir 	 */
282*cdf0e10cSrcweir 	virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
283*cdf0e10cSrcweir 		sal_Int32 nHandle,
284*cdf0e10cSrcweir 		const ::com::sun::star::uno::Any& rValue )
285*cdf0e10cSrcweir 		throw (::com::sun::star::uno::Exception);
286*cdf0e10cSrcweir 
287*cdf0e10cSrcweir     /** When the called object has been disposed already this method throws
288*cdf0e10cSrcweir         a Disposed exception and does not return.
289*cdf0e10cSrcweir     */
290*cdf0e10cSrcweir     void ThrowIfDisposed (void) const
291*cdf0e10cSrcweir         throw (::com::sun::star::lang::DisposedException);
292*cdf0e10cSrcweir 
293*cdf0e10cSrcweir 	using cppu::OPropertySetHelper::disposing;
294*cdf0e10cSrcweir 	using cppu::OPropertySetHelper::getFastPropertyValue;
295*cdf0e10cSrcweir 
296*cdf0e10cSrcweir private:
297*cdf0e10cSrcweir     /** This pointer to the ViewShellBase can be NULL (after a call to
298*cdf0e10cSrcweir         ReleaseViewShellBase()).
299*cdf0e10cSrcweir     */
300*cdf0e10cSrcweir     ViewShellBase* mpBase;
301*cdf0e10cSrcweir 
302*cdf0e10cSrcweir 	Rectangle maLastVisArea;
303*cdf0e10cSrcweir     ::tools::WeakReference<SdrPage> mpCurrentPage;
304*cdf0e10cSrcweir 	bool mbMasterPageMode;
305*cdf0e10cSrcweir 	bool mbLayerMode;
306*cdf0e10cSrcweir 
307*cdf0e10cSrcweir     /** This flag indicates whether the called DrawController is being
308*cdf0e10cSrcweir         disposed or already has been disposed.
309*cdf0e10cSrcweir     */
310*cdf0e10cSrcweir     bool mbDisposing;
311*cdf0e10cSrcweir 
312*cdf0e10cSrcweir     ::std::auto_ptr< ::cppu::IPropertyArrayHelper> mpPropertyArrayHelper;
313*cdf0e10cSrcweir 
314*cdf0e10cSrcweir     /** The current sub controller.  May be NULL.
315*cdf0e10cSrcweir     */
316*cdf0e10cSrcweir     css::uno::Reference<css::drawing::XDrawSubController> mxSubController;
317*cdf0e10cSrcweir 
318*cdf0e10cSrcweir     css::uno::Reference<
319*cdf0e10cSrcweir         css::drawing::framework::XConfigurationController> mxConfigurationController;
320*cdf0e10cSrcweir     css::uno::Reference<
321*cdf0e10cSrcweir         css::drawing::framework::XModuleController> mxModuleController;
322*cdf0e10cSrcweir 
323*cdf0e10cSrcweir     /** Send an event to all relevant property listeners that a
324*cdf0e10cSrcweir         property has changed its value.  The fire() method of the
325*cdf0e10cSrcweir         OPropertySetHelper is wrapped by this method to handle
326*cdf0e10cSrcweir         exceptions thrown by called listeners.
327*cdf0e10cSrcweir     */
328*cdf0e10cSrcweir     void FirePropertyChange (
329*cdf0e10cSrcweir         sal_Int32 nHandle,
330*cdf0e10cSrcweir         const ::com::sun::star::uno::Any& rNewValue,
331*cdf0e10cSrcweir         const ::com::sun::star::uno::Any& rOldValue);
332*cdf0e10cSrcweir 
333*cdf0e10cSrcweir     void ProvideFrameworkControllers (void);
334*cdf0e10cSrcweir     void DisposeFrameworkControllers (void);
335*cdf0e10cSrcweir };
336*cdf0e10cSrcweir 
337*cdf0e10cSrcweir } // end of namespace sd
338*cdf0e10cSrcweir 
339*cdf0e10cSrcweir #endif
340