1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir #ifndef _SV_BRDWIN_HXX 29*cdf0e10cSrcweir #define _SV_BRDWIN_HXX 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #include <vcl/sv.h> 32*cdf0e10cSrcweir #include <vcl/window.hxx> 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir class ImplBorderWindowView; 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir // -------------------------- 37*cdf0e10cSrcweir // - ImplBorderWindow-Types - 38*cdf0e10cSrcweir // -------------------------- 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir #define BORDERWINDOW_STYLE_OVERLAP ((sal_uInt16)0x0001) 41*cdf0e10cSrcweir #define BORDERWINDOW_STYLE_BORDER ((sal_uInt16)0x0002) 42*cdf0e10cSrcweir #define BORDERWINDOW_STYLE_FLOAT ((sal_uInt16)0x0004) 43*cdf0e10cSrcweir #define BORDERWINDOW_STYLE_FRAME ((sal_uInt16)0x0008) 44*cdf0e10cSrcweir #define BORDERWINDOW_STYLE_APP ((sal_uInt16)0x0010) 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_TITLE ((sal_uInt16)0x0001) 47*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_LEFT ((sal_uInt16)0x0002) 48*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_MENU ((sal_uInt16)0x0004) 49*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_TOP ((sal_uInt16)0x0008) 50*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_RIGHT ((sal_uInt16)0x0010) 51*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_BOTTOM ((sal_uInt16)0x0020) 52*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_TOPLEFT ((sal_uInt16)0x0040) 53*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_TOPRIGHT ((sal_uInt16)0x0080) 54*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_BOTTOMLEFT ((sal_uInt16)0x0100) 55*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_BOTTOMRIGHT ((sal_uInt16)0x0200) 56*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_CLOSE ((sal_uInt16)0x0400) 57*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_ROLL ((sal_uInt16)0x0800) 58*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_DOCK ((sal_uInt16)0x1000) 59*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_HIDE ((sal_uInt16)0x2000) 60*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_HELP ((sal_uInt16)0x4000) 61*cdf0e10cSrcweir #define BORDERWINDOW_HITTEST_PIN ((sal_uInt16)0x8000) 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_TITLE ((sal_uInt16)0x0001) 64*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_BORDER ((sal_uInt16)0x0002) 65*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_FRAME ((sal_uInt16)0x0004) 66*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_CLOSE ((sal_uInt16)0x0008) 67*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_ROLL ((sal_uInt16)0x0010) 68*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_DOCK ((sal_uInt16)0x0020) 69*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_HIDE ((sal_uInt16)0x0040) 70*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_HELP ((sal_uInt16)0x0080) 71*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_PIN ((sal_uInt16)0x0100) 72*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_MENU ((sal_uInt16)0x0200) 73*cdf0e10cSrcweir #define BORDERWINDOW_DRAW_ALL (BORDERWINDOW_DRAW_TITLE | \ 74*cdf0e10cSrcweir BORDERWINDOW_DRAW_BORDER | \ 75*cdf0e10cSrcweir BORDERWINDOW_DRAW_FRAME | \ 76*cdf0e10cSrcweir BORDERWINDOW_DRAW_CLOSE | \ 77*cdf0e10cSrcweir BORDERWINDOW_DRAW_ROLL | \ 78*cdf0e10cSrcweir BORDERWINDOW_DRAW_DOCK | \ 79*cdf0e10cSrcweir BORDERWINDOW_DRAW_HIDE | \ 80*cdf0e10cSrcweir BORDERWINDOW_DRAW_HELP | \ 81*cdf0e10cSrcweir BORDERWINDOW_DRAW_PIN | \ 82*cdf0e10cSrcweir BORDERWINDOW_DRAW_MENU) 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir #define BORDERWINDOW_TITLE_NORMAL ((sal_uInt16)0x0001) 85*cdf0e10cSrcweir #define BORDERWINDOW_TITLE_SMALL ((sal_uInt16)0x0002) 86*cdf0e10cSrcweir #define BORDERWINDOW_TITLE_TEAROFF ((sal_uInt16)0x0004) 87*cdf0e10cSrcweir #define BORDERWINDOW_TITLE_NONE ((sal_uInt16)0x0008) 88*cdf0e10cSrcweir 89*cdf0e10cSrcweir // -------------------- 90*cdf0e10cSrcweir // - ImplBorderWindow - 91*cdf0e10cSrcweir // -------------------- 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir class ImplBorderWindow : public Window 94*cdf0e10cSrcweir { 95*cdf0e10cSrcweir friend class Window; 96*cdf0e10cSrcweir friend class ImplBorderWindowView; 97*cdf0e10cSrcweir friend class ImplSmallBorderWindowView; 98*cdf0e10cSrcweir friend class ImplStdBorderWindowView; 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir private: 101*cdf0e10cSrcweir ImplBorderWindowView* mpBorderView; 102*cdf0e10cSrcweir Window* mpMenuBarWindow; 103*cdf0e10cSrcweir long mnMinWidth; 104*cdf0e10cSrcweir long mnMinHeight; 105*cdf0e10cSrcweir long mnMaxWidth; 106*cdf0e10cSrcweir long mnMaxHeight; 107*cdf0e10cSrcweir long mnRollHeight; 108*cdf0e10cSrcweir long mnOrgMenuHeight; 109*cdf0e10cSrcweir sal_uInt16 mnTitleType; 110*cdf0e10cSrcweir sal_uInt16 mnBorderStyle; 111*cdf0e10cSrcweir sal_Bool mbFloatWindow; 112*cdf0e10cSrcweir sal_Bool mbSmallOutBorder; 113*cdf0e10cSrcweir sal_Bool mbFrameBorder; 114*cdf0e10cSrcweir sal_Bool mbPined; 115*cdf0e10cSrcweir sal_Bool mbRollUp; 116*cdf0e10cSrcweir sal_Bool mbMenuHide; 117*cdf0e10cSrcweir sal_Bool mbDockBtn; 118*cdf0e10cSrcweir sal_Bool mbHideBtn; 119*cdf0e10cSrcweir sal_Bool mbHelpBtn; 120*cdf0e10cSrcweir sal_Bool mbMenuBtn; 121*cdf0e10cSrcweir sal_Bool mbDisplayActive; 122*cdf0e10cSrcweir 123*cdf0e10cSrcweir using Window::ImplInit; 124*cdf0e10cSrcweir void ImplInit( Window* pParent, 125*cdf0e10cSrcweir WinBits nStyle, sal_uInt16 nTypeStyle, 126*cdf0e10cSrcweir SystemParentData* pParentData ); 127*cdf0e10cSrcweir void ImplInit( Window* pParent, 128*cdf0e10cSrcweir WinBits nStyle, sal_uInt16 nTypeStyle, 129*cdf0e10cSrcweir const ::com::sun::star::uno::Any& ); 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir // Copy assignment is forbidden and not implemented. 132*cdf0e10cSrcweir ImplBorderWindow (const ImplBorderWindow &); 133*cdf0e10cSrcweir ImplBorderWindow& operator= (const ImplBorderWindow &); 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir public: 136*cdf0e10cSrcweir ImplBorderWindow( Window* pParent, 137*cdf0e10cSrcweir SystemParentData* pParentData, 138*cdf0e10cSrcweir WinBits nStyle = 0, 139*cdf0e10cSrcweir sal_uInt16 nTypeStyle = 0 ); 140*cdf0e10cSrcweir ImplBorderWindow( Window* pParent, WinBits nStyle = 0, 141*cdf0e10cSrcweir sal_uInt16 nTypeStyle = 0 ); 142*cdf0e10cSrcweir ImplBorderWindow( Window* pParent, 143*cdf0e10cSrcweir WinBits nStyle, sal_uInt16 nTypeStyle, 144*cdf0e10cSrcweir const ::com::sun::star::uno::Any& ); 145*cdf0e10cSrcweir ~ImplBorderWindow(); 146*cdf0e10cSrcweir 147*cdf0e10cSrcweir virtual void MouseMove( const MouseEvent& rMEvt ); 148*cdf0e10cSrcweir virtual void MouseButtonDown( const MouseEvent& rMEvt ); 149*cdf0e10cSrcweir virtual void Tracking( const TrackingEvent& rTEvt ); 150*cdf0e10cSrcweir virtual void Paint( const Rectangle& rRect ); 151*cdf0e10cSrcweir virtual void Activate(); 152*cdf0e10cSrcweir virtual void Deactivate(); 153*cdf0e10cSrcweir virtual void Resize(); 154*cdf0e10cSrcweir virtual void RequestHelp( const HelpEvent& rHEvt ); 155*cdf0e10cSrcweir virtual void StateChanged( StateChangedType nType ); 156*cdf0e10cSrcweir virtual void DataChanged( const DataChangedEvent& rDCEvt ); 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir void InitView(); 159*cdf0e10cSrcweir void UpdateView( sal_Bool bNewView, const Size& rNewOutSize ); 160*cdf0e10cSrcweir void InvalidateBorder(); 161*cdf0e10cSrcweir 162*cdf0e10cSrcweir using Window::Draw; 163*cdf0e10cSrcweir void Draw( const Rectangle& rRect, OutputDevice* pDev, const Point& rPos ); 164*cdf0e10cSrcweir 165*cdf0e10cSrcweir void SetDisplayActive( sal_Bool bActive ); 166*cdf0e10cSrcweir sal_Bool IsDisplayActive() const { return mbDisplayActive; } 167*cdf0e10cSrcweir void SetTitleType( sal_uInt16 nTitleType, const Size& rSize ); 168*cdf0e10cSrcweir void SetBorderStyle( sal_uInt16 nStyle ); 169*cdf0e10cSrcweir sal_uInt16 GetBorderStyle() const { return mnBorderStyle; } 170*cdf0e10cSrcweir void SetPin( sal_Bool bPin ); 171*cdf0e10cSrcweir void SetRollUp( sal_Bool bRollUp, const Size& rSize ); 172*cdf0e10cSrcweir void SetCloser(); 173*cdf0e10cSrcweir void SetDockButton( sal_Bool bDockButton ); 174*cdf0e10cSrcweir void SetHideButton( sal_Bool bHideButton ); 175*cdf0e10cSrcweir void SetHelpButton( sal_Bool bHelpButton ); 176*cdf0e10cSrcweir void SetMenuButton( sal_Bool bMenuButton ); 177*cdf0e10cSrcweir 178*cdf0e10cSrcweir void UpdateMenuHeight(); 179*cdf0e10cSrcweir void SetMenuBarWindow( Window* pWindow ); 180*cdf0e10cSrcweir void SetMenuBarMode( sal_Bool bHide ); 181*cdf0e10cSrcweir 182*cdf0e10cSrcweir void SetMinOutputSize( long nWidth, long nHeight ) 183*cdf0e10cSrcweir { mnMinWidth = nWidth; mnMinHeight = nHeight; } 184*cdf0e10cSrcweir void SetMaxOutputSize( long nWidth, long nHeight ) 185*cdf0e10cSrcweir { mnMaxWidth = nWidth; mnMaxHeight = nHeight; } 186*cdf0e10cSrcweir 187*cdf0e10cSrcweir void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, 188*cdf0e10cSrcweir sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; 189*cdf0e10cSrcweir long CalcTitleWidth() const; 190*cdf0e10cSrcweir 191*cdf0e10cSrcweir Rectangle GetMenuRect() const; 192*cdf0e10cSrcweir }; 193*cdf0e10cSrcweir 194*cdf0e10cSrcweir // ======================================================================= 195*cdf0e10cSrcweir 196*cdf0e10cSrcweir // ----------------------- 197*cdf0e10cSrcweir // - ImplBorderFrameData - 198*cdf0e10cSrcweir // ----------------------- 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir struct ImplBorderFrameData 201*cdf0e10cSrcweir { 202*cdf0e10cSrcweir ImplBorderWindow* mpBorderWindow; 203*cdf0e10cSrcweir OutputDevice* mpOutDev; 204*cdf0e10cSrcweir Rectangle maTitleRect; 205*cdf0e10cSrcweir Rectangle maPinRect; 206*cdf0e10cSrcweir Rectangle maCloseRect; 207*cdf0e10cSrcweir Rectangle maRollRect; 208*cdf0e10cSrcweir Rectangle maDockRect; 209*cdf0e10cSrcweir Rectangle maMenuRect; 210*cdf0e10cSrcweir Rectangle maHideRect; 211*cdf0e10cSrcweir Rectangle maHelpRect; 212*cdf0e10cSrcweir Point maMouseOff; 213*cdf0e10cSrcweir long mnWidth; 214*cdf0e10cSrcweir long mnHeight; 215*cdf0e10cSrcweir long mnTrackX; 216*cdf0e10cSrcweir long mnTrackY; 217*cdf0e10cSrcweir long mnTrackWidth; 218*cdf0e10cSrcweir long mnTrackHeight; 219*cdf0e10cSrcweir sal_Int32 mnLeftBorder; 220*cdf0e10cSrcweir sal_Int32 mnTopBorder; 221*cdf0e10cSrcweir sal_Int32 mnRightBorder; 222*cdf0e10cSrcweir sal_Int32 mnBottomBorder; 223*cdf0e10cSrcweir long mnNoTitleTop; 224*cdf0e10cSrcweir long mnBorderSize; 225*cdf0e10cSrcweir long mnTitleHeight; 226*cdf0e10cSrcweir long mnTitleOff; 227*cdf0e10cSrcweir sal_uInt16 mnHitTest; 228*cdf0e10cSrcweir sal_uInt16 mnPinState; 229*cdf0e10cSrcweir sal_uInt16 mnCloseState; 230*cdf0e10cSrcweir sal_uInt16 mnRollState; 231*cdf0e10cSrcweir sal_uInt16 mnDockState; 232*cdf0e10cSrcweir sal_uInt16 mnMenuState; 233*cdf0e10cSrcweir sal_uInt16 mnHideState; 234*cdf0e10cSrcweir sal_uInt16 mnHelpState; 235*cdf0e10cSrcweir sal_uInt16 mnTitleType; 236*cdf0e10cSrcweir sal_Bool mbFloatWindow; 237*cdf0e10cSrcweir sal_Bool mbDragFull; 238*cdf0e10cSrcweir sal_Bool mbTitleClipped; 239*cdf0e10cSrcweir }; 240*cdf0e10cSrcweir 241*cdf0e10cSrcweir // ======================================================================= 242*cdf0e10cSrcweir 243*cdf0e10cSrcweir // ------------------------ 244*cdf0e10cSrcweir // - ImplBorderWindowView - 245*cdf0e10cSrcweir // ------------------------ 246*cdf0e10cSrcweir 247*cdf0e10cSrcweir class ImplBorderWindowView 248*cdf0e10cSrcweir { 249*cdf0e10cSrcweir public: 250*cdf0e10cSrcweir virtual ~ImplBorderWindowView(); 251*cdf0e10cSrcweir 252*cdf0e10cSrcweir virtual sal_Bool MouseMove( const MouseEvent& rMEvt ); 253*cdf0e10cSrcweir virtual sal_Bool MouseButtonDown( const MouseEvent& rMEvt ); 254*cdf0e10cSrcweir virtual sal_Bool Tracking( const TrackingEvent& rTEvt ); 255*cdf0e10cSrcweir virtual String RequestHelp( const Point& rPos, Rectangle& rHelpRect ); 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir virtual void Init( OutputDevice* pDev, long nWidth, long nHeight ) = 0; 258*cdf0e10cSrcweir virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, 259*cdf0e10cSrcweir sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const = 0; 260*cdf0e10cSrcweir virtual long CalcTitleWidth() const = 0; 261*cdf0e10cSrcweir virtual void DrawWindow( sal_uInt16 nDrawFlags, OutputDevice* pOutDev = NULL, const Point* pOffset = NULL ) = 0; 262*cdf0e10cSrcweir virtual Rectangle GetMenuRect() const; 263*cdf0e10cSrcweir 264*cdf0e10cSrcweir void ImplInitTitle( ImplBorderFrameData* pData ); 265*cdf0e10cSrcweir sal_uInt16 ImplHitTest( ImplBorderFrameData* pData, const Point& rPos ); 266*cdf0e10cSrcweir sal_Bool ImplMouseMove( ImplBorderFrameData* pData, const MouseEvent& rMEvt ); 267*cdf0e10cSrcweir sal_Bool ImplMouseButtonDown( ImplBorderFrameData* pData, const MouseEvent& rMEvt ); 268*cdf0e10cSrcweir sal_Bool ImplTracking( ImplBorderFrameData* pData, const TrackingEvent& rTEvt ); 269*cdf0e10cSrcweir String ImplRequestHelp( ImplBorderFrameData* pData, const Point& rPos, Rectangle& rHelpRect ); 270*cdf0e10cSrcweir long ImplCalcTitleWidth( const ImplBorderFrameData* pData ) const; 271*cdf0e10cSrcweir }; 272*cdf0e10cSrcweir 273*cdf0e10cSrcweir // ======================================================================= 274*cdf0e10cSrcweir 275*cdf0e10cSrcweir // -------------------------- 276*cdf0e10cSrcweir // - ImplNoBorderWindowView - 277*cdf0e10cSrcweir // -------------------------- 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir class ImplNoBorderWindowView : public ImplBorderWindowView 280*cdf0e10cSrcweir { 281*cdf0e10cSrcweir public: 282*cdf0e10cSrcweir ImplNoBorderWindowView( ImplBorderWindow* pBorderWindow ); 283*cdf0e10cSrcweir 284*cdf0e10cSrcweir virtual void Init( OutputDevice* pDev, long nWidth, long nHeight ); 285*cdf0e10cSrcweir virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, 286*cdf0e10cSrcweir sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; 287*cdf0e10cSrcweir virtual long CalcTitleWidth() const; 288*cdf0e10cSrcweir virtual void DrawWindow( sal_uInt16 nDrawFlags, OutputDevice* pOutDev, const Point* pOffset ); 289*cdf0e10cSrcweir }; 290*cdf0e10cSrcweir 291*cdf0e10cSrcweir 292*cdf0e10cSrcweir // ======================================================================= 293*cdf0e10cSrcweir 294*cdf0e10cSrcweir // ----------------------------- 295*cdf0e10cSrcweir // - ImplSmallBorderWindowView - 296*cdf0e10cSrcweir // ----------------------------- 297*cdf0e10cSrcweir 298*cdf0e10cSrcweir class ImplSmallBorderWindowView : public ImplBorderWindowView 299*cdf0e10cSrcweir { 300*cdf0e10cSrcweir ImplBorderWindow* mpBorderWindow; 301*cdf0e10cSrcweir OutputDevice* mpOutDev; 302*cdf0e10cSrcweir long mnWidth; 303*cdf0e10cSrcweir long mnHeight; 304*cdf0e10cSrcweir sal_Int32 mnLeftBorder; 305*cdf0e10cSrcweir sal_Int32 mnTopBorder; 306*cdf0e10cSrcweir sal_Int32 mnRightBorder; 307*cdf0e10cSrcweir sal_Int32 mnBottomBorder; 308*cdf0e10cSrcweir bool mbNWFBorder; 309*cdf0e10cSrcweir 310*cdf0e10cSrcweir public: 311*cdf0e10cSrcweir ImplSmallBorderWindowView( ImplBorderWindow* pBorderWindow ); 312*cdf0e10cSrcweir 313*cdf0e10cSrcweir virtual void Init( OutputDevice* pOutDev, long nWidth, long nHeight ); 314*cdf0e10cSrcweir virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, 315*cdf0e10cSrcweir sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; 316*cdf0e10cSrcweir virtual long CalcTitleWidth() const; 317*cdf0e10cSrcweir virtual void DrawWindow( sal_uInt16 nDrawFlags, OutputDevice* pOutDev, const Point* pOffset ); 318*cdf0e10cSrcweir }; 319*cdf0e10cSrcweir 320*cdf0e10cSrcweir 321*cdf0e10cSrcweir // ======================================================================= 322*cdf0e10cSrcweir 323*cdf0e10cSrcweir // --------------------------- 324*cdf0e10cSrcweir // - ImplStdBorderWindowView - 325*cdf0e10cSrcweir // --------------------------- 326*cdf0e10cSrcweir 327*cdf0e10cSrcweir 328*cdf0e10cSrcweir class ImplStdBorderWindowView : public ImplBorderWindowView 329*cdf0e10cSrcweir { 330*cdf0e10cSrcweir ImplBorderFrameData maFrameData; 331*cdf0e10cSrcweir VirtualDevice* mpATitleVirDev; 332*cdf0e10cSrcweir VirtualDevice* mpDTitleVirDev; 333*cdf0e10cSrcweir 334*cdf0e10cSrcweir public: 335*cdf0e10cSrcweir ImplStdBorderWindowView( ImplBorderWindow* pBorderWindow ); 336*cdf0e10cSrcweir ~ImplStdBorderWindowView(); 337*cdf0e10cSrcweir 338*cdf0e10cSrcweir virtual sal_Bool MouseMove( const MouseEvent& rMEvt ); 339*cdf0e10cSrcweir virtual sal_Bool MouseButtonDown( const MouseEvent& rMEvt ); 340*cdf0e10cSrcweir virtual sal_Bool Tracking( const TrackingEvent& rTEvt ); 341*cdf0e10cSrcweir virtual String RequestHelp( const Point& rPos, Rectangle& rHelpRect ); 342*cdf0e10cSrcweir virtual Rectangle GetMenuRect() const; 343*cdf0e10cSrcweir 344*cdf0e10cSrcweir virtual void Init( OutputDevice* pDev, long nWidth, long nHeight ); 345*cdf0e10cSrcweir virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, 346*cdf0e10cSrcweir sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; 347*cdf0e10cSrcweir virtual long CalcTitleWidth() const; 348*cdf0e10cSrcweir virtual void DrawWindow( sal_uInt16 nDrawFlags, OutputDevice* pOutDev, const Point* pOffset ); 349*cdf0e10cSrcweir }; 350*cdf0e10cSrcweir 351*cdf0e10cSrcweir 352*cdf0e10cSrcweir #endif // _SV_BRDWIN_HXX 353