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) 16class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase 17{ 18public: 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 50protected: 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 62private: 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