]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk/checkbox.h
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / include / wx / gtk / checkbox.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/checkbox.h
3 // Purpose:
4 // Author: Robert Roebling
5 // Id: $Id$
6 // Copyright: (c) 1998 Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifndef _WX_GTKCHECKBOX_H_
11 #define _WX_GTKCHECKBOX_H_
12
13 // ----------------------------------------------------------------------------
14 // wxCheckBox
15 // ----------------------------------------------------------------------------
16
17 class WXDLLIMPEXP_CORE wxCheckBox : public wxCheckBoxBase
18 {
19 public:
20 wxCheckBox();
21 wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label,
22 const wxPoint& pos = wxDefaultPosition,
23 const wxSize& size = wxDefaultSize, long style = 0,
24 const wxValidator& validator = wxDefaultValidator,
25 const wxString& name = wxCheckBoxNameStr)
26 {
27 Create(parent, id, label, pos, size, style, validator, name);
28 }
29 bool Create(wxWindow *parent,
30 wxWindowID id,
31 const wxString& label,
32 const wxPoint& pos = wxDefaultPosition,
33 const wxSize& size = wxDefaultSize,
34 long style = 0,
35 const wxValidator& validator = wxDefaultValidator,
36 const wxString& name = wxCheckBoxNameStr );
37
38 void SetValue( bool state );
39 bool GetValue() const;
40
41 virtual void SetLabel( const wxString& label );
42 virtual bool Enable( bool enable = true );
43
44 static wxVisualAttributes
45 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
46
47 // implementation
48 void GTKDisableEvents();
49 void GTKEnableEvents();
50
51 protected:
52 virtual void DoApplyWidgetStyle(GtkRcStyle *style);
53 virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
54
55 void DoSet3StateValue(wxCheckBoxState state);
56 wxCheckBoxState DoGet3StateValue() const;
57
58 private:
59 typedef wxCheckBoxBase base_type;
60
61 GtkWidget *m_widgetCheckbox;
62 GtkWidget *m_widgetLabel;
63
64 DECLARE_DYNAMIC_CLASS(wxCheckBox)
65 };
66
67 #endif // _WX_GTKCHECKBOX_H_