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