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