1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/checkbox.h
3 // Purpose: wxCheckBox class
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_CHECKBOX_H_
13 #define _WX_CHECKBOX_H_
15 // Checkbox item (single checkbox)
16 class WXDLLIMPEXP_CORE wxCheckBox
: public wxCheckBoxBase
20 wxCheckBox(wxWindow
*parent
,
22 const wxString
& label
,
23 const wxPoint
& pos
= wxDefaultPosition
,
24 const wxSize
& size
= wxDefaultSize
,
26 const wxValidator
& validator
= wxDefaultValidator
,
27 const wxString
& name
= wxCheckBoxNameStr
)
29 Create(parent
, id
, label
, pos
, size
, style
, validator
, name
);
32 bool Create(wxWindow
*parent
,
34 const wxString
& label
,
35 const wxPoint
& pos
= wxDefaultPosition
,
36 const wxSize
& size
= wxDefaultSize
,
38 const wxValidator
& validator
= wxDefaultValidator
,
39 const wxString
& name
= wxCheckBoxNameStr
);
41 virtual void SetValue(bool value
);
42 virtual bool GetValue() const;
44 // override some base class virtuals
45 virtual void SetLabel(const wxString
& label
);
47 virtual bool MSWCommand(WXUINT param
, WXWORD id
);
48 virtual void Command(wxCommandEvent
& event
);
49 virtual bool SetForegroundColour(const wxColour
& colour
);
50 virtual bool MSWOnDraw(WXDRAWITEMSTRUCT
*item
);
52 // returns true if the platform should explicitly apply a theme border
53 virtual bool CanApplyThemeBorder() const { return false; }
55 // make the checkbox owner drawn or reset it to normal style
56 void MSWMakeOwnerDrawn(bool ownerDrawn
);
59 virtual wxSize
DoGetBestSize() const;
61 virtual void DoSet3StateValue(wxCheckBoxState value
);
62 virtual wxCheckBoxState
DoGet3StateValue() const;
64 // return true if this checkbox is owner drawn
65 bool IsOwnerDrawn() const;
68 // common part of all ctors
71 // event handlers used by owner-drawn checkbox
72 void OnMouseEnterOrLeave(wxMouseEvent
& event
);
73 void OnMouseLeft(wxMouseEvent
& event
);
74 void OnFocus(wxFocusEvent
& event
);
77 // current state of the checkbox
78 wxCheckBoxState m_state
;
80 // true if the checkbox is currently pressed
83 // true if mouse is currently over the control
87 DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckBox
)