]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/tglbtn.h
Dramatically optimise inserting many items in wxGenericListCtrl.
[wxWidgets.git] / include / wx / msw / tglbtn.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/tglbtn.h
3 // Purpose: Declaration of the wxToggleButton class, which implements a
4 // toggle button under wxMSW.
5 // Author: John Norris, minor changes by Axel Schlueter
6 // Modified by:
7 // Created: 08.02.01
8 // RCS-ID: $Id$
9 // Copyright: (c) 2000 Johnny C. Norris II
10 // Licence: wxWindows licence
11 /////////////////////////////////////////////////////////////////////////////
12
13 #ifndef _WX_TOGGLEBUTTON_H_
14 #define _WX_TOGGLEBUTTON_H_
15
16 #include "wx/bitmap.h"
17
18 // Checkbox item (single checkbox)
19 class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase
20 {
21 public:
22 wxToggleButton() { Init(); }
23 wxToggleButton(wxWindow *parent,
24 wxWindowID id,
25 const wxString& label,
26 const wxPoint& pos = wxDefaultPosition,
27 const wxSize& size = wxDefaultSize,
28 long style = 0,
29 const wxValidator& validator = wxDefaultValidator,
30 const wxString& name = wxCheckBoxNameStr)
31 {
32 Create(parent, id, label, pos, size, style, validator, name);
33 }
34
35 bool Create(wxWindow *parent,
36 wxWindowID id,
37 const wxString& label,
38 const wxPoint& pos = wxDefaultPosition,
39 const wxSize& size = wxDefaultSize,
40 long style = 0,
41 const wxValidator& validator = wxDefaultValidator,
42 const wxString& name = wxCheckBoxNameStr);
43
44 virtual void SetValue(bool value);
45 virtual bool GetValue() const ;
46
47 virtual bool MSWCommand(WXUINT param, WXWORD id);
48 virtual void Command(wxCommandEvent& event);
49
50 virtual State GetNormalState() const;
51
52 // returns true if the platform should explicitly apply a theme border
53 virtual bool CanApplyThemeBorder() const { return false; }
54
55 protected:
56 virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
57
58 virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
59
60 void Init();
61
62 // current state of the button (when owner-drawn)
63 bool m_state;
64
65 private:
66 DECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton)
67 };
68
69 //-----------------------------------------------------------------------------
70 // wxBitmapToggleButton
71 //-----------------------------------------------------------------------------
72
73
74 class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButton
75 {
76 public:
77 // construction/destruction
78 wxBitmapToggleButton() {}
79 wxBitmapToggleButton(wxWindow *parent,
80 wxWindowID id,
81 const wxBitmap& label,
82 const wxPoint& pos = wxDefaultPosition,
83 const wxSize& size = wxDefaultSize,
84 long style = 0,
85 const wxValidator& validator = wxDefaultValidator,
86 const wxString& name = wxCheckBoxNameStr)
87 {
88 Create(parent, id, label, pos, size, style, validator, name);
89 }
90
91 // Create the control
92 bool Create(wxWindow *parent,
93 wxWindowID id,
94 const wxBitmap& label,
95 const wxPoint& pos = wxDefaultPosition,
96 const wxSize& size = wxDefaultSize, long style = 0,
97 const wxValidator& validator = wxDefaultValidator,
98 const wxString& name = wxCheckBoxNameStr);
99
100 // deprecated synonym for SetBitmapLabel()
101 wxDEPRECATED_INLINE( void SetLabel(const wxBitmap& bitmap),
102 SetBitmapLabel(bitmap); )
103 // prevent virtual function hiding
104 virtual void SetLabel(const wxString& label) { wxToggleButton::SetLabel(label); }
105
106 private:
107 DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton)
108 };
109
110 #endif // _WX_TOGGLEBUTTON_H_
111