xref: /AOO41X/main/svx/source/inc/fmvwimp.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 #ifndef _SVX_FMVWIMP_HXX
28*cdf0e10cSrcweir #define _SVX_FMVWIMP_HXX
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include "svx/svdmark.hxx"
31*cdf0e10cSrcweir #include "fmdocumentclassification.hxx"
32*cdf0e10cSrcweir 
33*cdf0e10cSrcweir /** === begin UNO includes === **/
34*cdf0e10cSrcweir #include <com/sun/star/form/XForm.hpp>
35*cdf0e10cSrcweir #include <com/sun/star/container/XIndexAccess.hpp>
36*cdf0e10cSrcweir #include <com/sun/star/container/XEnumeration.hpp>
37*cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFormController.hpp>
38*cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFormControllerContext.hpp>
39*cdf0e10cSrcweir #include <com/sun/star/container/XContainerListener.hpp>
40*cdf0e10cSrcweir #include <com/sun/star/container/ContainerEvent.hpp>
41*cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
42*cdf0e10cSrcweir #include <com/sun/star/awt/XFocusListener.hpp>
43*cdf0e10cSrcweir #include <com/sun/star/sdb/SQLErrorEvent.hpp>
44*cdf0e10cSrcweir #include <com/sun/star/sdbc/XDataSource.hpp>
45*cdf0e10cSrcweir /** === end UNO includes === **/
46*cdf0e10cSrcweir 
47*cdf0e10cSrcweir #include <comphelper/stl_types.hxx>
48*cdf0e10cSrcweir #include <tools/link.hxx>
49*cdf0e10cSrcweir #include <tools/string.hxx>
50*cdf0e10cSrcweir #include <cppuhelper/implbase2.hxx>
51*cdf0e10cSrcweir #include <cppuhelper/implbase3.hxx>
52*cdf0e10cSrcweir #include <comphelper/uno3.hxx>
53*cdf0e10cSrcweir #include <comphelper/componentcontext.hxx>
54*cdf0e10cSrcweir #include <rtl/ref.hxx>
55*cdf0e10cSrcweir 
56*cdf0e10cSrcweir //class SdrPageViewWinRec;
57*cdf0e10cSrcweir class SdrPageWindow;
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir class SdrPageView;
60*cdf0e10cSrcweir class SdrObject;
61*cdf0e10cSrcweir class FmFormObj;
62*cdf0e10cSrcweir class FmFormModel;
63*cdf0e10cSrcweir class FmFormView;
64*cdf0e10cSrcweir class FmFormShell;
65*cdf0e10cSrcweir class Window;
66*cdf0e10cSrcweir class OutputDevice;
67*cdf0e10cSrcweir class SdrUnoObj;
68*cdf0e10cSrcweir class SdrView;
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir FORWARD_DECLARE_INTERFACE(awt,XControl)
71*cdf0e10cSrcweir FORWARD_DECLARE_INTERFACE(awt,XWindow)
72*cdf0e10cSrcweir FORWARD_DECLARE_INTERFACE(beans,XPropertySet)
73*cdf0e10cSrcweir FORWARD_DECLARE_INTERFACE(util,XNumberFormats)
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir class FmXFormView;
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir namespace svx {
78*cdf0e10cSrcweir 	class ODataAccessDescriptor;
79*cdf0e10cSrcweir 	struct OXFormsDescriptor;
80*cdf0e10cSrcweir }
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir //==================================================================
83*cdf0e10cSrcweir // FormViewPageWindowAdapter
84*cdf0e10cSrcweir //==================================================================
85*cdf0e10cSrcweir typedef ::cppu::WeakImplHelper2 <   ::com::sun::star::container::XIndexAccess
86*cdf0e10cSrcweir                                 ,   ::com::sun::star::form::runtime::XFormControllerContext
87*cdf0e10cSrcweir                                 >   FormViewPageWindowAdapter_Base;
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir class FormViewPageWindowAdapter : public FormViewPageWindowAdapter_Base
90*cdf0e10cSrcweir {
91*cdf0e10cSrcweir 	friend class FmXFormView;
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir 	::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > >   m_aControllerList;
94*cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >                            m_xControlContainer;
95*cdf0e10cSrcweir     ::comphelper::ComponentContext                                                                          m_aContext;
96*cdf0e10cSrcweir 	FmXFormView*				m_pViewImpl;
97*cdf0e10cSrcweir 	Window*						m_pWindow;
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir protected:
100*cdf0e10cSrcweir 	~FormViewPageWindowAdapter();
101*cdf0e10cSrcweir 
102*cdf0e10cSrcweir public:
103*cdf0e10cSrcweir 	FormViewPageWindowAdapter(	const ::comphelper::ComponentContext& _rContext,
104*cdf0e10cSrcweir 		const SdrPageWindow&, FmXFormView* pView);
105*cdf0e10cSrcweir 		//const SdrPageViewWinRec*, FmXFormView* pView);
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir     // XElementAccess
108*cdf0e10cSrcweir     virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
109*cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir     // XEnumerationAccess
112*cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration >  SAL_CALL createEnumeration() throw(::com::sun::star::uno::RuntimeException);
113*cdf0e10cSrcweir 
114*cdf0e10cSrcweir     // XIndexAccess
115*cdf0e10cSrcweir 	virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
116*cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 _Index) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
117*cdf0e10cSrcweir 
118*cdf0e10cSrcweir     // XFormControllerContext
119*cdf0e10cSrcweir     virtual void SAL_CALL makeVisible( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _Control ) throw (::com::sun::star::uno::RuntimeException);
120*cdf0e10cSrcweir 
121*cdf0e10cSrcweir 	const ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > >& GetList() {return m_aControllerList;}
122*cdf0e10cSrcweir 
123*cdf0e10cSrcweir protected:
124*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >  getController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm ) const;
125*cdf0e10cSrcweir 	void setController(
126*cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm,
127*cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >& _rxParentController );
128*cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >  getControlContainer() const { return m_xControlContainer; }
129*cdf0e10cSrcweir 	void updateTabOrder( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& _rxForm );
130*cdf0e10cSrcweir 	void dispose();
131*cdf0e10cSrcweir 	Window* getWindow() const {return m_pWindow;}
132*cdf0e10cSrcweir };
133*cdf0e10cSrcweir 
134*cdf0e10cSrcweir typedef ::rtl::Reference< FormViewPageWindowAdapter >   PFormViewPageWindowAdapter;
135*cdf0e10cSrcweir typedef ::std::vector< PFormViewPageWindowAdapter >     PageWindowAdapterList;
136*cdf0e10cSrcweir typedef ::std::set  <   ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >
137*cdf0e10cSrcweir                     ,   ::comphelper::OInterfaceCompare< ::com::sun::star::form::XForm >
138*cdf0e10cSrcweir                     >   SetOfForms;
139*cdf0e10cSrcweir typedef ::std::map  <   ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >
140*cdf0e10cSrcweir                     ,   SetOfForms
141*cdf0e10cSrcweir                     ,   ::comphelper::OInterfaceCompare< ::com::sun::star::awt::XControlContainer >
142*cdf0e10cSrcweir                     >   MapControlContainerToSetOfForms;
143*cdf0e10cSrcweir class SdrModel;
144*cdf0e10cSrcweir //==================================================================
145*cdf0e10cSrcweir // FmXFormView
146*cdf0e10cSrcweir //==================================================================
147*cdf0e10cSrcweir class FmXFormView :	public ::cppu::WeakImplHelper3<
148*cdf0e10cSrcweir 							::com::sun::star::form::XFormControllerListener,
149*cdf0e10cSrcweir 							::com::sun::star::awt::XFocusListener,
150*cdf0e10cSrcweir 							::com::sun::star::container::XContainerListener>
151*cdf0e10cSrcweir {
152*cdf0e10cSrcweir 	friend class FmFormView;
153*cdf0e10cSrcweir 	friend class FmFormShell;
154*cdf0e10cSrcweir 	friend class FmXFormShell;
155*cdf0e10cSrcweir 	friend class FormViewPageWindowAdapter;
156*cdf0e10cSrcweir 	class ObjectRemoveListener;
157*cdf0e10cSrcweir 	friend class ObjectRemoveListener;
158*cdf0e10cSrcweir 
159*cdf0e10cSrcweir     ::comphelper::ComponentContext                                                      m_aContext;
160*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow>					m_xWindow;
161*cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >           m_xLastCreatedControlModel;
162*cdf0e10cSrcweir 
163*cdf0e10cSrcweir 	FmFormObj*		m_pMarkedGrid;
164*cdf0e10cSrcweir 	FmFormView*		m_pView;
165*cdf0e10cSrcweir 	sal_uIntPtr		m_nActivationEvent;
166*cdf0e10cSrcweir 	sal_uIntPtr		m_nErrorMessageEvent;	// event for an asynchronous error message. See also m_aAsyncError
167*cdf0e10cSrcweir 	sal_uIntPtr		m_nAutoFocusEvent;		// event for asynchronously setting the focus to a control
168*cdf0e10cSrcweir     sal_uIntPtr		m_nControlWizardEvent;  // event for asynchronously setting the focus to a control
169*cdf0e10cSrcweir 
170*cdf0e10cSrcweir 	::com::sun::star::sdb::SQLErrorEvent
171*cdf0e10cSrcweir 					m_aAsyncError;			// error event which is to be displayed asyn. See m_nErrorMessageEvent.
172*cdf0e10cSrcweir 
173*cdf0e10cSrcweir 	PageWindowAdapterList
174*cdf0e10cSrcweir                     m_aPageWindowAdapters;  // to be filled in alive mode only
175*cdf0e10cSrcweir     MapControlContainerToSetOfForms
176*cdf0e10cSrcweir                     m_aNeedTabOrderUpdate;
177*cdf0e10cSrcweir 
178*cdf0e10cSrcweir 	// Liste der markierten Object, dient zur Restauration beim Umschalten von Alive in DesignMode
179*cdf0e10cSrcweir 	SdrMarkList				m_aMark;
180*cdf0e10cSrcweir 	ObjectRemoveListener*	m_pWatchStoredList;
181*cdf0e10cSrcweir 
182*cdf0e10cSrcweir 	bool            m_bFirstActivation;
183*cdf0e10cSrcweir     bool            m_isTabOrderUpdateSuspended;
184*cdf0e10cSrcweir 
185*cdf0e10cSrcweir 	FmFormShell* GetFormShell() const;
186*cdf0e10cSrcweir 
187*cdf0e10cSrcweir 	void removeGridWindowListening();
188*cdf0e10cSrcweir 
189*cdf0e10cSrcweir protected:
190*cdf0e10cSrcweir 	FmXFormView( const ::comphelper::ComponentContext& _rContext, FmFormView* _pView );
191*cdf0e10cSrcweir 	~FmXFormView();
192*cdf0e10cSrcweir 
193*cdf0e10cSrcweir 	void	saveMarkList( sal_Bool _bSmartUnmark = sal_True );
194*cdf0e10cSrcweir 	void	restoreMarkList( SdrMarkList& _rRestoredMarkList );
195*cdf0e10cSrcweir 	void	stopMarkListWatching();
196*cdf0e10cSrcweir 	void	startMarkListWatching();
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir 	void	notifyViewDying( );
199*cdf0e10cSrcweir 		// notifies this impl class that the anti-impl instance (m_pView) is going to die
200*cdf0e10cSrcweir 
201*cdf0e10cSrcweir public:
202*cdf0e10cSrcweir 	// UNO Anbindung
203*cdf0e10cSrcweir 
204*cdf0e10cSrcweir // ::com::sun::star::lang::XEventListener
205*cdf0e10cSrcweir 	virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw(::com::sun::star::uno::RuntimeException);
206*cdf0e10cSrcweir 
207*cdf0e10cSrcweir // ::com::sun::star::container::XContainerListener
208*cdf0e10cSrcweir 	virtual void SAL_CALL elementInserted(const  ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException);
209*cdf0e10cSrcweir 	virtual void SAL_CALL elementReplaced(const  ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException);
210*cdf0e10cSrcweir 	virtual void SAL_CALL elementRemoved(const  ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException);
211*cdf0e10cSrcweir 
212*cdf0e10cSrcweir // ::com::sun::star::form::XFormControllerListener
213*cdf0e10cSrcweir 	virtual void SAL_CALL formActivated(const ::com::sun::star::lang::EventObject& rEvent) throw(::com::sun::star::uno::RuntimeException);
214*cdf0e10cSrcweir 	virtual void SAL_CALL formDeactivated(const ::com::sun::star::lang::EventObject& rEvent) throw(::com::sun::star::uno::RuntimeException);
215*cdf0e10cSrcweir 
216*cdf0e10cSrcweir 	// XFocusListener
217*cdf0e10cSrcweir 	virtual void SAL_CALL focusGained( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
218*cdf0e10cSrcweir     virtual void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
219*cdf0e10cSrcweir 
220*cdf0e10cSrcweir 	FmFormView* getView() const {return m_pView;}
221*cdf0e10cSrcweir     PFormViewPageWindowAdapter  findWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _rxCC ) const;
222*cdf0e10cSrcweir 
223*cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >
224*cdf0e10cSrcweir             getFormController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& _rxForm, const OutputDevice& _rDevice ) const;
225*cdf0e10cSrcweir 
226*cdf0e10cSrcweir 	// activation handling
227*cdf0e10cSrcweir 	inline	bool        hasEverBeenActivated( ) const { return !m_bFirstActivation; }
228*cdf0e10cSrcweir 	inline	void		setHasBeenActivated( ) { m_bFirstActivation = false; }
229*cdf0e10cSrcweir 
230*cdf0e10cSrcweir 			void		onFirstViewActivation( const FmFormModel* _pDocModel );
231*cdf0e10cSrcweir 
232*cdf0e10cSrcweir     /** suspends the calls to activateTabOrder, which normally happen whenever for any ControlContainer of the view,
233*cdf0e10cSrcweir         new controls are inserted. Cannot be nested, i.e. you need to call resumeTabOrderUpdate before calling
234*cdf0e10cSrcweir         suspendTabOrderUpdate, again.
235*cdf0e10cSrcweir     */
236*cdf0e10cSrcweir     void    suspendTabOrderUpdate();
237*cdf0e10cSrcweir 
238*cdf0e10cSrcweir     /** resumes calls to activateTabOrder, and also does all pending calls which were collected since the last
239*cdf0e10cSrcweir         suspendTabOrderUpdate call.
240*cdf0e10cSrcweir     */
241*cdf0e10cSrcweir     void    resumeTabOrderUpdate();
242*cdf0e10cSrcweir 
243*cdf0e10cSrcweir     void    onCreatedFormObject( FmFormObj& _rFormObject );
244*cdf0e10cSrcweir 
245*cdf0e10cSrcweir     static bool
246*cdf0e10cSrcweir             isFocusable(
247*cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& i_rControl
248*cdf0e10cSrcweir             );
249*cdf0e10cSrcweir 
250*cdf0e10cSrcweir private:
251*cdf0e10cSrcweir 	//void addWindow(const SdrPageViewWinRec*);
252*cdf0e10cSrcweir 	void addWindow(const SdrPageWindow&);
253*cdf0e10cSrcweir 	void removeWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _rxCC );
254*cdf0e10cSrcweir 	void Activate(sal_Bool bSync = sal_False);
255*cdf0e10cSrcweir 	void Deactivate(sal_Bool bDeactivateController = sal_True);
256*cdf0e10cSrcweir 
257*cdf0e10cSrcweir 	SdrObject*	implCreateFieldControl( const ::svx::ODataAccessDescriptor& _rColumnDescriptor );
258*cdf0e10cSrcweir 	SdrObject*	implCreateXFormsControl( const ::svx::OXFormsDescriptor &_rDesc );
259*cdf0e10cSrcweir 
260*cdf0e10cSrcweir 	static bool createControlLabelPair(
261*cdf0e10cSrcweir         const ::comphelper::ComponentContext& _rContext,
262*cdf0e10cSrcweir         OutputDevice& _rOutDev,
263*cdf0e10cSrcweir         sal_Int32 _nXOffsetMM,
264*cdf0e10cSrcweir         sal_Int32 _nYOffsetMM,
265*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxField,
266*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats >& _rxNumberFormats,
267*cdf0e10cSrcweir         sal_uInt16 _nControlObjectID,
268*cdf0e10cSrcweir         const ::rtl::OUString& _rFieldPostfix,
269*cdf0e10cSrcweir         sal_uInt32 _nInventor,
270*cdf0e10cSrcweir         sal_uInt16 _nLabelObjectID,
271*cdf0e10cSrcweir         SdrPage* _pLabelPage,
272*cdf0e10cSrcweir         SdrPage* _pControlPage,
273*cdf0e10cSrcweir         SdrModel* _pModel,
274*cdf0e10cSrcweir         SdrUnoObj*& _rpLabel,
275*cdf0e10cSrcweir         SdrUnoObj*& _rpControl
276*cdf0e10cSrcweir 	);
277*cdf0e10cSrcweir 
278*cdf0e10cSrcweir     bool    createControlLabelPair(
279*cdf0e10cSrcweir         OutputDevice& _rOutDev,
280*cdf0e10cSrcweir         sal_Int32 _nXOffsetMM,
281*cdf0e10cSrcweir         sal_Int32 _nYOffsetMM,
282*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxField,
283*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats >& _rxNumberFormats,
284*cdf0e10cSrcweir         sal_uInt16 _nControlObjectID,
285*cdf0e10cSrcweir         const ::rtl::OUString& _rFieldPostfix,
286*cdf0e10cSrcweir         SdrUnoObj*& _rpLabel,
287*cdf0e10cSrcweir         SdrUnoObj*& _rpControl,
288*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource >& _rxDataSource = NULL,
289*cdf0e10cSrcweir         const ::rtl::OUString& _rDataSourceName = ::rtl::OUString(),
290*cdf0e10cSrcweir         const ::rtl::OUString& _rCommand= ::rtl::OUString(),
291*cdf0e10cSrcweir         const sal_Int32 _nCommandType = -1
292*cdf0e10cSrcweir     );
293*cdf0e10cSrcweir 
294*cdf0e10cSrcweir 	void ObjectRemovedInAliveMode(const SdrObject* pObject);
295*cdf0e10cSrcweir 
296*cdf0e10cSrcweir 	// asynchronously displays an error message. See also OnDelayedErrorMessage.
297*cdf0e10cSrcweir 	void	displayAsyncErrorMessage( const ::com::sun::star::sdb::SQLErrorEvent& _rEvent );
298*cdf0e10cSrcweir 
299*cdf0e10cSrcweir 	// cancels all pending async events
300*cdf0e10cSrcweir 	void cancelEvents();
301*cdf0e10cSrcweir 
302*cdf0e10cSrcweir 	/// the the auto focus to the first (in terms of the tab order) control
303*cdf0e10cSrcweir 	void AutoFocus( sal_Bool _bSync = sal_False );
304*cdf0e10cSrcweir 	DECL_LINK( OnActivate, void* );
305*cdf0e10cSrcweir 	DECL_LINK( OnAutoFocus, void* );
306*cdf0e10cSrcweir 	DECL_LINK( OnDelayedErrorMessage, void* );
307*cdf0e10cSrcweir     DECL_LINK( OnStartControlWizard, void* );
308*cdf0e10cSrcweir 
309*cdf0e10cSrcweir private:
310*cdf0e10cSrcweir     ::svxform::DocumentType impl_getDocumentType() const;
311*cdf0e10cSrcweir };
312*cdf0e10cSrcweir 
313*cdf0e10cSrcweir 
314*cdf0e10cSrcweir 
315*cdf0e10cSrcweir #endif // _SVX_FMVWIMP_HXX
316*cdf0e10cSrcweir 
317