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_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 //*************************************************************************************************************
424 // -threadsafe by own read/write lock "m_aLock"
425 //*************************************************************************************************************
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
;
455 FrameContainer m_aChildFrameContainer
; /// array of child frames
457 inline css::uno::Reference
< css::lang::XMultiServiceFactory
> impl_getFactory()
459 ReadGuard
aReadLock( m_aLock
);
463 inline ::rtl::OUString
impl_getName()
465 ReadGuard
aReadLock( m_aLock
);
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
);
489 } // namespace framework
491 #endif // #ifndef __FRAMEWORK_SERVICES_FRAME_HXX_