xref: /aoo41x/main/sfx2/inc/sfx2/dispatch.hxx (revision 353d8f4d)
1*353d8f4dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*353d8f4dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*353d8f4dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*353d8f4dSAndrew Rist  * distributed with this work for additional information
6*353d8f4dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*353d8f4dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*353d8f4dSAndrew Rist  * "License"); you may not use this file except in compliance
9*353d8f4dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*353d8f4dSAndrew Rist  *
11*353d8f4dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*353d8f4dSAndrew Rist  *
13*353d8f4dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*353d8f4dSAndrew Rist  * software distributed under the License is distributed on an
15*353d8f4dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*353d8f4dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*353d8f4dSAndrew Rist  * specific language governing permissions and limitations
18*353d8f4dSAndrew Rist  * under the License.
19*353d8f4dSAndrew Rist  *
20*353d8f4dSAndrew Rist  *************************************************************/
21*353d8f4dSAndrew Rist 
22*353d8f4dSAndrew Rist 
23cdf0e10cSrcweir #ifndef _SFXDISPATCH_HXX
24cdf0e10cSrcweir #define _SFXDISPATCH_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "sal/config.h"
27cdf0e10cSrcweir #include "sfx2/dllapi.h"
28cdf0e10cSrcweir #include "sal/types.h"
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #include <stdarg.h>
31cdf0e10cSrcweir 
32cdf0e10cSrcweir #define _SVSTDARR_USHORTS
33cdf0e10cSrcweir #include <svl/svstdarr.hxx>		// SvUShorts
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #include <sfx2/bindings.hxx>
36cdf0e10cSrcweir #include <sfx2/viewfrm.hxx>
37cdf0e10cSrcweir 
38cdf0e10cSrcweir class SfxSlotServer;
39cdf0e10cSrcweir class SfxShell;
40cdf0e10cSrcweir class SfxRequest;
41cdf0e10cSrcweir class SfxShellStack_Impl;
42cdf0e10cSrcweir class SfxHintPoster;
43cdf0e10cSrcweir class SfxViewFrame;
44cdf0e10cSrcweir class SfxBindings;
45cdf0e10cSrcweir class SfxItemSet;
46cdf0e10cSrcweir class SfxPopupMenuManager;
47cdf0e10cSrcweir class SfxModule;
48cdf0e10cSrcweir struct SfxDispatcher_Impl;
49cdf0e10cSrcweir struct SfxPlugInInfo_Impl;
50cdf0e10cSrcweir 
51cdf0e10cSrcweir namespace com
52cdf0e10cSrcweir {
53cdf0e10cSrcweir     namespace sun
54cdf0e10cSrcweir     {
55cdf0e10cSrcweir         namespace star
56cdf0e10cSrcweir         {
57cdf0e10cSrcweir             namespace frame
58cdf0e10cSrcweir             {
59cdf0e10cSrcweir                 class XDispatch;
60cdf0e10cSrcweir             }
61cdf0e10cSrcweir         }
62cdf0e10cSrcweir     }
63cdf0e10cSrcweir }
64cdf0e10cSrcweir 
65cdf0e10cSrcweir //=========================================================================
66cdf0e10cSrcweir 
67cdf0e10cSrcweir #define SFX_SHELL_POP_UNTIL 	4
68cdf0e10cSrcweir #define SFX_SHELL_POP_DELETE    2
69cdf0e10cSrcweir #define SFX_SHELL_PUSH			1
70cdf0e10cSrcweir 
71cdf0e10cSrcweir //=========================================================================
72cdf0e10cSrcweir 
73cdf0e10cSrcweir typedef SfxPoolItem* SfxPoolItemPtr;
74cdf0e10cSrcweir SV_DECL_PTRARR_DEL( SfxItemPtrArray, SfxPoolItemPtr, 4, 4 )
75cdf0e10cSrcweir 
76cdf0e10cSrcweir // fuer  shell.cxx
77cdf0e10cSrcweir typedef SfxItemPtrArray SfxItemArray_Impl;
78cdf0e10cSrcweir 
79cdf0e10cSrcweir class SfxExecuteItem : public SfxItemPtrArray, public SfxPoolItem
80cdf0e10cSrcweir {
81cdf0e10cSrcweir 	sal_uInt16 nSlot;
82cdf0e10cSrcweir 	SfxCallMode eCall;
83cdf0e10cSrcweir 	sal_uInt16 nModifier;
84cdf0e10cSrcweir public:
GetSlot() const85cdf0e10cSrcweir 	sal_uInt16                   GetSlot() const { return nSlot; }
GetModifier() const86cdf0e10cSrcweir 	sal_uInt16                   GetModifier() const { return nModifier; }
SetModifier(sal_uInt16 nModifierP)87cdf0e10cSrcweir 	void                     SetModifier( sal_uInt16 nModifierP ) { nModifier = nModifierP; }
GetCallMode() const88cdf0e10cSrcweir 	SfxCallMode              GetCallMode() const { return eCall; }
SetCallMode(SfxCallMode eMode)89cdf0e10cSrcweir 	void                     SetCallMode( SfxCallMode eMode ) { eCall = eMode; }
90cdf0e10cSrcweir 	virtual int 			 operator==( const SfxPoolItem& ) const;
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 	virtual SfxPoolItem*	 Clone( SfxItemPool *pPool = 0 ) const;
93cdf0e10cSrcweir 							 SfxExecuteItem(
94cdf0e10cSrcweir 								 sal_uInt16 nWhich, sal_uInt16 nSlot, SfxCallMode eMode,
95cdf0e10cSrcweir 								 const SfxPoolItem *pArg1, ... );
96cdf0e10cSrcweir 							 SfxExecuteItem(
97cdf0e10cSrcweir 								 sal_uInt16 nWhich, sal_uInt16 nSlot, SfxCallMode eMode );
98cdf0e10cSrcweir 							 SfxExecuteItem( const SfxExecuteItem& );
99cdf0e10cSrcweir };
100cdf0e10cSrcweir 
101cdf0e10cSrcweir //=========================================================================
102cdf0e10cSrcweir 
103cdf0e10cSrcweir class SFX2_DLLPUBLIC SfxDispatcher
104cdf0e10cSrcweir {
105cdf0e10cSrcweir 	SfxDispatcher_Impl* 			pImp;
106cdf0e10cSrcweir 	sal_Bool							bFlushed;
107cdf0e10cSrcweir 
108cdf0e10cSrcweir private:
109cdf0e10cSrcweir 	// auf temporaer ausgewerteten Todos suchen
110cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool CheckVirtualStack( const SfxShell& rShell, sal_Bool bDeep );
111cdf0e10cSrcweir 
112cdf0e10cSrcweir #ifndef _SFX_HXX
113cdf0e10cSrcweir 
114cdf0e10cSrcweir friend class SfxApplication;
115cdf0e10cSrcweir friend class SfxViewFrame;
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 	DECL_DLLPRIVATE_LINK( EventHdl_Impl, void * );
118cdf0e10cSrcweir 	DECL_DLLPRIVATE_LINK( PostMsgHandler, SfxRequest * );
119cdf0e10cSrcweir 
120cdf0e10cSrcweir 	SAL_DLLPRIVATE int Call_Impl( SfxShell& rShell, const SfxSlot &rSlot, SfxRequest &rReq, sal_Bool bRecord );
121cdf0e10cSrcweir 	SAL_DLLPRIVATE void _Update_Impl( sal_Bool,sal_Bool,sal_Bool,SfxWorkWindow*);
122cdf0e10cSrcweir 	SAL_DLLPRIVATE void CollectTools_Impl(SfxWorkWindow*);
123cdf0e10cSrcweir 
124cdf0e10cSrcweir protected:
125cdf0e10cSrcweir friend class SfxBindings;
126cdf0e10cSrcweir friend class SfxStateCache;
127cdf0e10cSrcweir friend class SfxPopupMenuManager;
128cdf0e10cSrcweir friend class SfxHelp;
129cdf0e10cSrcweir 						// Fuer die Bindings: Finden einer Message; Level fuer
130cdf0e10cSrcweir 						// erneuten Zugriff
131cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool _TryIntercept_Impl( sal_uInt16 nId, SfxSlotServer &rServer, sal_Bool bModal );
132cdf0e10cSrcweir 	sal_Bool				_FindServer( sal_uInt16 nId, SfxSlotServer &rServer, sal_Bool bModal );
133cdf0e10cSrcweir 	sal_Bool				_FillState( const SfxSlotServer &rServer,
134cdf0e10cSrcweir 									SfxItemSet &rState, const SfxSlot *pRealSlot );
135cdf0e10cSrcweir 	const SfxPoolItem*	_Execute( const SfxSlotServer &rServer );
136cdf0e10cSrcweir 	void				_Execute( SfxShell &rShell, const SfxSlot &rSlot,
137cdf0e10cSrcweir 								  SfxRequest &rReq,
138cdf0e10cSrcweir 								  SfxCallMode eCall = SFX_CALLMODE_STANDARD);
139cdf0e10cSrcweir 	const SfxPoolItem*	_Execute( sal_uInt16 nSlot, SfxCallMode eCall,
140cdf0e10cSrcweir 								  va_list pArgs, const SfxPoolItem *pArg1 );
141cdf0e10cSrcweir 
142cdf0e10cSrcweir #endif
143cdf0e10cSrcweir protected:
144cdf0e10cSrcweir 	void FlushImpl();
145cdf0e10cSrcweir 
146cdf0e10cSrcweir public:
147cdf0e10cSrcweir 						SfxDispatcher( SfxDispatcher* pParent );
148cdf0e10cSrcweir 						SfxDispatcher( SfxViewFrame *pFrame = 0 );
149cdf0e10cSrcweir 
150cdf0e10cSrcweir 	SAL_DLLPRIVATE void Construct_Impl( SfxDispatcher* pParent );
151cdf0e10cSrcweir 
152cdf0e10cSrcweir 	virtual				~SfxDispatcher();
153cdf0e10cSrcweir 
154cdf0e10cSrcweir 	const SfxPoolItem*  Execute( const SfxExecuteItem& rItem );
155cdf0e10cSrcweir 	virtual	sal_uInt16		ExecuteFunction( sal_uInt16 nSID, SfxPoolItem** ppArgs=0, sal_uInt16 nMode=0 );
156cdf0e10cSrcweir     sal_uInt16              ExecuteFunction( sal_uInt16 nSID, const SfxItemSet& rArgs , sal_uInt16 nMode=0 );
157cdf0e10cSrcweir 
158cdf0e10cSrcweir 	virtual void		SetExecuteMode( sal_uInt16 );
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	const SfxPoolItem*	Execute( sal_uInt16 nSlot,
161cdf0e10cSrcweir 								 SfxCallMode nCall = SFX_CALLMODE_SLOT,
162cdf0e10cSrcweir 								 const SfxPoolItem **pArgs = 0,
163cdf0e10cSrcweir 								 sal_uInt16 nModi = 0,
164cdf0e10cSrcweir 								 const SfxPoolItem **pInternalArgs = 0);
165cdf0e10cSrcweir 
166cdf0e10cSrcweir 	const SfxPoolItem*	Execute( sal_uInt16 nSlot,
167cdf0e10cSrcweir 								 SfxCallMode nCall,
168cdf0e10cSrcweir 								 SfxItemSet* pArgs,
169cdf0e10cSrcweir 								 SfxItemSet* pInternalArgs,
170cdf0e10cSrcweir 								 sal_uInt16 nModi = 0);
171cdf0e10cSrcweir 
172cdf0e10cSrcweir 	const SfxPoolItem*	Execute( sal_uInt16 nSlot,
173cdf0e10cSrcweir 								 SfxCallMode nCall,
174cdf0e10cSrcweir 								 const SfxPoolItem *pArg1, ... );
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 	const SfxPoolItem*	Execute( sal_uInt16 nSlot,
177cdf0e10cSrcweir 								 SfxCallMode nCall,
178cdf0e10cSrcweir 								 const SfxItemSet &rArgs );
179cdf0e10cSrcweir 
180cdf0e10cSrcweir     const SfxPoolItem*  Execute( sal_uInt16 nSlot,
181cdf0e10cSrcweir                                  SfxCallMode nCall,
182cdf0e10cSrcweir                                  sal_uInt16 nModi,
183cdf0e10cSrcweir                                  const SfxItemSet &rArgs );
184cdf0e10cSrcweir 
185cdf0e10cSrcweir 	sal_uInt16				GetSlotId( const String& rCommand );
186cdf0e10cSrcweir     const SfxSlot*      GetSlot( const String& rCommand );
187cdf0e10cSrcweir 
188cdf0e10cSrcweir 	sal_Bool				IsActive( const SfxShell& rShell );
189cdf0e10cSrcweir 	sal_Bool				IsOnTop( const SfxShell& rShell );
190cdf0e10cSrcweir 	sal_uInt16				GetShellLevel( const SfxShell &rShell );
191cdf0e10cSrcweir 	SfxBindings*		GetBindings() const;
192cdf0e10cSrcweir 
193cdf0e10cSrcweir 	void				Push( SfxShell& rShell );
194cdf0e10cSrcweir 	void				Pop( SfxShell& rShell, sal_uInt16 nMode = 0 );
195cdf0e10cSrcweir 
196cdf0e10cSrcweir 	SfxShell*			GetShell(sal_uInt16 nIdx) const;
197cdf0e10cSrcweir 	SfxViewFrame*       GetFrame() const;
198cdf0e10cSrcweir 	SfxModule*		GetModule() const;
199cdf0e10cSrcweir 	// caller has to clean up the Manager on his own
200cdf0e10cSrcweir 	static SfxPopupMenuManager* Popup( sal_uInt16 nConfigId,Window *pWin, const Point *pPos );
201cdf0e10cSrcweir 
202cdf0e10cSrcweir 	void				ExecutePopup( const ResId &rId,
203cdf0e10cSrcweir 							  Window *pWin = 0, const Point *pPosPixel = 0 );
204cdf0e10cSrcweir 	static void 		ExecutePopup( sal_uInt16 nConfigId = 0,
205cdf0e10cSrcweir 							  Window *pWin = 0, const Point *pPosPixel = 0 );
206cdf0e10cSrcweir 	static void 		ExecutePopup( sal_uInt16 nConfigId,
207cdf0e10cSrcweir 									  Window *pWin, const Point *pPosPixel,
208cdf0e10cSrcweir 									  const SfxPoolItem *pArg1, ...  );
209cdf0e10cSrcweir 
210cdf0e10cSrcweir 	sal_Bool			IsAppDispatcher() const;
211cdf0e10cSrcweir 	sal_Bool			IsFlushed() const;
212cdf0e10cSrcweir 	void				Flush();
213cdf0e10cSrcweir 	void				Lock( sal_Bool bLock );
214cdf0e10cSrcweir 	sal_Bool				IsLocked( sal_uInt16 nSID = 0 ) const;
215cdf0e10cSrcweir 	void				SetSlotFilter( sal_Bool bEnable = sal_False,
216cdf0e10cSrcweir 									   sal_uInt16 nCount = 0, const sal_uInt16 *pSIDs = 0 );
217cdf0e10cSrcweir 
218cdf0e10cSrcweir 	void				HideUI( sal_Bool bHide = sal_True );
219cdf0e10cSrcweir 	void				ShowObjectBar(sal_uInt16 nId, SfxShell *pShell=0) const;
220cdf0e10cSrcweir 	sal_uInt32			GetObjectBarId( sal_uInt16 nPos ) const;
221cdf0e10cSrcweir 
222cdf0e10cSrcweir 	SfxItemState		QueryState( sal_uInt16 nSID, const SfxPoolItem* &rpState );
223cdf0e10cSrcweir     SfxItemState        QueryState( sal_uInt16 nSID, ::com::sun::star::uno::Any& rAny );
224cdf0e10cSrcweir 
225cdf0e10cSrcweir 	sal_Bool                IsAllowed( sal_uInt16 nSlot ) const;
226cdf0e10cSrcweir     ::com::sun::star::frame::XDispatch*          GetDispatchInterface( const String& );
227cdf0e10cSrcweir 	void				SetDisableFlags( sal_uInt32 nFlags );
228cdf0e10cSrcweir 	sal_uInt32				GetDisableFlags() const;
229cdf0e10cSrcweir 
230cdf0e10cSrcweir //#if 0 // _SOLAR__PRIVATE
231cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool HasSlot_Impl( sal_uInt16 );
232cdf0e10cSrcweir 	SAL_DLLPRIVATE void SetMenu_Impl();
233cdf0e10cSrcweir 	SAL_DLLPRIVATE void Update_Impl( sal_Bool bForce = sal_False ); // ObjectBars etc.
234cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool IsUpdated_Impl() const;
235cdf0e10cSrcweir 	SAL_DLLPRIVATE void DebugOutput_Impl() const;
236cdf0e10cSrcweir 	SAL_DLLPRIVATE void ResetObjectBars_Impl();
237cdf0e10cSrcweir 	SAL_DLLPRIVATE int GetShellAndSlot_Impl( sal_uInt16 nSlot, SfxShell **ppShell, const SfxSlot **ppSlot,
238cdf0e10cSrcweir 											  sal_Bool bOwnShellsOnly, sal_Bool bModal, sal_Bool bRealSlot=sal_True );
239cdf0e10cSrcweir 	SAL_DLLPRIVATE void LockUI_Impl( sal_Bool bLock = sal_True );
240cdf0e10cSrcweir 	SAL_DLLPRIVATE void SetReadOnly_Impl( sal_Bool  bOn );
241cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool GetReadOnly_Impl() const;
242cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool IsSlotEnabledByFilter_Impl( sal_uInt16 nSID ) const;
243cdf0e10cSrcweir 	SAL_DLLPRIVATE void SetQuietMode_Impl( sal_Bool bOn );
244cdf0e10cSrcweir 	SAL_DLLPRIVATE void SetModalMode_Impl( sal_Bool bOn );
245cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_Bool IsReadOnlyShell_Impl( sal_uInt16 nShell ) const;
246cdf0e10cSrcweir 	SAL_DLLPRIVATE void RemoveShell_Impl( SfxShell& rShell );
247cdf0e10cSrcweir 	SAL_DLLPRIVATE void InsertShell_Impl( SfxShell& rShell, sal_uInt16 nPos );
248cdf0e10cSrcweir 	SAL_DLLPRIVATE void DoParentActivate_Impl();
249cdf0e10cSrcweir 	SAL_DLLPRIVATE void DoParentDeactivate_Impl();
250cdf0e10cSrcweir     SAL_DLLPRIVATE void DoActivate_Impl( sal_Bool bMDI, SfxViewFrame* pOld );
251cdf0e10cSrcweir     SAL_DLLPRIVATE void DoDeactivate_Impl( sal_Bool bMDI, SfxViewFrame* pNew );
252cdf0e10cSrcweir 	SAL_DLLPRIVATE void InvalidateBindings_Impl(sal_Bool);
253cdf0e10cSrcweir 	SAL_DLLPRIVATE sal_uInt16 GetNextToolBox_Impl( sal_uInt16 nPos, sal_uInt16 nType, String *pStr );
254cdf0e10cSrcweir //#endif
255cdf0e10cSrcweir };
256cdf0e10cSrcweir 
257cdf0e10cSrcweir //--------------------------------------------------------------------
258cdf0e10cSrcweir 
IsFlushed() const259cdf0e10cSrcweir inline sal_Bool SfxDispatcher::IsFlushed() const
260cdf0e10cSrcweir 
261cdf0e10cSrcweir /*	[Beschreibung]
262cdf0e10cSrcweir 
263cdf0e10cSrcweir 	Mit dieser Methode l"a"st sich erfragen, ob der Stack des
264cdf0e10cSrcweir 	SfxDispatchers geflusht ist, oder noch Push- oder Pop-Befehle
265cdf0e10cSrcweir 	ausstehen.
266cdf0e10cSrcweir */
267cdf0e10cSrcweir 
268cdf0e10cSrcweir {
269cdf0e10cSrcweir 	 return bFlushed;
270cdf0e10cSrcweir }
271cdf0e10cSrcweir 
272cdf0e10cSrcweir //--------------------------------------------------------------------
273cdf0e10cSrcweir 
Flush()274cdf0e10cSrcweir inline void SfxDispatcher::Flush()
275cdf0e10cSrcweir 
276cdf0e10cSrcweir /*  [Beschreibung]
277cdf0e10cSrcweir 
278cdf0e10cSrcweir 	Diese Methode f"uhrt ausstehenden Push- und Pop-Befehle aus.
279cdf0e10cSrcweir 	F"ur <SfxShell>s, die dabei neu auf den Stack kommen, wird
280cdf0e10cSrcweir 	<SfxShell::Activate(sal_Bool)> mit bMDI == sal_True aufgerufen, f"ur
281cdf0e10cSrcweir 	SfxShells, die vom Stack entfernt werden, wird <SfxShell::Deactivate(sal_Bool)>
282cdf0e10cSrcweir 	mit bMDI == sal_True aufgerufen.
283cdf0e10cSrcweir */
284cdf0e10cSrcweir 
285cdf0e10cSrcweir {
286cdf0e10cSrcweir 	if ( !bFlushed ) FlushImpl();
287cdf0e10cSrcweir }
288cdf0e10cSrcweir 
289cdf0e10cSrcweir //--------------------------------------------------------------------
290cdf0e10cSrcweir 
Push(SfxShell & rShell)291cdf0e10cSrcweir inline void SfxDispatcher::Push( SfxShell& rShell )
292cdf0e10cSrcweir 
293cdf0e10cSrcweir /*	[Beschreibung]
294cdf0e10cSrcweir 
295cdf0e10cSrcweir 	Mit dieser Methode wird eine <SfxShell> auf den SfxDispatcher
296cdf0e10cSrcweir 	gepusht. Die SfxShell wird zun"achst zum pushen vermerkt und
297cdf0e10cSrcweir 	es wird ein Timer aufgesetzt. Erst bei Ablauf des Timers wird
298cdf0e10cSrcweir 	tats"achlich gepusht (<SfxDispatcher::Flush()>) und die <SfxBindings>
299cdf0e10cSrcweir 	werden invalidiert. W"ahrend der Timer l"auft gleichen sich
300cdf0e10cSrcweir 	entgegengesetzte Push und Pop Befehle mit derselben SfxShell aus.
301cdf0e10cSrcweir */
302cdf0e10cSrcweir 
303cdf0e10cSrcweir {
304cdf0e10cSrcweir 	Pop( rShell, SFX_SHELL_PUSH );
305cdf0e10cSrcweir }
306cdf0e10cSrcweir 
307cdf0e10cSrcweir //--------------------------------------------------------------------
308cdf0e10cSrcweir 
IsActive(const SfxShell & rShell)309cdf0e10cSrcweir inline sal_Bool SfxDispatcher::IsActive( const SfxShell& rShell )
310cdf0e10cSrcweir 
311cdf0e10cSrcweir /*	[Beschreibung]
312cdf0e10cSrcweir 
313cdf0e10cSrcweir 	Mit dieser Methode kann abgefragt werden, ob sich eine bestimmte
314cdf0e10cSrcweir 	<SfxShell>-Instanz auf dem SfxDispatcher befindet.
315cdf0e10cSrcweir 
316cdf0e10cSrcweir 	[R"uckgabewert]
317cdf0e10cSrcweir 
318cdf0e10cSrcweir 	sal_Bool				sal_True
319cdf0e10cSrcweir 						Die SfxShell-Instanz befindet sich auf dem
320cdf0e10cSrcweir 						SfxDispatcher.
321cdf0e10cSrcweir 
322cdf0e10cSrcweir 						sal_False
323cdf0e10cSrcweir 						Die SfxShell-Instanz befindet sich nicht auf dem
324cdf0e10cSrcweir 						SfxDispatcher.
325cdf0e10cSrcweir 
326cdf0e10cSrcweir */
327cdf0e10cSrcweir 
328cdf0e10cSrcweir {
329cdf0e10cSrcweir 	return CheckVirtualStack( rShell, sal_True );
330cdf0e10cSrcweir }
331cdf0e10cSrcweir //--------------------------------------------------------------------
332cdf0e10cSrcweir 
IsOnTop(const SfxShell & rShell)333cdf0e10cSrcweir inline sal_Bool SfxDispatcher::IsOnTop( const SfxShell& rShell )
334cdf0e10cSrcweir 
335cdf0e10cSrcweir /*  [Beschreibung]
336cdf0e10cSrcweir 
337cdf0e10cSrcweir 	Mit dieser Methode kann abgefragt werden, ob sich eine bestimmte
338cdf0e10cSrcweir 	<SfxShell>-Instanz zuoberst auf dem SfxDispatcher befindet.
339cdf0e10cSrcweir 
340cdf0e10cSrcweir 	[R"uckgabewert]
341cdf0e10cSrcweir 
342cdf0e10cSrcweir 	sal_Bool				sal_True
343cdf0e10cSrcweir 						Die SfxShell-Instanz befindet sich als oberste
344cdf0e10cSrcweir 						SfxShell auf dem SfxDispatcher.
345cdf0e10cSrcweir 
346cdf0e10cSrcweir 						sal_False
347cdf0e10cSrcweir 						Die SfxShell-Instanz befindet sich nicht als
348cdf0e10cSrcweir 						oberste SfxShell auf dem SfxDispatcher.
349cdf0e10cSrcweir 
350cdf0e10cSrcweir */
351cdf0e10cSrcweir 
352cdf0e10cSrcweir {
353cdf0e10cSrcweir 	return CheckVirtualStack( rShell, sal_False );
354cdf0e10cSrcweir }
355cdf0e10cSrcweir 
356cdf0e10cSrcweir //--------------------------------------------------------------------
357cdf0e10cSrcweir 
358cdf0e10cSrcweir #endif
359cdf0e10cSrcweir 
360