1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
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 //_________________________________________________________________________________________________________________
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>
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>
56 //_________________________________________________________________________________________________________________
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 //_________________________________________________________________________________________________________________
89 //_________________________________________________________________________________________________________________
90 #include <svtools/cmdoptions.hxx>
91 #include <cppuhelper/interfacecontainer.hxx>
92 #include <cppuhelper/weak.hxx>
93 #include <rtl/string.hxx>
95 //_________________________________________________________________________________________________________________
97 //_________________________________________________________________________________________________________________
101 //_________________________________________________________________________________________________________________
103 //_________________________________________________________________________________________________________________
105 // This enum can be used to set differnt active states of frames
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)
133 help to guarantee correct initialized lock member at startup
134 @base TransactionBase
135 help to implement unbreakable interface calls
136 @base OBroadcastHelper
138 implements the property set
140 provides the refcount and XInterface, XWeak
142 @devstatus ready to use
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
,
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 //-------------------------------------------------------------------------------------------------------------
171 //-------------------------------------------------------------------------------------------------------------
175 //---------------------------------------------------------------------------------------------------------
176 // constructor / destructor
177 //---------------------------------------------------------------------------------------------------------
178 Frame( const css::uno::Reference
< css::lang::XMultiServiceFactory
>& xFactory
);
181 //---------------------------------------------------------------------------------------------------------
182 // XInterface, XTypeProvider, XServiceInfo
183 //---------------------------------------------------------------------------------------------------------
184 FWK_DECLARE_XINTERFACE
185 FWK_DECLARE_XTYPEPROVIDER
188 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
292 //---------------------------------------------------------------------------------------------------------
293 virtual void SAL_CALL
disposing ( const css::lang::EventObject
& aEvent
) throw( css::uno::RuntimeException
);
295 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
306 //---------------------------------------------------------------------------------------------------------
307 virtual void SAL_CALL
close( sal_Bool bDeliverOwnerShip
) throw( css::util::CloseVetoException
,
308 css::uno::RuntimeException
);
310 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
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 //---------------------------------------------------------------------------------------------------------
333 void impl_initializePropInfo();
335 virtual void SAL_CALL
impl_setPropertyValue(const ::rtl::OUString
& sProperty
,
337 const css::uno::Any
& aValue
);
339 virtual css::uno::Any SAL_CALL
impl_getPropertyValue(const ::rtl::OUString
& sProperty
,
342 //-------------------------------------------------------------------------------------------------------------
344 //-------------------------------------------------------------------------------------------------------------
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 *//*-*****************************************************************************************************/
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
);
368 void impl_checkMenuCloser ( );
369 void impl_setCloser ( const css::uno::Reference
< css::frame::XFrame
>& xFrame
,
371 void impl_disposeContainerWindow ( css::uno::Reference
< css::awt::XWindow
>& xWindow
);
372 static const css::uno::Sequence
< css::beans::Property
> impl_getStaticPropertyDescriptor( );
374 //-------------------------------------------------------------------------------------------------------------
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
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
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_addFrameActionListener ( const css::uno::Reference
< css::frame::XFrameActionListener
>& xListener
);
404 static sal_Bool
implcp_removeFrameActionListener ( const css::uno::Reference
< css::frame::XFrameActionListener
>& xListener
);
405 static sal_Bool
implcp_addEventListener ( const css::uno::Reference
< css::lang::XEventListener
>& xListener
);
406 static sal_Bool
implcp_removeEventListener ( const css::uno::Reference
< css::lang::XEventListener
>& xListener
);
407 static sal_Bool
implcp_windowResized ( const css::awt::WindowEvent
& aEvent
);
408 static sal_Bool
implcp_focusGained ( const css::awt::FocusEvent
& aEvent
);
409 static sal_Bool
implcp_windowActivated ( const css::lang::EventObject
& aEvent
);
410 static sal_Bool
implcp_windowDeactivated ( const css::lang::EventObject
& aEvent
);
411 static sal_Bool
implcp_disposing ( const css::lang::EventObject
& aEvent
);
413 #endif // #ifdef ENABLE_ASSERTIONS
415 //*************************************************************************************************************
417 // -threadsafe by own read/write lock "m_aLock"
418 //*************************************************************************************************************
421 css::uno::Reference
< css::lang::XMultiServiceFactory
> m_xFactory
; /// reference to factory, which has create this instance
422 css::uno::Reference
< css::task::XStatusIndicatorFactory
> m_xIndicatorFactoryHelper
; /// reference to factory helper to create status indicator objects
423 css::uno::WeakReference
< css::task::XStatusIndicator
> m_xIndicatorInterception
; /// points to an external set progress, which should be used instead of the internal one.
424 css::uno::Reference
< css::frame::XDispatchProvider
> m_xDispatchHelper
; /// helper for XDispatch/Provider and interception interfaces
425 css::uno::Reference
< css::frame::XFrames
> m_xFramesHelper
; /// helper for XFrames, XIndexAccess and XElementAccess interfaces
426 ::cppu::OMultiTypeInterfaceContainerHelper m_aListenerContainer
; /// container for ALL Listener
427 css::uno::Reference
< css::frame::XFramesSupplier
> m_xParent
; /// parent of this frame
428 css::uno::Reference
< css::awt::XWindow
> m_xContainerWindow
; /// containerwindow of this frame for embedded components
429 css::uno::Reference
< css::awt::XWindow
> m_xComponentWindow
; /// window of the actual component
430 css::uno::Reference
< css::frame::XController
> m_xController
; /// controller of the actual frame
431 css::uno::Reference
< css::datatransfer::dnd::XDropTargetListener
> m_xDropTargetListener
; /// listen to drag & drop
432 EActiveState m_eActiveState
; /// state, if i'am a member of active path in tree or i have the focus or ...
433 ::rtl::OUString m_sName
; /// name of this frame
434 sal_Bool m_bIsFrameTop
; /// frame has no parent or the parent is a taskor the desktop
435 sal_Bool m_bConnected
; /// due to FrameActionEvent
436 sal_Int16 m_nExternalLockCount
;
437 css::uno::Reference
< css::frame::XDispatchRecorderSupplier
> m_xDispatchRecorderSupplier
; /// is used for dispatch recording and will be set/get from outside. Frame provide it only!
438 SvtCommandOptions m_aCommandOptions
; /// ref counted class to support disabling commands defined by configuration file
439 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
440 sal_Bool m_bIsHidden
; /// indicates, if this frame is used in hidden mode or not
441 static css::uno::WeakReference
< css::frame::XFrame
> m_xCloserFrame
; /// holds the only frame, which must show the special closer menu item (can be NULL!)
442 css::uno::Reference
< ::com::sun::star::frame::XLayoutManager
> m_xLayoutManager
; /// is used to layout the child windows of the frame.
443 css::uno::Reference
< css::frame::XDispatchInformationProvider
> m_xDispatchInfoHelper
;
444 css::uno::Reference
< css::frame::XTitle
> m_xTitleHelper
;
448 FrameContainer m_aChildFrameContainer
; /// array of child frames
450 inline css::uno::Reference
< css::lang::XMultiServiceFactory
> impl_getFactory()
452 ReadGuard
aReadLock( m_aLock
);
456 inline ::rtl::OUString
impl_getName()
458 ReadGuard
aReadLock( m_aLock
);
462 inline css::uno::Reference
< css::awt::XWindow
> impl_getContainerWindow()
464 ReadGuard
aReadLock( m_aLock
);
465 return m_xContainerWindow
;
468 inline css::uno::Reference
< css::frame::XDispatchProvider
> impl_getDispatchHelper()
470 ReadGuard
aReadLock( m_aLock
);
471 return m_xDispatchHelper
;
474 inline css::uno::Reference
< css::frame::XFramesSupplier
> impl_getParent()
476 ReadGuard
aReadLock( m_aLock
);
482 } // namespace framework
484 #endif // #ifndef __FRAMEWORK_SERVICES_FRAME_HXX_