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