xref: /aoo42x/main/vcl/inc/brdwin.hxx (revision ebfcd9af)
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
10*ebfcd9afSAndrew Rist  *
11*ebfcd9afSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ebfcd9afSAndrew Rist  *
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.
19*ebfcd9afSAndrew Rist  *
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