1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/msw/checkbox.h
3 // Purpose:     wxCheckBox class
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     01/02/97
7 // RCS-ID:      $Id: checkbox.h 37393 2006-02-08 21:47:09Z VZ $
8 // Copyright:   (c) Julian Smart
9 // Licence:     wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef _WX_CHECKBOX_H_
13 #define _WX_CHECKBOX_H_
14 
15 // Checkbox item (single checkbox)
16 class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase
17 {
18 public:
wxCheckBox()19     wxCheckBox() { }
20     wxCheckBox(wxWindow *parent,
21                wxWindowID id,
22                const wxString& label,
23                const wxPoint& pos = wxDefaultPosition,
24                const wxSize& size = wxDefaultSize,
25                long style = 0,
26                const wxValidator& validator = wxDefaultValidator,
27                const wxString& name = wxCheckBoxNameStr)
28     {
29         Create(parent, id, label, pos, size, style, validator, name);
30     }
31 
32     bool Create(wxWindow *parent,
33                 wxWindowID id,
34                 const wxString& label,
35                 const wxPoint& pos = wxDefaultPosition,
36                 const wxSize& size = wxDefaultSize,
37                 long style = 0,
38                 const wxValidator& validator = wxDefaultValidator,
39                 const wxString& name = wxCheckBoxNameStr);
40 
41     virtual void SetValue(bool value);
42     virtual bool GetValue() const;
43 
44     // override some base class virtuals
45     virtual bool MSWCommand(WXUINT param, WXWORD id);
46     virtual void Command(wxCommandEvent& event);
47     virtual bool SetForegroundColour(const wxColour& colour);
48     virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
49 
50 protected:
51     virtual wxSize DoGetBestSize() const;
52 
53     virtual void DoSet3StateValue(wxCheckBoxState value);
54     virtual wxCheckBoxState DoGet3StateValue() const;
55 
56     // make the checkbox owner drawn or reset it to normal style
57     void MakeOwnerDrawn(bool ownerDrawn);
58 
59     // return true if this checkbox is owner drawn
60     bool IsOwnerDrawn() const;
61 
62 private:
63     // common part of all ctors
64     void Init();
65 
66     // event handlers used by owner-drawn checkbox
67     void OnMouseEnterOrLeave(wxMouseEvent& event);
68     void OnMouseLeft(wxMouseEvent& event);
69     void OnFocus(wxFocusEvent& event);
70 
71 
72     // current state of the checkbox
73     wxCheckBoxState m_state;
74 
75     // true if the checkbox is currently pressed
76     bool m_isPressed;
77 
78     // true if mouse is currently over the control
79     bool m_isHot;
80 
81 
82     DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckBox)
83 };
84 
85 #endif
86     // _WX_CHECKBOX_H_
87