update dev300-m58
[ooovba.git] / framework / inc / services / frame.hxx
blob743de3c08673505c1b26babb45441c3a8225f03a
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: frame.hxx,v $
11 * $Revision: 1.41.82.1 $
13 * This file is part of OpenOffice.org.
15 * OpenOffice.org is free software: you can redistribute it and/or modify
16 * it under the terms of the GNU Lesser General Public License version 3
17 * only, as published by the Free Software Foundation.
19 * OpenOffice.org is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU Lesser General Public License version 3 for more details
23 * (a copy is included in the LICENSE file that accompanied this code).
25 * You should have received a copy of the GNU Lesser General Public License
26 * version 3 along with OpenOffice.org. If not, see
27 * <http://www.openoffice.org/license.html>
28 * for a copy of the LGPLv3 License.
30 ************************************************************************/
32 #ifndef __FRAMEWORK_SERVICES_FRAME_HXX_
33 #define __FRAMEWORK_SERVICES_FRAME_HXX_
35 //_________________________________________________________________________________________________________________
36 // my own includes
37 //_________________________________________________________________________________________________________________
39 #include <classes/framecontainer.hxx>
40 #include <classes/propertysethelper.hxx>
41 #include <threadhelp/resetableguard.hxx>
42 #include <threadhelp/writeguard.hxx>
43 #include <threadhelp/readguard.hxx>
44 #include <threadhelp/threadhelpbase.hxx>
46 #ifndef __FRAMEWORK_THREADHELP_TRANSACTIONBASE_HXX_
47 #include <threadhelp/transactionbase.hxx>
48 #endif
49 #include <macros/generic.hxx>
50 #include <macros/debug.hxx>
51 #include <macros/xinterface.hxx>
52 #include <macros/xtypeprovider.hxx>
53 #include <macros/xserviceinfo.hxx>
54 #include <general.h>
56 //_________________________________________________________________________________________________________________
57 // interface includes
58 //_________________________________________________________________________________________________________________
59 #include <com/sun/star/frame/XDispatchInformationProvider.hpp>
60 #include <com/sun/star/frame/XComponentLoader.hpp>
61 #include <com/sun/star/frame/XController.hpp>
62 #include <com/sun/star/frame/XDispatch.hpp>
63 #include <com/sun/star/frame/XDispatchProvider.hpp>
64 #include <com/sun/star/frame/XDispatchRecorderSupplier.hpp>
65 #include <com/sun/star/frame/XDispatchProviderInterception.hpp>
66 #include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
67 #include <com/sun/star/lang/XEventListener.hpp>
68 #include <com/sun/star/frame/XFrame.hpp>
69 #include <com/sun/star/frame/XFrameActionListener.hpp>
70 #include <com/sun/star/frame/XFrames.hpp>
71 #include <com/sun/star/frame/XFramesSupplier.hpp>
72 #include <com/sun/star/frame/XTitle.hpp>
73 #include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
74 #include <com/sun/star/task/XStatusIndicator.hpp>
75 #include <com/sun/star/task/XStatusIndicatorFactory.hpp>
76 #include <com/sun/star/awt/XTopWindowListener.hpp>
77 #include <com/sun/star/awt/XWindow.hpp>
78 #include <com/sun/star/awt/XTopWindow.hpp>
79 #include <com/sun/star/awt/XWindowListener.hpp>
80 #include <com/sun/star/awt/XFocusListener.hpp>
81 #include <com/sun/star/awt/FocusEvent.hpp>
82 #include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp>
83 #include <com/sun/star/document/XActionLockable.hpp>
84 #include <com/sun/star/util/XCloseable.hpp>
85 #include <com/sun/star/frame/XLayoutManager.hpp>
87 //_________________________________________________________________________________________________________________
88 // other includes
89 //_________________________________________________________________________________________________________________
90 #include <svtools/cmdoptions.hxx>
91 #include <cppuhelper/interfacecontainer.hxx>
92 #include <cppuhelper/weak.hxx>
93 #include <rtl/string.hxx>
95 //_________________________________________________________________________________________________________________
96 // namespace
97 //_________________________________________________________________________________________________________________
99 namespace framework{
101 //_________________________________________________________________________________________________________________
102 // exported const
103 //_________________________________________________________________________________________________________________
105 // This enum can be used to set differnt active states of frames
106 enum EActiveState
108 E_INACTIVE , // I'am not a member of active path in tree and i don't have the focus.
109 E_ACTIVE , // I'am in the middle of an active path in tree and i don't have the focus.
110 E_FOCUS // I have the focus now. I must a member of an active path!
113 //_________________________________________________________________________________________________________________
114 // exported definitions
115 //_________________________________________________________________________________________________________________
117 /*-************************************************************************************************************//**
118 @short implements a normal frame of hierarchy
119 @descr An instance of these class can be a normal node in frame tree. A frame support influencing of his
120 subtree, find of subframes, activate- and deactivate-mechanism as well as
121 set/get of a frame window, component or controller.
123 @attention This implementation supports three states: a)uninitialized, b)working, c)disposed
124 If you call wrong methods in modes a) or c) ... you will get some exceptions.
125 How you should work with this service:
126 i) create it by using "xServiceManager->createInstance(...)"
127 ii) call XInitialization::initialize() with a valid window reference or use createInstanceWithArguments() at i)
128 iii) works with object
129 iv) dispose object by calling XComponent::dispose()
130 After iv) all further requests are rejected by exceptions! (DisposedException)
132 @base ThreadHelpBase
133 help to guarantee correct initialized lock member at startup
134 @base TransactionBase
135 help to implement unbreakable interface calls
136 @base OBroadcastHelper
137 OPropertySetHelper
138 implements the property set
139 @base OWeakObject
140 provides the refcount and XInterface, XWeak
142 @devstatus ready to use
143 @threadsafe yes
144 @modified 04.10.2004 10:47, as96863
145 *//*-*************************************************************************************************************/
146 class Frame : // interfaces
147 public css::lang::XTypeProvider ,
148 public css::lang::XServiceInfo ,
149 public css::frame::XFramesSupplier , // => XFrame => XComponent
150 public css::frame::XDispatchProvider ,
151 public css::frame::XDispatchProviderInterception ,
152 public css::frame::XDispatchInformationProvider ,
153 public css::task::XStatusIndicatorFactory ,
154 public css::awt::XWindowListener , // => XEventListener
155 public css::awt::XTopWindowListener ,
156 public css::awt::XFocusListener ,
157 public css::document::XActionLockable ,
158 public css::util::XCloseable , // => XCloseBroadcaster
159 public css::frame::XComponentLoader ,
160 public css::frame::XTitle ,
161 public css::frame::XTitleChangeBroadcaster ,
162 // base classes
163 // Order is neccessary for right initialization of this class!
164 public ThreadHelpBase ,
165 public TransactionBase ,
166 public PropertySetHelper , // helper implements ThreadHelpbase, TransactionBase, XPropertySet, XPropertySetInfo
167 public ::cppu::OWeakObject // helper implements XInterface, XWeak
169 //-------------------------------------------------------------------------------------------------------------
170 // public methods
171 //-------------------------------------------------------------------------------------------------------------
173 public:
175 //---------------------------------------------------------------------------------------------------------
176 // constructor / destructor
177 //---------------------------------------------------------------------------------------------------------
178 Frame( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
179 virtual ~Frame( );
181 //---------------------------------------------------------------------------------------------------------
182 // XInterface, XTypeProvider, XServiceInfo
183 //---------------------------------------------------------------------------------------------------------
184 FWK_DECLARE_XINTERFACE
185 FWK_DECLARE_XTYPEPROVIDER
186 DECLARE_XSERVICEINFO
188 //---------------------------------------------------------------------------------------------------------
189 // XComponentLoader
190 //---------------------------------------------------------------------------------------------------------
191 virtual css::uno::Reference< css::lang::XComponent > SAL_CALL loadComponentFromURL ( const ::rtl::OUString& sURL ,
192 const ::rtl::OUString& sTargetFrameName ,
193 sal_Int32 nSearchFlags ,
194 const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) throw( css::io::IOException ,
195 css::lang::IllegalArgumentException ,
196 css::uno::RuntimeException );
199 //---------------------------------------------------------------------------------------------------------
200 // XFramesSupplier
201 //---------------------------------------------------------------------------------------------------------
202 virtual css::uno::Reference< css::frame::XFrames > SAL_CALL getFrames ( ) throw( css::uno::RuntimeException );
203 virtual css::uno::Reference< css::frame::XFrame > SAL_CALL getActiveFrame ( ) throw( css::uno::RuntimeException );
204 virtual void SAL_CALL setActiveFrame ( const css::uno::Reference< css::frame::XFrame >& xFrame ) throw( css::uno::RuntimeException );
206 //---------------------------------------------------------------------------------------------------------
207 // XFrame
208 //---------------------------------------------------------------------------------------------------------
209 virtual void SAL_CALL initialize ( const css::uno::Reference< css::awt::XWindow >& xWindow ) throw( css::uno::RuntimeException );
210 virtual css::uno::Reference< css::awt::XWindow > SAL_CALL getContainerWindow ( ) throw( css::uno::RuntimeException );
211 virtual void SAL_CALL setCreator ( const css::uno::Reference< css::frame::XFramesSupplier >& xCreator ) throw( css::uno::RuntimeException );
212 virtual css::uno::Reference< css::frame::XFramesSupplier > SAL_CALL getCreator ( ) throw( css::uno::RuntimeException );
213 virtual ::rtl::OUString SAL_CALL getName ( ) throw( css::uno::RuntimeException );
214 virtual void SAL_CALL setName ( const ::rtl::OUString& sName ) throw( css::uno::RuntimeException );
215 virtual css::uno::Reference< css::frame::XFrame > SAL_CALL findFrame ( const ::rtl::OUString& sTargetFrameName ,
216 sal_Int32 nSearchFlags ) throw( css::uno::RuntimeException );
217 virtual sal_Bool SAL_CALL isTop ( ) throw( css::uno::RuntimeException );
218 virtual void SAL_CALL activate ( ) throw( css::uno::RuntimeException );
219 virtual void SAL_CALL deactivate ( ) throw( css::uno::RuntimeException );
220 virtual sal_Bool SAL_CALL isActive ( ) throw( css::uno::RuntimeException );
221 virtual void SAL_CALL contextChanged ( ) throw( css::uno::RuntimeException );
222 virtual sal_Bool SAL_CALL setComponent ( const css::uno::Reference< css::awt::XWindow >& xComponentWindow ,
223 const css::uno::Reference< css::frame::XController >& xController ) throw( css::uno::RuntimeException );
224 virtual css::uno::Reference< css::awt::XWindow > SAL_CALL getComponentWindow ( ) throw( css::uno::RuntimeException );
225 virtual css::uno::Reference< css::frame::XController > SAL_CALL getController ( ) throw( css::uno::RuntimeException );
226 virtual void SAL_CALL addFrameActionListener ( const css::uno::Reference< css::frame::XFrameActionListener >& xListener ) throw( css::uno::RuntimeException );
227 virtual void SAL_CALL removeFrameActionListener ( const css::uno::Reference< css::frame::XFrameActionListener >& xListener ) throw( css::uno::RuntimeException );
229 //---------------------------------------------------------------------------------------------------------
230 // XComponent
231 //---------------------------------------------------------------------------------------------------------
232 virtual void SAL_CALL dispose ( ) throw( css::uno::RuntimeException );
233 virtual void SAL_CALL addEventListener ( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw( css::uno::RuntimeException );
234 virtual void SAL_CALL removeEventListener ( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw( css::uno::RuntimeException );
236 //---------------------------------------------------------------------------------------------------------
237 // XStatusIndicatorFactory
238 //---------------------------------------------------------------------------------------------------------
239 virtual css::uno::Reference< css::task::XStatusIndicator > SAL_CALL createStatusIndicator ( ) throw( css::uno::RuntimeException );
241 //---------------------------------------------------------------------------------------------------------
242 // XDispatchProvider
243 //---------------------------------------------------------------------------------------------------------
244 virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch ( const css::util::URL& aURL ,
245 const ::rtl::OUString& sTargetFrameName ,
246 sal_Int32 nSearchFlags ) throw( css::uno::RuntimeException );
247 virtual css::uno::Sequence<
248 css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches ( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw( css::uno::RuntimeException );
250 //---------------------------------------------------------------------------------------------------------
251 // XDispatchProviderInterception
252 //---------------------------------------------------------------------------------------------------------
253 virtual void SAL_CALL registerDispatchProviderInterceptor( const css::uno::Reference< css::frame::XDispatchProviderInterceptor >& xInterceptor ) throw( css::uno::RuntimeException );
254 virtual void SAL_CALL releaseDispatchProviderInterceptor ( const css::uno::Reference< css::frame::XDispatchProviderInterceptor >& xInterceptor ) throw( css::uno::RuntimeException );
256 //---------------------------------------------------------------------------------------------------------
257 // XDispatchInformationProvider
258 //---------------------------------------------------------------------------------------------------------
259 virtual css::uno::Sequence< sal_Int16 > SAL_CALL getSupportedCommandGroups ( ) throw (css::uno::RuntimeException);
260 virtual css::uno::Sequence< css::frame::DispatchInformation > SAL_CALL getConfigurableDispatchInformation(sal_Int16 nCommandGroup) throw (css::uno::RuntimeException);
262 //---------------------------------------------------------------------------------------------------------
263 // XWindowListener
264 // Attention: windowResized() and windowShown() are implement only! All other are empty!
265 //---------------------------------------------------------------------------------------------------------
266 virtual void SAL_CALL windowResized ( const css::awt::WindowEvent& aEvent ) throw( css::uno::RuntimeException );
267 virtual void SAL_CALL windowMoved ( const css::awt::WindowEvent& /*aEvent*/ ) throw( css::uno::RuntimeException ) {};
268 virtual void SAL_CALL windowShown ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
269 virtual void SAL_CALL windowHidden ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
271 //---------------------------------------------------------------------------------------------------------
272 // XFocusListener
273 // Attention: focusLost() not implemented yet!
274 //---------------------------------------------------------------------------------------------------------
275 virtual void SAL_CALL focusGained ( const css::awt::FocusEvent& aEvent ) throw( css::uno::RuntimeException );
276 virtual void SAL_CALL focusLost ( const css::awt::FocusEvent& /*aEvent*/ ) throw( css::uno::RuntimeException ) {};
278 //---------------------------------------------------------------------------------------------------------
279 // XTopWindowListener
280 // Attention: windowActivated(), windowDeactivated() and windowClosing() are implement only! All other are empty!
281 //---------------------------------------------------------------------------------------------------------
282 virtual void SAL_CALL windowActivated ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
283 virtual void SAL_CALL windowDeactivated ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
284 virtual void SAL_CALL windowOpened ( const css::lang::EventObject& /*aEvent*/ ) throw( css::uno::RuntimeException ) {};
285 virtual void SAL_CALL windowClosing ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
286 virtual void SAL_CALL windowClosed ( const css::lang::EventObject& /*aEvent*/ ) throw( css::uno::RuntimeException ) {};
287 virtual void SAL_CALL windowMinimized ( const css::lang::EventObject& /*aEvent*/ ) throw( css::uno::RuntimeException ) {};
288 virtual void SAL_CALL windowNormalized ( const css::lang::EventObject& /*aEvent*/ ) throw( css::uno::RuntimeException ) {};
290 //---------------------------------------------------------------------------------------------------------
291 // XEventListener
292 //---------------------------------------------------------------------------------------------------------
293 virtual void SAL_CALL disposing ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
295 //---------------------------------------------------------------------------------------------------------
296 // XActionLockable
297 //---------------------------------------------------------------------------------------------------------
298 virtual sal_Bool SAL_CALL isActionLocked ( ) throw( css::uno::RuntimeException );
299 virtual void SAL_CALL addActionLock ( ) throw( css::uno::RuntimeException );
300 virtual void SAL_CALL removeActionLock( ) throw( css::uno::RuntimeException );
301 virtual void SAL_CALL setActionLocks ( sal_Int16 nLock ) throw( css::uno::RuntimeException );
302 virtual sal_Int16 SAL_CALL resetActionLocks( ) throw( css::uno::RuntimeException );
304 //---------------------------------------------------------------------------------------------------------
305 // XCloseable
306 //---------------------------------------------------------------------------------------------------------
307 virtual void SAL_CALL close( sal_Bool bDeliverOwnerShip ) throw( css::util::CloseVetoException,
308 css::uno::RuntimeException );
310 //---------------------------------------------------------------------------------------------------------
311 // XCloseBroadcaster
312 //---------------------------------------------------------------------------------------------------------
313 virtual void SAL_CALL addCloseListener ( const css::uno::Reference< css::util::XCloseListener >& xListener ) throw (css::uno::RuntimeException);
314 virtual void SAL_CALL removeCloseListener( const css::uno::Reference< css::util::XCloseListener >& xListener ) throw (css::uno::RuntimeException);
316 //---------------------------------------------------------------------------------------------------------
317 // XTitle
318 //---------------------------------------------------------------------------------------------------------
319 virtual ::rtl::OUString SAL_CALL getTitle( ) throw (css::uno::RuntimeException);
320 virtual void SAL_CALL setTitle( const ::rtl::OUString& sTitle ) throw (css::uno::RuntimeException);
322 //---------------------------------------------------------------------------------------------------------
323 // XTitleChangeBroadcaster
324 //---------------------------------------------------------------------------------------------------------
325 virtual void SAL_CALL addTitleChangeListener ( const css::uno::Reference< css::frame::XTitleChangeListener >& xListener) throw (css::uno::RuntimeException);
326 virtual void SAL_CALL removeTitleChangeListener( const css::uno::Reference< css::frame::XTitleChangeListener >& xListenr ) throw (css::uno::RuntimeException);
328 //---------------------------------------------------------------------------------------------------------
329 // PropertySetHelper => XPropertySet, XPropertySetInfo
330 //---------------------------------------------------------------------------------------------------------
331 private:
333 void impl_initializePropInfo();
335 virtual void SAL_CALL impl_setPropertyValue(const ::rtl::OUString& sProperty,
336 sal_Int32 nHandle ,
337 const css::uno::Any& aValue );
339 virtual css::uno::Any SAL_CALL impl_getPropertyValue(const ::rtl::OUString& sProperty,
340 sal_Int32 nHandle );
342 //-------------------------------------------------------------------------------------------------------------
343 // private methods
344 //-------------------------------------------------------------------------------------------------------------
346 private:
348 /*-****************************************************************************************************//**
349 @short helper methods
350 @descr Follow methods are needed at different points of our code (more then ones!).
352 @attention Threadsafe methods are signed by "implts_..."!
353 *//*-*****************************************************************************************************/
355 // threadsafe
356 void implts_sendFrameActionEvent ( const css::frame::FrameAction& aAction );
357 void implts_resizeComponentWindow ( );
358 void implts_setIconOnWindow ( );
359 void implts_startWindowListening ( );
360 void implts_stopWindowListening ( );
361 void implts_saveWindowAttributes ( );
362 void implts_checkSuicide ( );
363 void implts_forgetSubFrames ( );
364 DECL_LINK( implts_windowClosing, void* );
365 css::uno::Reference< css::awt::XTopWindow > impl_searchTopWindow ( const css::uno::Reference< css::awt::XWindow >& xWindow );
367 // non threadsafe
368 void impl_checkMenuCloser ( );
369 void impl_setCloser ( const css::uno::Reference< css::frame::XFrame >& xFrame ,
370 sal_Bool bState );
371 void impl_disposeContainerWindow ( css::uno::Reference< css::awt::XWindow >& xWindow );
372 static const css::uno::Sequence< css::beans::Property > impl_getStaticPropertyDescriptor( );
374 //-------------------------------------------------------------------------------------------------------------
375 // debug methods
376 // (should be private everyway!)
377 //-------------------------------------------------------------------------------------------------------------
379 /*-****************************************************************************************************//**
380 @short debug-method to check incoming parameter of some other mehods of this class
381 @descr The following methods are used to check parameters for other methods
382 of this class. The return value is used directly for an ASSERT(...).
384 @attention This methods are static and can't use our member directly! It's better for threadsafe code...
385 because we call it with references or pointer to check variables ... and must make it safe
386 by himself!
388 @seealso ASSERTs in implementation!
390 @param references to checking variables
391 @return sal_True ,on invalid parameter
392 @return sal_False ,otherwise
394 @onerror We return sal_True
395 *//*-*****************************************************************************************************/
397 #ifdef ENABLE_ASSERTIONS
399 private:
401 static sal_Bool implcp_ctor ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
402 static sal_Bool implcp_setActiveFrame ( const css::uno::Reference< css::frame::XFrame >& xFrame );
403 static sal_Bool implcp_initialize ( const css::uno::Reference< css::awt::XWindow >& xWindow );
404 static sal_Bool implcp_setCreator ( const css::uno::Reference< css::frame::XFramesSupplier >& xCreator );
405 static sal_Bool implcp_setName ( const ::rtl::OUString& sName );
406 static sal_Bool implcp_findFrame ( const ::rtl::OUString& sTargetFrameName ,
407 sal_Int32 nSearchFlags );
408 static sal_Bool implcp_setComponent ( const css::uno::Reference< css::awt::XWindow >& xComponentWindow ,
409 const css::uno::Reference< css::frame::XController >& xController );
410 static sal_Bool implcp_addFrameActionListener ( const css::uno::Reference< css::frame::XFrameActionListener >& xListener );
411 static sal_Bool implcp_removeFrameActionListener ( const css::uno::Reference< css::frame::XFrameActionListener >& xListener );
412 static sal_Bool implcp_addEventListener ( const css::uno::Reference< css::lang::XEventListener >& xListener );
413 static sal_Bool implcp_removeEventListener ( const css::uno::Reference< css::lang::XEventListener >& xListener );
414 static sal_Bool implcp_windowResized ( const css::awt::WindowEvent& aEvent );
415 static sal_Bool implcp_focusGained ( const css::awt::FocusEvent& aEvent );
416 static sal_Bool implcp_windowActivated ( const css::lang::EventObject& aEvent );
417 static sal_Bool implcp_windowDeactivated ( const css::lang::EventObject& aEvent );
418 static sal_Bool implcp_disposing ( const css::lang::EventObject& aEvent );
420 #endif // #ifdef ENABLE_ASSERTIONS
422 //*************************************************************************************************************
423 // variables
424 // -threadsafe by own read/write lock "m_aLock"
425 //*************************************************************************************************************
426 private:
428 css::uno::Reference< css::lang::XMultiServiceFactory > m_xFactory ; /// reference to factory, which has create this instance
429 css::uno::Reference< css::task::XStatusIndicatorFactory > m_xIndicatorFactoryHelper ; /// reference to factory helper to create status indicator objects
430 css::uno::WeakReference< css::task::XStatusIndicator > m_xIndicatorInterception ; /// points to an external set progress, which should be used instead of the internal one.
431 css::uno::Reference< css::frame::XDispatchProvider > m_xDispatchHelper ; /// helper for XDispatch/Provider and interception interfaces
432 css::uno::Reference< css::frame::XFrames > m_xFramesHelper ; /// helper for XFrames, XIndexAccess and XElementAccess interfaces
433 ::cppu::OMultiTypeInterfaceContainerHelper m_aListenerContainer ; /// container for ALL Listener
434 css::uno::Reference< css::frame::XFramesSupplier > m_xParent ; /// parent of this frame
435 css::uno::Reference< css::awt::XWindow > m_xContainerWindow ; /// containerwindow of this frame for embedded components
436 css::uno::Reference< css::awt::XWindow > m_xComponentWindow ; /// window of the actual component
437 css::uno::Reference< css::frame::XController > m_xController ; /// controller of the actual frame
438 css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > m_xDropTargetListener ; /// listen to drag & drop
439 EActiveState m_eActiveState ; /// state, if i'am a member of active path in tree or i have the focus or ...
440 ::rtl::OUString m_sName ; /// name of this frame
441 sal_Bool m_bIsFrameTop ; /// frame has no parent or the parent is a taskor the desktop
442 sal_Bool m_bConnected ; /// due to FrameActionEvent
443 sal_Int16 m_nExternalLockCount ;
444 css::uno::Reference< css::frame::XDispatchRecorderSupplier > m_xDispatchRecorderSupplier ; /// is used for dispatch recording and will be set/get from outside. Frame provide it only!
445 SvtCommandOptions m_aCommandOptions ; /// ref counted class to support disabling commands defined by configuration file
446 sal_Bool m_bSelfClose ; /// in case of CloseVetoException on method close() wqs thrown by ourself - we must close ourself later if no internal processes are running
447 sal_Bool m_bIsHidden ; /// indicates, if this frame is used in hidden mode or not
448 static css::uno::WeakReference< css::frame::XFrame > m_xCloserFrame ; /// holds the only frame, which must show the special closer menu item (can be NULL!)
449 css::uno::Reference< ::com::sun::star::frame::XLayoutManager > m_xLayoutManager ; /// is used to layout the child windows of the frame.
450 css::uno::Reference< css::frame::XDispatchInformationProvider > m_xDispatchInfoHelper ;
451 css::uno::Reference< css::frame::XTitle > m_xTitleHelper ;
453 protected:
455 FrameContainer m_aChildFrameContainer ; /// array of child frames
457 inline css::uno::Reference< css::lang::XMultiServiceFactory > impl_getFactory()
459 ReadGuard aReadLock( m_aLock );
460 return m_xFactory;
463 inline ::rtl::OUString impl_getName()
465 ReadGuard aReadLock( m_aLock );
466 return m_sName;
469 inline css::uno::Reference< css::awt::XWindow > impl_getContainerWindow()
471 ReadGuard aReadLock( m_aLock );
472 return m_xContainerWindow;
475 inline css::uno::Reference< css::frame::XDispatchProvider > impl_getDispatchHelper()
477 ReadGuard aReadLock( m_aLock );
478 return m_xDispatchHelper;
481 inline css::uno::Reference< css::frame::XFramesSupplier > impl_getParent()
483 ReadGuard aReadLock( m_aLock );
484 return m_xParent;
487 }; // class Frame
489 } // namespace framework
491 #endif // #ifndef __FRAMEWORK_SERVICES_FRAME_HXX_