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 _SFXWORKWIN_HXX 24cdf0e10cSrcweir #define _SFXWORKWIN_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <vector> 27cdf0e10cSrcweir #include <deque> 28cdf0e10cSrcweir #include <com/sun/star/frame/XDispatch.hpp> 29cdf0e10cSrcweir #include <com/sun/star/frame/XFrame.hpp> 30cdf0e10cSrcweir #ifndef _COM_SUN_STAR_UI_XUILEMENT_HPP_ 31cdf0e10cSrcweir #include <com/sun/star/ui/XUIElement.hpp> 32cdf0e10cSrcweir #endif 33cdf0e10cSrcweir #include <com/sun/star/task/XStatusIndicator.hpp> 34cdf0e10cSrcweir #include <com/sun/star/frame/XLayoutManagerListener.hpp> 35cdf0e10cSrcweir #include <cppuhelper/weak.hxx> 36cdf0e10cSrcweir #include <cppuhelper/propshlp.hxx> 37cdf0e10cSrcweir 38cdf0e10cSrcweir #define _SVSTDARR_USHORTS 39cdf0e10cSrcweir #include <svl/svstdarr.hxx> // SvUShorts 40cdf0e10cSrcweir #include <rtl/ustring.hxx> 41cdf0e10cSrcweir #include <vos/mutex.hxx> 42cdf0e10cSrcweir 43cdf0e10cSrcweir #include <sfx2/sfx.hrc> 44cdf0e10cSrcweir #include <sfx2/childwin.hxx> 45cdf0e10cSrcweir #include <sfx2/shell.hxx> 46cdf0e10cSrcweir #include <sfx2/minarray.hxx> 47cdf0e10cSrcweir #include <sfx2/ctrlitem.hxx> 48cdf0e10cSrcweir #include <sfx2/viewfrm.hxx> 49cdf0e10cSrcweir 50cdf0e10cSrcweir class SfxInPlaceEnv_Impl; 51cdf0e10cSrcweir class SfxPlugInEnv_Impl; 52cdf0e10cSrcweir class SfxSplitWindow; 53cdf0e10cSrcweir class SfxWorkWindow; 54cdf0e10cSrcweir 55cdf0e10cSrcweir //==================================================================== 56cdf0e10cSrcweir // Dieser struct h"alt alle relevanten Informationen "uber Toolboxen bereit. 57cdf0e10cSrcweir 58cdf0e10cSrcweir struct SfxObjectBar_Impl 59cdf0e10cSrcweir { 60cdf0e10cSrcweir sal_uInt16 nId; // Resource - und ConfigId der Toolbox 61cdf0e10cSrcweir sal_uInt16 nMode; // spezielle Sichtbarkeitsflags 62cdf0e10cSrcweir sal_uInt16 nPos; 63cdf0e10cSrcweir sal_uInt16 nIndex; 64cdf0e10cSrcweir sal_Bool bDestroy; 65cdf0e10cSrcweir String aName; 66cdf0e10cSrcweir SfxInterface* pIFace; 67cdf0e10cSrcweir SfxObjectBar_ImplSfxObjectBar_Impl68cdf0e10cSrcweir SfxObjectBar_Impl() : 69cdf0e10cSrcweir nId(0), 70cdf0e10cSrcweir nMode(0), 71cdf0e10cSrcweir bDestroy(sal_False), 72cdf0e10cSrcweir pIFace(0) 73cdf0e10cSrcweir {} 74cdf0e10cSrcweir }; 75cdf0e10cSrcweir 76cdf0e10cSrcweir //------------------------------------------------------------------------------ 77cdf0e10cSrcweir // Dieser struct h"alt alle relevanten Informationen "uber die Statuszeile bereit. 78cdf0e10cSrcweir struct SfxStatBar_Impl 79cdf0e10cSrcweir { 80cdf0e10cSrcweir sal_uInt16 nId; 81cdf0e10cSrcweir sal_Bool bOn; 82cdf0e10cSrcweir sal_Bool bTemp; 83cdf0e10cSrcweir SfxStatBar_ImplSfxStatBar_Impl84cdf0e10cSrcweir SfxStatBar_Impl() : 85cdf0e10cSrcweir nId(0), 86cdf0e10cSrcweir bOn(sal_True), 87cdf0e10cSrcweir bTemp(sal_False) 88cdf0e10cSrcweir {} 89cdf0e10cSrcweir }; 90cdf0e10cSrcweir 91cdf0e10cSrcweir //------------------------------------------------------------------------------ 92cdf0e10cSrcweir 93cdf0e10cSrcweir #define CHILD_NOT_VISIBLE 0 94cdf0e10cSrcweir #define CHILD_ACTIVE 1 // nicht durch HidePopups ausgeschaltet 95cdf0e10cSrcweir #define CHILD_NOT_HIDDEN 2 // nicht durch HideChildWindow ausgeschaltet 96cdf0e10cSrcweir #define CHILD_FITS_IN 4 // nicht zu gro\s f"ur OutputSize des parent 97cdf0e10cSrcweir #define CHILD_VISIBLE (CHILD_NOT_HIDDEN | CHILD_ACTIVE | CHILD_FITS_IN) 98cdf0e10cSrcweir #define CHILD_ISVISIBLE (CHILD_NOT_HIDDEN | CHILD_ACTIVE) 99cdf0e10cSrcweir 100cdf0e10cSrcweir struct SfxChild_Impl 101cdf0e10cSrcweir { 102cdf0e10cSrcweir Window* pWin; 103cdf0e10cSrcweir Size aSize; 104cdf0e10cSrcweir SfxChildAlignment eAlign; 105cdf0e10cSrcweir sal_uInt16 nVisible; 106cdf0e10cSrcweir sal_Bool bResize; 107cdf0e10cSrcweir sal_Bool bCanGetFocus; 108cdf0e10cSrcweir sal_Bool bSetFocus; 109cdf0e10cSrcweir SfxChild_ImplSfxChild_Impl110cdf0e10cSrcweir SfxChild_Impl( Window& rChild, const Size& rSize, 111cdf0e10cSrcweir SfxChildAlignment eAlignment, sal_Bool bIsVisible ): 112cdf0e10cSrcweir pWin(&rChild), aSize(rSize), eAlign(eAlignment), bResize(sal_False), 113cdf0e10cSrcweir bCanGetFocus( sal_False ), bSetFocus( sal_False ) 114cdf0e10cSrcweir { 115cdf0e10cSrcweir nVisible = bIsVisible ? CHILD_VISIBLE : CHILD_NOT_VISIBLE; 116cdf0e10cSrcweir } 117cdf0e10cSrcweir }; 118cdf0e10cSrcweir 119cdf0e10cSrcweir //-------------------------------------------------------------------- 120cdf0e10cSrcweir class SfxChildWinController_Impl : public SfxControllerItem 121cdf0e10cSrcweir { 122cdf0e10cSrcweir SfxWorkWindow* pWorkwin; 123cdf0e10cSrcweir 124cdf0e10cSrcweir public: 125cdf0e10cSrcweir SfxChildWinController_Impl( sal_uInt16 nId, SfxWorkWindow *pWin ); 126cdf0e10cSrcweir virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState, 127cdf0e10cSrcweir const SfxPoolItem* pState ); 128cdf0e10cSrcweir }; 129cdf0e10cSrcweir 130cdf0e10cSrcweir struct SfxChildWin_Impl 131cdf0e10cSrcweir { 132cdf0e10cSrcweir sal_uInt16 nSaveId; // die ChildWindow-Id 133cdf0e10cSrcweir sal_uInt16 nInterfaceId; // der aktuelle Context 134cdf0e10cSrcweir sal_uInt16 nId; // aktuelle Id 135cdf0e10cSrcweir SfxChildWindow* pWin; 136cdf0e10cSrcweir sal_Bool bCreate; 137cdf0e10cSrcweir SfxChildWinInfo aInfo; 138cdf0e10cSrcweir SfxChild_Impl* pCli; // != 0 bei direkten Children 139cdf0e10cSrcweir sal_uInt16 nVisibility; 140cdf0e10cSrcweir sal_Bool bEnable; 141cdf0e10cSrcweir sal_Bool bDisabled; 142cdf0e10cSrcweir SfxChildWin_ImplSfxChildWin_Impl143cdf0e10cSrcweir SfxChildWin_Impl( sal_uInt32 nID ) : 144cdf0e10cSrcweir nSaveId((sal_uInt16) (nID & 0xFFFF) ), 145cdf0e10cSrcweir nInterfaceId((sal_uInt16) (nID >> 16)), 146cdf0e10cSrcweir nId(nSaveId), 147cdf0e10cSrcweir pWin(0), 148cdf0e10cSrcweir bCreate(sal_False), 149cdf0e10cSrcweir pCli(0), 150cdf0e10cSrcweir nVisibility( sal_False ), 151cdf0e10cSrcweir bEnable( sal_True ), 152cdf0e10cSrcweir bDisabled( sal_False ) 153cdf0e10cSrcweir {} 154cdf0e10cSrcweir }; 155cdf0e10cSrcweir 156cdf0e10cSrcweir enum SfxChildIdentifier 157cdf0e10cSrcweir { 158cdf0e10cSrcweir SFX_CHILDWIN_STATBAR, 159cdf0e10cSrcweir SFX_CHILDWIN_OBJECTBAR, 160cdf0e10cSrcweir SFX_CHILDWIN_DOCKINGWINDOW, 161cdf0e10cSrcweir SFX_CHILDWIN_SPLITWINDOW 162cdf0e10cSrcweir }; 163cdf0e10cSrcweir 164cdf0e10cSrcweir enum SfxDockingConfig 165cdf0e10cSrcweir { 166cdf0e10cSrcweir SFX_SETDOCKINGRECTS, 167cdf0e10cSrcweir SFX_ALIGNDOCKINGWINDOW, 168cdf0e10cSrcweir SFX_TOGGLEFLOATMODE, 169cdf0e10cSrcweir SFX_MOVEDOCKINGWINDOW 170cdf0e10cSrcweir }; 171cdf0e10cSrcweir 172cdf0e10cSrcweir DECL_PTRARRAY( SfxChildList_Impl, SfxChild_Impl*, 2, 2 ) 173cdf0e10cSrcweir DECL_PTRARRAY( SfxChildWindows_Impl, SfxChildWin_Impl*, 2, 2 ) 174cdf0e10cSrcweir 175cdf0e10cSrcweir 176cdf0e10cSrcweir struct SfxObjectBarList_Impl 177cdf0e10cSrcweir { 178cdf0e10cSrcweir std::deque<SfxObjectBar_Impl> aArr; 179cdf0e10cSrcweir sal_uInt16 nAct; 180cdf0e10cSrcweir operator []SfxObjectBarList_Impl181cdf0e10cSrcweir SfxObjectBar_Impl operator[] ( sal_uInt16 n ) 182cdf0e10cSrcweir { return aArr[n]; } ActualSfxObjectBarList_Impl183cdf0e10cSrcweir SfxObjectBar_Impl Actual() 184cdf0e10cSrcweir { return aArr[nAct]; } 185cdf0e10cSrcweir }; 186cdf0e10cSrcweir 187cdf0e10cSrcweir struct SfxSplitWin_Impl 188cdf0e10cSrcweir { 189cdf0e10cSrcweir SfxSplitWindow* pSplitWin; 190cdf0e10cSrcweir SfxChildWindows_Impl* pChildWins; 191cdf0e10cSrcweir }; 192cdf0e10cSrcweir 193cdf0e10cSrcweir #define SFX_SPLITWINDOWS_LEFT 0 194cdf0e10cSrcweir #define SFX_SPLITWINDOWS_TOP 2 195cdf0e10cSrcweir #define SFX_SPLITWINDOWS_RIGHT 1 196cdf0e10cSrcweir #define SFX_SPLITWINDOWS_BOTTOM 3 197cdf0e10cSrcweir #define SFX_SPLITWINDOWS_MAX 4 198cdf0e10cSrcweir 199cdf0e10cSrcweir //-------------------------------------------------------------------- 200cdf0e10cSrcweir 201cdf0e10cSrcweir class LayoutManagerListener : public ::com::sun::star::frame::XLayoutManagerListener, 202cdf0e10cSrcweir public ::com::sun::star::lang::XTypeProvider, 203cdf0e10cSrcweir public ::com::sun::star::lang::XComponent, 204cdf0e10cSrcweir public ::cppu::OWeakObject 205cdf0e10cSrcweir { 206cdf0e10cSrcweir public: 207cdf0e10cSrcweir LayoutManagerListener( SfxWorkWindow* pWrkWin ); 208cdf0e10cSrcweir virtual ~LayoutManagerListener(); 209cdf0e10cSrcweir 210cdf0e10cSrcweir SFX_DECL_XINTERFACE_XTYPEPROVIDER 211cdf0e10cSrcweir 212cdf0e10cSrcweir void setFrame( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame ); 213cdf0e10cSrcweir 214cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 215cdf0e10cSrcweir // XComponent 216cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 217cdf0e10cSrcweir virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 218cdf0e10cSrcweir virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); 219cdf0e10cSrcweir virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException ); 220cdf0e10cSrcweir 221cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 222cdf0e10cSrcweir // XEventListener 223cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 224cdf0e10cSrcweir virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw( ::com::sun::star::uno::RuntimeException ); 225cdf0e10cSrcweir 226cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 227cdf0e10cSrcweir // XLayoutManagerEventListener 228cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 229cdf0e10cSrcweir virtual void SAL_CALL layoutEvent( const ::com::sun::star::lang::EventObject& aSource, ::sal_Int16 eLayoutEvent, const ::com::sun::star::uno::Any& aInfo ) throw (::com::sun::star::uno::RuntimeException); 230cdf0e10cSrcweir 231cdf0e10cSrcweir private: 232cdf0e10cSrcweir sal_Bool m_bHasFrame; 233cdf0e10cSrcweir SfxWorkWindow* m_pWrkWin; 234cdf0e10cSrcweir ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XFrame > m_xFrame; 235cdf0e10cSrcweir rtl::OUString m_aLayoutManagerPropName; 236cdf0e10cSrcweir }; 237cdf0e10cSrcweir 238cdf0e10cSrcweir class SfxWorkWindow 239cdf0e10cSrcweir { 240cdf0e10cSrcweir friend class UIElementWrapper; 241cdf0e10cSrcweir friend class LayoutManagerListener; 242cdf0e10cSrcweir 243cdf0e10cSrcweir protected: 244cdf0e10cSrcweir SvUShorts aSortedList; 245cdf0e10cSrcweir SfxStatBar_Impl aStatBar; 246cdf0e10cSrcweir std::vector< SfxObjectBar_Impl > aObjBarList; 247cdf0e10cSrcweir Rectangle aClientArea; 248cdf0e10cSrcweir Rectangle aUpperClientArea; 249cdf0e10cSrcweir SfxWorkWindow* pParent; 250cdf0e10cSrcweir SfxSplitWindow* pSplit[SFX_SPLITWINDOWS_MAX]; 251cdf0e10cSrcweir SfxChildList_Impl* pChilds; 252cdf0e10cSrcweir SfxChildWindows_Impl* pChildWins; 253cdf0e10cSrcweir SfxBindings* pBindings; 254cdf0e10cSrcweir Window* pWorkWin; 255cdf0e10cSrcweir SfxShell* pConfigShell; 256cdf0e10cSrcweir Window* pActiveChild; 257cdf0e10cSrcweir sal_uInt16 nUpdateMode; 258cdf0e10cSrcweir sal_uInt16 nChilds; 259cdf0e10cSrcweir sal_uInt16 nOrigMode; 260cdf0e10cSrcweir sal_Bool bSorted : 1; 261cdf0e10cSrcweir sal_Bool bDockingAllowed : 1; 262cdf0e10cSrcweir sal_Bool bInternalDockingAllowed : 1; 263cdf0e10cSrcweir sal_Bool bAllChildsVisible : 1; 264cdf0e10cSrcweir sal_Bool bIsFullScreen : 1; 265cdf0e10cSrcweir sal_Bool bShowStatusBar : 1; 266cdf0e10cSrcweir sal_Int32 m_nLock; 267cdf0e10cSrcweir rtl::OUString m_aStatusBarResName; 268cdf0e10cSrcweir rtl::OUString m_aLayoutManagerPropName; 269cdf0e10cSrcweir rtl::OUString m_aTbxTypeName; 270cdf0e10cSrcweir rtl::OUString m_aProgressBarResName; 271cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xLayoutManagerListener; 272cdf0e10cSrcweir 273cdf0e10cSrcweir protected: 274cdf0e10cSrcweir void CreateChildWin_Impl(SfxChildWin_Impl*,sal_Bool); 275cdf0e10cSrcweir void RemoveChildWin_Impl(SfxChildWin_Impl*); 276cdf0e10cSrcweir void Sort_Impl(); 277cdf0e10cSrcweir void AlignChild_Impl( Window& rWindow, const Size& rNewSize, 278cdf0e10cSrcweir SfxChildAlignment eAlign ); 279cdf0e10cSrcweir SfxChild_Impl* FindChild_Impl( const Window& rWindow ) const; 280cdf0e10cSrcweir virtual sal_Bool RequestTopToolSpacePixel_Impl( SvBorder aBorder ); 281cdf0e10cSrcweir virtual Rectangle GetTopRect_Impl(); 282cdf0e10cSrcweir SvBorder Arrange_Impl(); 283cdf0e10cSrcweir virtual void SaveStatus_Impl(SfxChildWindow*, const SfxChildWinInfo&); 284cdf0e10cSrcweir static sal_Bool IsPluginMode( SfxObjectShell* pObjShell ); 285cdf0e10cSrcweir 286cdf0e10cSrcweir public: 287cdf0e10cSrcweir SfxWorkWindow( Window *pWin, SfxBindings& rBindings, SfxWorkWindow* pParent = NULL); 288cdf0e10cSrcweir virtual ~SfxWorkWindow(); 289cdf0e10cSrcweir SystemWindow* GetTopWindow() const; GetBindings()290cdf0e10cSrcweir SfxBindings& GetBindings() 291cdf0e10cSrcweir { return *pBindings; } GetWindow() const292cdf0e10cSrcweir Window* GetWindow() const 293cdf0e10cSrcweir { return pWorkWin; } 294cdf0e10cSrcweir Rectangle GetFreeArea( sal_Bool bAutoHide ) const; SetDockingAllowed(sal_Bool bSet)295cdf0e10cSrcweir void SetDockingAllowed(sal_Bool bSet) 296cdf0e10cSrcweir { bDockingAllowed = bSet; } SetInternalDockingAllowed(sal_Bool bSet)297cdf0e10cSrcweir void SetInternalDockingAllowed(sal_Bool bSet) 298cdf0e10cSrcweir { bInternalDockingAllowed = bSet; } IsDockingAllowed() const299cdf0e10cSrcweir sal_Bool IsDockingAllowed() const 300cdf0e10cSrcweir { return bDockingAllowed; } IsInternalDockingAllowed() const301cdf0e10cSrcweir sal_Bool IsInternalDockingAllowed() const 302cdf0e10cSrcweir { return bInternalDockingAllowed; } GetParent_Impl() const303cdf0e10cSrcweir SfxWorkWindow* GetParent_Impl() const 304cdf0e10cSrcweir { return pParent; } 305cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > CreateDispatch( const String& ); 306cdf0e10cSrcweir 307cdf0e10cSrcweir // Methoden f"ur alle Child-Fenster 308cdf0e10cSrcweir void DataChanged_Impl( const DataChangedEvent& rDCEvt ); 309cdf0e10cSrcweir void ReleaseChild_Impl( Window& rWindow ); 310cdf0e10cSrcweir SfxChild_Impl* RegisterChild_Impl( Window& rWindow, SfxChildAlignment eAlign, sal_Bool bCanGetFocus=sal_False ); 311cdf0e10cSrcweir void ShowChilds_Impl(); 312cdf0e10cSrcweir void HideChilds_Impl(); 313cdf0e10cSrcweir void Close_Impl(); 314cdf0e10cSrcweir sal_Bool PrepareClose_Impl(); 315cdf0e10cSrcweir virtual void ArrangeChilds_Impl( sal_Bool bForce = sal_True ); 316cdf0e10cSrcweir void DeleteControllers_Impl(); 317cdf0e10cSrcweir void SaveStatus_Impl(); 318cdf0e10cSrcweir void HidePopups_Impl(sal_Bool bHide, sal_Bool bParent=sal_False, sal_uInt16 nId=0); 319cdf0e10cSrcweir void ConfigChild_Impl(SfxChildIdentifier, 320cdf0e10cSrcweir SfxDockingConfig, sal_uInt16); 321cdf0e10cSrcweir void MakeChildsVisible_Impl( sal_Bool bVis ); 322cdf0e10cSrcweir void ArrangeAutoHideWindows( SfxSplitWindow *pSplit ); 323cdf0e10cSrcweir sal_Bool IsAutoHideMode( const SfxSplitWindow *pSplit ); 324cdf0e10cSrcweir void EndAutoShow_Impl( Point aPos ); SetFullScreen_Impl(sal_Bool bSet)325cdf0e10cSrcweir void SetFullScreen_Impl( sal_Bool bSet ) { bIsFullScreen = bSet; } IsFullScreen_Impl() const326cdf0e10cSrcweir sal_Bool IsFullScreen_Impl() const { return bIsFullScreen; } 327cdf0e10cSrcweir 328cdf0e10cSrcweir // Methoden f"ur Objectbars 329cdf0e10cSrcweir virtual void UpdateObjectBars_Impl(); 330cdf0e10cSrcweir void ResetObjectBars_Impl(); 331cdf0e10cSrcweir void SetObjectBar_Impl( sal_uInt16 nPos, sal_uInt32 nResId, 332cdf0e10cSrcweir SfxInterface *pIFace, const String* pName=0 ); 333cdf0e10cSrcweir Window* GetObjectBar_Impl( sal_uInt16 nPos, sal_uInt32 nResId ); 334cdf0e10cSrcweir bool KnowsObjectBar_Impl( sal_uInt16 nPos ) const; 335cdf0e10cSrcweir sal_Bool IsVisible_Impl(); 336cdf0e10cSrcweir void MakeVisible_Impl( sal_Bool ); 337cdf0e10cSrcweir void SetObjectBarVisibility_Impl( sal_uInt16 nVis ); 338cdf0e10cSrcweir sal_Bool IsContainer_Impl() const; 339cdf0e10cSrcweir void Lock_Impl( sal_Bool ); 340cdf0e10cSrcweir void NextObjectBar_Impl( sal_uInt16 nPos ); 341cdf0e10cSrcweir sal_uInt16 HasNextObjectBar_Impl( sal_uInt16 nPos, String* pStr=0 ); 342cdf0e10cSrcweir void SetObjectBarCustomizeMode_Impl( sal_Bool ); 343cdf0e10cSrcweir 344cdf0e10cSrcweir // Methoden f"ur ChildWindows 345cdf0e10cSrcweir void UpdateChildWindows_Impl(); 346cdf0e10cSrcweir void ResetChildWindows_Impl(); 347cdf0e10cSrcweir void SetChildWindowVisible_Impl( sal_uInt32, sal_Bool, sal_uInt16 ); 348cdf0e10cSrcweir void ToggleChildWindow_Impl(sal_uInt16,sal_Bool); 349cdf0e10cSrcweir sal_Bool HasChildWindow_Impl(sal_uInt16); 350cdf0e10cSrcweir sal_Bool KnowsChildWindow_Impl(sal_uInt16); 351cdf0e10cSrcweir void ShowChildWindow_Impl(sal_uInt16, sal_Bool bVisible, sal_Bool bSetFocus); 352cdf0e10cSrcweir void SetChildWindow_Impl(sal_uInt16, sal_Bool bOn, sal_Bool bSetFocus); 353cdf0e10cSrcweir SfxChildWindow* GetChildWindow_Impl(sal_uInt16); 354cdf0e10cSrcweir virtual void InitializeChild_Impl(SfxChildWin_Impl*); 355cdf0e10cSrcweir SfxSplitWindow* GetSplitWindow_Impl(SfxChildAlignment); 356cdf0e10cSrcweir 357cdf0e10cSrcweir sal_Bool IsVisible_Impl( sal_uInt16 nMode ) const; 358cdf0e10cSrcweir void DisableChildWindow_Impl( sal_uInt16 nId, sal_Bool bDisable ); 359cdf0e10cSrcweir sal_Bool IsFloating( sal_uInt16 nId ); 360cdf0e10cSrcweir void ChangeWindow_Impl( Window *pNew ); 361cdf0e10cSrcweir void SetActiveChild_Impl( Window *pChild ); 362cdf0e10cSrcweir Window* GetActiveChild_Impl(); 363cdf0e10cSrcweir virtual sal_Bool ActivateNextChild_Impl( sal_Bool bForward = sal_True ); 364cdf0e10cSrcweir bool AllowChildWindowCreation_Impl( const SfxChildWin_Impl& i_rCW ) const; 365cdf0e10cSrcweir 366cdf0e10cSrcweir // Methoden f"ur StatusBar 367cdf0e10cSrcweir void SetTempStatusBar_Impl( sal_Bool bSet ); 368cdf0e10cSrcweir void ResetStatusBar_Impl(); 369cdf0e10cSrcweir void SetStatusBar_Impl(sal_uInt32 nResId, SfxShell *pShell, SfxBindings& ); 370cdf0e10cSrcweir void UpdateStatusBar_Impl(); 371cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > GetStatusIndicator(); 372cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > GetFrameInterface(); 373cdf0e10cSrcweir }; 374cdf0e10cSrcweir 375cdf0e10cSrcweir class SfxFrameWorkWin_Impl : public SfxWorkWindow 376cdf0e10cSrcweir { 377cdf0e10cSrcweir SfxFrame* pMasterFrame; 378cdf0e10cSrcweir SfxFrame* pFrame; 379cdf0e10cSrcweir public: 380cdf0e10cSrcweir SfxFrameWorkWin_Impl( Window* pWin, SfxFrame* pFrm, SfxFrame* pMaster ); 381cdf0e10cSrcweir virtual void ArrangeChilds_Impl( sal_Bool bForce = sal_True ); 382cdf0e10cSrcweir virtual void UpdateObjectBars_Impl(); 383cdf0e10cSrcweir virtual Rectangle GetTopRect_Impl(); 384cdf0e10cSrcweir }; 385cdf0e10cSrcweir 386cdf0e10cSrcweir 387cdf0e10cSrcweir #endif 388