Version 4.3.0.0.beta1, tag libreoffice-4.3.0.0.beta1
[LibreOffice.git] / include / vcl / button.hxx
blob1c283aff5f47d79024230c8c3a33ef3a18eb0341
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_VCL_BUTTON_HXX
21 #define INCLUDED_VCL_BUTTON_HXX
23 #include <tools/solar.h>
24 #include <tools/color.hxx>
25 #include <vcl/dllapi.h>
26 #include <vcl/image.hxx>
27 #include <vcl/ctrl.hxx>
28 #include <vcl/bitmap.hxx>
29 #include <vcl/salnativewidgets.hxx>
30 #include <rsc/rsc-vcl-shared-types.hxx>
32 #include <vector>
34 class UserDrawEvent;
35 class ImplCommonButtonData;
38 // - Button -
41 class VCL_DLLPUBLIC Button : public Control
43 private:
44 ImplCommonButtonData *mpButtonData;
45 Link maClickHdl;
47 // Copy assignment is forbidden and not implemented.
48 SAL_DLLPRIVATE Button (const Button &);
49 SAL_DLLPRIVATE Button & operator= (const Button &);
50 public:
51 SAL_DLLPRIVATE sal_uInt16 ImplGetButtonState() const;
52 SAL_DLLPRIVATE sal_uInt16& ImplGetButtonState();
53 SAL_DLLPRIVATE sal_uInt16 ImplGetTextStyle( OUString& rText, WinBits nWinStyle, sal_uLong nDrawFlags );
54 SAL_DLLPRIVATE void ImplDrawAlignedImage( OutputDevice* pDev, Point& rPos, Size& rSize,
55 bool bLayout, sal_uLong nImageSep, sal_uLong nDrawFlags,
56 sal_uInt16 nTextStyle, Rectangle *pSymbolRect=NULL, bool bAddImageSep = false );
57 SAL_DLLPRIVATE void ImplSetFocusRect( const Rectangle &rFocusRect );
58 SAL_DLLPRIVATE const Rectangle& ImplGetFocusRect() const;
59 SAL_DLLPRIVATE void ImplSetSymbolAlign( SymbolAlign eAlign );
60 /// The x-coordinate of the vertical separator line, use in MenuButton subclass only.
61 SAL_DLLPRIVATE long ImplGetSeparatorX() const;
62 SAL_DLLPRIVATE void ImplSetSeparatorX( long nX );
64 protected:
65 explicit Button( WindowType nType );
67 public:
68 virtual ~Button();
70 virtual void Click();
72 void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; }
73 const Link& GetClickHdl() const { return maClickHdl; }
75 static OUString GetStandardText( StandardButtonType eButton );
77 bool SetModeImage( const Image& rImage );
78 const Image GetModeImage( ) const;
79 bool HasImage() const;
80 void SetImageAlign( ImageAlign eAlign );
81 ImageAlign GetImageAlign() const;
83 void EnableImageDisplay( bool bEnable );
84 void EnableTextDisplay( bool bEnable );
86 void SetFocusRect( const Rectangle& rFocusRect );
87 bool IsSmallSymbol() const;
88 void SetSmallSymbol(bool bSmall = true);
89 virtual bool set_property(const OString &rKey, const OString &rValue) SAL_OVERRIDE;
93 // - PushButton-Types -
96 #define PUSHBUTTON_DROPDOWN_TOOLBOX ((sal_uInt16)0x0001)
97 #define PUSHBUTTON_DROPDOWN_MENUBUTTON ((sal_uInt16)0x0002)
100 // - PushButton -
103 class VCL_DLLPUBLIC PushButton : public Button
105 protected:
106 SymbolType meSymbol;
107 TriState meState;
108 TriState meSaveValue;
109 sal_uInt16 mnDDStyle;
110 bool mbPressed;
111 bool mbInUserDraw;
112 Link maToggleHdl;
114 SAL_DLLPRIVATE void ImplInitPushButtonData();
115 SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle );
116 SAL_DLLPRIVATE void ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
117 SAL_DLLPRIVATE void ImplDrawPushButtonContent( OutputDevice* pDev, sal_uLong nDrawFlags,
118 const Rectangle& rRect, bool bLayout, bool bMenuBtnSep );
119 SAL_DLLPRIVATE void ImplDrawPushButton( bool bLayout = false );
120 using Button::ImplGetTextStyle;
121 SAL_DLLPRIVATE sal_uInt16 ImplGetTextStyle( sal_uLong nDrawFlags ) const;
122 SAL_DLLPRIVATE bool IsSymbol() const { return ( (meSymbol != SYMBOL_NOSYMBOL) && (meSymbol != SYMBOL_IMAGE) ); }
123 SAL_DLLPRIVATE bool IsImage() const { return Button::HasImage(); }
125 // Copy assignment is forbidden and not implemented.
126 SAL_DLLPRIVATE PushButton( const PushButton & );
127 SAL_DLLPRIVATE PushButton& operator=( const PushButton & );
129 SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
131 using Control::ImplInitSettings;
132 using Window::ImplInit;
133 public:
134 SAL_DLLPRIVATE void ImplSetDefButton( bool bSet );
135 SAL_DLLPRIVATE static void ImplDrawPushButtonFrame( Window* pDev, Rectangle& rRect, sal_uInt16 nStyle );
136 SAL_DLLPRIVATE static bool ImplHitTestPushButton( Window* pDev, const Point& rPos );
137 SAL_DLLPRIVATE bool ImplIsDefButton() const;
139 protected:
140 explicit PushButton( WindowType nType );
142 virtual void FillLayoutData() const SAL_OVERRIDE;
143 virtual const Font&
144 GetCanonicalFont( const StyleSettings& _rStyle ) const SAL_OVERRIDE;
145 virtual const Color&
146 GetCanonicalTextColor( const StyleSettings& _rStyle ) const SAL_OVERRIDE;
147 public:
148 explicit PushButton( Window* pParent, WinBits nStyle = 0 );
149 explicit PushButton( Window* pParent, const ResId& );
150 virtual ~PushButton();
152 virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
153 virtual void Tracking( const TrackingEvent& rTEvt ) SAL_OVERRIDE;
154 virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
155 virtual void KeyUp( const KeyEvent& rKEvt ) SAL_OVERRIDE;
156 virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE;
157 virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
158 virtual void Resize() SAL_OVERRIDE;
159 virtual void GetFocus() SAL_OVERRIDE;
160 virtual void LoseFocus() SAL_OVERRIDE;
161 virtual void StateChanged( StateChangedType nType ) SAL_OVERRIDE;
162 virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
163 virtual bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
164 virtual void UserDraw( const UserDrawEvent& rUDEvt );
166 virtual void Toggle();
168 void SetSymbol( SymbolType eSymbol );
169 SymbolType GetSymbol() const { return meSymbol; }
170 void SetSymbolAlign( SymbolAlign eAlign );
172 void SetDropDown( sal_uInt16 nStyle );
173 sal_uInt16 GetDropDown() const { return mnDDStyle; }
175 void SetState( TriState eState );
176 TriState GetState() const { return meState; }
178 void Check( bool bCheck = true );
179 bool IsChecked() const;
181 void SetPressed( bool bPressed );
182 bool IsPressed() const { return mbPressed; }
184 void EndSelection();
186 void SaveValue() { meSaveValue = GetState(); }
187 TriState GetSavedValue() const { return meSaveValue; }
188 bool IsValueChangedFromSaved() const { return meSaveValue != GetState(); }
190 Size CalcMinimumSize( long nMaxWidth = 0 ) const;
191 virtual Size GetOptimalSize() const SAL_OVERRIDE;
193 void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; }
194 const Link& GetToggleHdl() const { return maToggleHdl; }
195 virtual bool set_property(const OString &rKey, const OString &rValue) SAL_OVERRIDE;
198 inline void PushButton::Check( bool bCheck )
200 SetState( (bCheck) ? TRISTATE_TRUE : TRISTATE_FALSE );
203 inline bool PushButton::IsChecked() const
205 return (GetState() == TRISTATE_TRUE);
209 // - OKButton -
212 class VCL_DLLPUBLIC OKButton : public PushButton
214 protected:
215 using PushButton::ImplInit;
216 private:
217 SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
219 // Copy assignment is forbidden and not implemented.
220 SAL_DLLPRIVATE OKButton (const OKButton &);
221 SAL_DLLPRIVATE OKButton & operator= (const OKButton &);
223 public:
224 explicit OKButton( Window* pParent, WinBits nStyle = WB_DEFBUTTON );
225 explicit OKButton( Window* pParent, const ResId& );
227 virtual void Click() SAL_OVERRIDE;
231 // - CancelButton -
234 class VCL_DLLPUBLIC CancelButton : public PushButton
236 protected:
237 using PushButton::ImplInit;
238 private:
239 SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
241 // Copy assignment is forbidden and not implemented.
242 SAL_DLLPRIVATE CancelButton (const CancelButton &);
243 SAL_DLLPRIVATE CancelButton & operator= (const CancelButton &);
245 public:
246 explicit CancelButton( Window* pParent, WinBits nStyle = 0 );
247 explicit CancelButton( Window* pParent, const ResId& );
249 virtual void Click() SAL_OVERRIDE;
252 class VCL_DLLPUBLIC CloseButton : public CancelButton
254 public:
255 explicit CloseButton(Window* pParent, WinBits nStyle = 0);
260 // - HelpButton -
263 class VCL_DLLPUBLIC HelpButton : public PushButton
265 protected:
266 using PushButton::ImplInit;
267 private:
268 SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
270 // Copy assignment is forbidden and not implemented.
271 SAL_DLLPRIVATE HelpButton( const HelpButton & );
272 SAL_DLLPRIVATE HelpButton & operator= ( const HelpButton & );
274 public:
275 explicit HelpButton( Window* pParent, WinBits nStyle = 0 );
276 explicit HelpButton( Window* pParent, const ResId& );
278 virtual void Click() SAL_OVERRIDE;
282 // - RadioButton -
285 class VCL_DLLPUBLIC RadioButton : public Button
287 private:
288 boost::shared_ptr< std::vector<RadioButton*> > m_xGroup;
289 Rectangle maStateRect;
290 Rectangle maMouseRect;
291 Image maImage;
292 bool mbChecked;
293 bool mbSaveValue;
294 bool mbRadioCheck;
295 bool mbStateChanged;
296 Link maToggleHdl;
297 // when mbLegacyNoTextAlign is set then the old behaviour where
298 // the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement
299 // occurs, otherwise the image ( radiobutton circle ) is placed
300 // to the left or right ( depending on RTL or LTR settings )
301 bool mbLegacyNoTextAlign;
302 SAL_DLLPRIVATE void ImplInitRadioButtonData();
303 SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle );
304 SAL_DLLPRIVATE void ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
305 SAL_DLLPRIVATE void ImplDrawRadioButtonState();
306 SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
307 const Point& rPos, const Size& rSize,
308 const Size& rImageSize, Rectangle& rStateRect,
309 Rectangle& rMouseRect, bool bLayout = false );
310 SAL_DLLPRIVATE void ImplDrawRadioButton( bool bLayout = false );
311 SAL_DLLPRIVATE void ImplInvalidateOrDrawRadioButtonState();
312 SAL_DLLPRIVATE void ImplUncheckAllOther();
313 SAL_DLLPRIVATE Size ImplGetRadioImageSize() const;
314 SAL_DLLPRIVATE long ImplGetImageToTextDistance() const;
316 // Copy assignment is forbidden and not implemented.
317 SAL_DLLPRIVATE RadioButton(const RadioButton &);
318 SAL_DLLPRIVATE RadioButton& operator= (const RadioButton &);
320 protected:
321 using Control::ImplInitSettings;
322 using Window::ImplInit;
323 SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
324 SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
326 public:
327 SAL_DLLPRIVATE void ImplCallClick( bool bGrabFocus = false, sal_uInt16 nFocusFlags = 0 );
328 SAL_DLLPRIVATE void ImplSetMinimumNWFSize();
330 protected:
331 virtual void FillLayoutData() const SAL_OVERRIDE;
332 virtual const Font&
333 GetCanonicalFont( const StyleSettings& _rStyle ) const SAL_OVERRIDE;
334 virtual const Color&
335 GetCanonicalTextColor( const StyleSettings& _rStyle ) const SAL_OVERRIDE;
337 inline void SetMouseRect( const Rectangle& _rMouseRect ) { maMouseRect = _rMouseRect; }
338 inline const Rectangle& GetMouseRect( ) const { return maMouseRect; }
339 inline void SetStateRect( const Rectangle& _rStateRect ) { maStateRect = _rStateRect; }
340 inline const Rectangle& GetStateRect( ) const { return maStateRect; }
342 // draws the radio button (the knob image), in its current state (pressed/checked)
343 // at the usual location, which can be overridden with SetStateRect
344 void DrawRadioButtonState( );
346 public:
347 explicit RadioButton( Window* pParent, WinBits nWinStyle = 0 );
348 explicit RadioButton( Window* pParent, const ResId& );
349 virtual ~RadioButton();
351 virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
352 virtual void Tracking( const TrackingEvent& rTEvt ) SAL_OVERRIDE;
353 virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
354 virtual void KeyUp( const KeyEvent& rKEvt ) SAL_OVERRIDE;
355 virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE;
356 virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
357 virtual void Resize() SAL_OVERRIDE;
358 virtual void GetFocus() SAL_OVERRIDE;
359 virtual void LoseFocus() SAL_OVERRIDE;
360 virtual void StateChanged( StateChangedType nType ) SAL_OVERRIDE;
361 virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
362 virtual bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
364 virtual void Toggle();
366 bool IsStateChanged() const { return mbStateChanged; }
368 void EnableRadioCheck( bool bRadioCheck = true ) { mbRadioCheck = bRadioCheck; }
369 bool IsRadioCheckEnabled() const { return mbRadioCheck; }
371 bool SetModeRadioImage( const Image& rImage );
372 const Image& GetModeRadioImage( ) const;
374 void SetState( bool bCheck );
375 void Check( bool bCheck = true );
376 bool IsChecked() const { return mbChecked; }
378 void SaveValue() { mbSaveValue = IsChecked(); }
379 bool GetSavedValue() const { return mbSaveValue; }
380 bool IsValueChangedFromSaved() const { return mbSaveValue != IsChecked(); }
382 static Image GetRadioImage( const AllSettings& rSettings, sal_uInt16 nFlags );
384 Size CalcMinimumSize( long nMaxWidth = 0 ) const;
385 virtual Size GetOptimalSize() const SAL_OVERRIDE;
387 void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; }
388 const Link& GetToggleHdl() const { return maToggleHdl; }
390 /** GetRadioButtonGroup returns a list of pointers to <code>RadioButton</code>s in the same group.
392 The pointers in the returned list are valid at the time call returns. However rescheduling
393 or giving up the SolarMutex may mean events get executed that lead to the pointers getting
394 invalid.
396 @param bIncludeThis
397 defines whether <code>this</code> is contained in the returned list
399 @return
400 on return contains the <code>RadioButton</code>s
401 in the same group as this <code>RadioButton</code>.
403 std::vector<RadioButton*> GetRadioButtonGroup(bool bIncludeThis = true) const;
405 virtual bool set_property(const OString &rKey, const OString &rValue) SAL_OVERRIDE;
408 * Group this RadioButton with another
410 void group(RadioButton &rOther);
414 // - CheckBox -
417 class VCL_DLLPUBLIC CheckBox : public Button
419 private:
420 Rectangle maStateRect;
421 Rectangle maMouseRect;
422 TriState meState;
423 TriState meSaveValue;
424 bool mbTriState;
425 Link maToggleHdl;
426 // when mbLegacyNoTextAlign is set then the old behaviour where
427 // the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement
428 // occurs, otherwise the image ( checkbox box ) is placed
429 // to the left or right ( depending on RTL or LTR settings )
430 bool mbLegacyNoTextAlign;
431 SAL_DLLPRIVATE void ImplInitCheckBoxData();
432 SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle );
433 SAL_DLLPRIVATE void ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
434 SAL_DLLPRIVATE void ImplInvalidateOrDrawCheckBoxState();
435 SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
436 const Point& rPos, const Size& rSize,
437 const Size& rImageSize, Rectangle& rStateRect,
438 Rectangle& rMouseRect, bool bLayout );
439 SAL_DLLPRIVATE void ImplDrawCheckBox( bool bLayout = false );
440 SAL_DLLPRIVATE long ImplGetImageToTextDistance() const;
441 SAL_DLLPRIVATE Size ImplGetCheckImageSize() const;
443 // Copy assignment is forbidden and not implemented.
444 SAL_DLLPRIVATE CheckBox(const CheckBox &);
445 SAL_DLLPRIVATE CheckBox& operator= (const CheckBox &);
447 protected:
448 using Control::ImplInitSettings;
449 using Window::ImplInit;
450 SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
451 SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
452 virtual void FillLayoutData() const SAL_OVERRIDE;
453 virtual const Font& GetCanonicalFont( const StyleSettings& _rStyle ) const SAL_OVERRIDE;
454 virtual const Color& GetCanonicalTextColor( const StyleSettings& _rStyle ) const SAL_OVERRIDE;
456 virtual void ImplDrawCheckBoxState();
457 SAL_DLLPRIVATE const Rectangle& GetStateRect() const { return maStateRect; }
458 SAL_DLLPRIVATE const Rectangle& GetMouseRect() const { return maMouseRect; }
460 public:
461 SAL_DLLPRIVATE void ImplCheck();
462 SAL_DLLPRIVATE void ImplSetMinimumNWFSize();
463 public:
464 explicit CheckBox( Window* pParent, WinBits nStyle = 0 );
465 explicit CheckBox( Window* pParent, const ResId& );
467 virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
468 virtual void Tracking( const TrackingEvent& rTEvt ) SAL_OVERRIDE;
469 virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
470 virtual void KeyUp( const KeyEvent& rKEvt ) SAL_OVERRIDE;
471 virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE;
472 virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
473 virtual void Resize() SAL_OVERRIDE;
474 virtual void GetFocus() SAL_OVERRIDE;
475 virtual void LoseFocus() SAL_OVERRIDE;
476 virtual void StateChanged( StateChangedType nType ) SAL_OVERRIDE;
477 virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
478 virtual bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
480 virtual void Toggle();
482 void SetState( TriState eState );
483 TriState GetState() const { return meState; }
485 void Check( bool bCheck = true );
486 bool IsChecked() const;
488 void EnableTriState( bool bTriState = true );
489 bool IsTriStateEnabled() const { return mbTriState; }
491 void SaveValue() { meSaveValue = GetState(); }
492 TriState GetSavedValue() const { return meSaveValue; }
493 bool IsValueChangedFromSaved() const { return meSaveValue != GetState(); }
495 static Image GetCheckImage( const AllSettings& rSettings, sal_uInt16 nFlags );
497 Size CalcMinimumSize( long nMaxWidth = 0 ) const;
498 virtual Size GetOptimalSize() const SAL_OVERRIDE;
500 void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; }
501 const Link& GetToggleHdl() const { return maToggleHdl; }
502 bool IsLegacyNoTextAlign() { return mbLegacyNoTextAlign; }
503 void SetLegacyNoTextAlign( bool bVal ) { mbLegacyNoTextAlign = bVal; }
505 virtual bool set_property(const OString &rKey, const OString &rValue) SAL_OVERRIDE;
508 inline void CheckBox::Check( bool bCheck )
510 SetState( (bCheck) ? TRISTATE_TRUE : TRISTATE_FALSE );
513 inline bool CheckBox::IsChecked() const
515 return (GetState() == TRISTATE_TRUE);
519 // - Control-Layer fuer alten Code -
522 class VCL_DLLPUBLIC ImageButton : public PushButton
524 protected:
525 using PushButton::ImplInitStyle;
526 private:
527 SAL_DLLPRIVATE void ImplInitStyle();
529 // Copy assignment is forbidden and not implemented.
530 SAL_DLLPRIVATE ImageButton( const ImageButton & );
531 SAL_DLLPRIVATE ImageButton & operator= ( const ImageButton & );
533 public:
534 ImageButton( Window* pParent, WinBits nStyle = 0 );
535 ImageButton( Window* pParent, const ResId& rResId );
536 virtual ~ImageButton();
539 class VCL_DLLPUBLIC ImageRadioButton : public RadioButton
541 // Copy assignment is forbidden and not implemented.
542 SAL_DLLPRIVATE ImageRadioButton( const ImageRadioButton & );
543 SAL_DLLPRIVATE ImageRadioButton & operator= ( const ImageRadioButton & );
545 public:
546 explicit ImageRadioButton( Window* pParent, WinBits nStyle = 0 );
547 virtual ~ImageRadioButton();
550 class VCL_DLLPUBLIC TriStateBox : public CheckBox
552 // Copy assignment is forbidden and not implemented.
553 SAL_DLLPRIVATE TriStateBox( const TriStateBox & );
554 SAL_DLLPRIVATE TriStateBox & operator= ( const TriStateBox & );
556 public:
557 explicit TriStateBox( Window* pParent, WinBits nStyle = 0 );
558 virtual ~TriStateBox();
561 class VCL_DLLPUBLIC DisclosureButton : public CheckBox
563 protected:
564 SAL_DLLPRIVATE virtual void ImplDrawCheckBoxState() SAL_OVERRIDE;
565 public:
566 explicit DisclosureButton( Window* pParent, WinBits nStyle = 0 );
568 virtual void KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
571 #endif // INCLUDED_VCL_BUTTON_HXX
573 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */