1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/gtk1/tglbtn.h 3// Purpose: Declaration of the wxToggleButton class, which implements a 4// toggle button under wxGTK. 5// Author: John Norris, minor changes by Axel Schlueter 6// Modified by: 7// Created: 08.02.01 8// RCS-ID: $Id: tglbtn.h 37065 2006-01-23 02:28:01Z MR $ 9// Copyright: (c) 2000 Johnny C. Norris II 10// License: wxWindows licence 11///////////////////////////////////////////////////////////////////////////// 12 13#ifndef _WX_GTK_TOGGLEBUTTON_H_ 14#define _WX_GTK_TOGGLEBUTTON_H_ 15 16#include "wx/bitmap.h" 17 18//----------------------------------------------------------------------------- 19// classes 20//----------------------------------------------------------------------------- 21 22class WXDLLIMPEXP_CORE wxToggleButton; 23class WXDLLIMPEXP_CORE wxToggleBitmapButton; 24 25//----------------------------------------------------------------------------- 26// global data 27//----------------------------------------------------------------------------- 28 29extern WXDLLIMPEXP_CORE const wxChar wxCheckBoxNameStr[]; 30 31//----------------------------------------------------------------------------- 32// wxToggleBitmapButton 33//----------------------------------------------------------------------------- 34 35class WXDLLIMPEXP_CORE wxToggleBitmapButton: public wxControl 36{ 37public: 38 // construction/destruction 39 wxToggleBitmapButton() {} 40 wxToggleBitmapButton(wxWindow *parent, 41 wxWindowID id, 42 const wxBitmap& label, 43 const wxPoint& pos = wxDefaultPosition, 44 const wxSize& size = wxDefaultSize, 45 long style = 0, 46 const wxValidator& validator = wxDefaultValidator, 47 const wxString& name = wxCheckBoxNameStr) 48 { 49 Create(parent, id, label, pos, size, style, validator, name); 50 } 51 52 // Create the control 53 bool Create(wxWindow *parent, 54 wxWindowID id, 55 const wxBitmap& label, 56 const wxPoint& pos = wxDefaultPosition, 57 const wxSize& size = wxDefaultSize, long style = 0, 58 const wxValidator& validator = wxDefaultValidator, 59 const wxString& name = wxCheckBoxNameStr); 60 61 // Get/set the value 62 void SetValue(bool state); 63 bool GetValue() const; 64 65 // Set the label 66 virtual void SetLabel(const wxString& label) { wxControl::SetLabel(label); } 67 virtual void SetLabel(const wxBitmap& label); 68 bool Enable(bool enable = TRUE); 69 70 static wxVisualAttributes 71 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); 72 73 // implementation 74 bool m_blockEvent; 75 wxBitmap m_bitmap; 76 77 void OnSetBitmap(); 78 void DoApplyWidgetStyle(GtkRcStyle *style); 79 bool IsOwnGtkWindow(GdkWindow *window); 80 81 virtual void OnInternalIdle(); 82 virtual wxSize DoGetBestSize() const; 83 84private: 85 DECLARE_DYNAMIC_CLASS(wxToggleBitmapButton) 86}; 87 88//----------------------------------------------------------------------------- 89// wxToggleButton 90//----------------------------------------------------------------------------- 91 92class WXDLLIMPEXP_CORE wxToggleButton: public wxControl 93{ 94public: 95 // construction/destruction 96 wxToggleButton() {} 97 wxToggleButton(wxWindow *parent, 98 wxWindowID id, 99 const wxString& label, 100 const wxPoint& pos = wxDefaultPosition, 101 const wxSize& size = wxDefaultSize, 102 long style = 0, 103 const wxValidator& validator = wxDefaultValidator, 104 const wxString& name = wxCheckBoxNameStr) 105 { 106 Create(parent, id, label, pos, size, style, validator, name); 107 } 108 109 // Create the control 110 bool Create(wxWindow *parent, 111 wxWindowID id, 112 const wxString& label, 113 const wxPoint& pos = wxDefaultPosition, 114 const wxSize& size = wxDefaultSize, long style = 0, 115 const wxValidator& validator = wxDefaultValidator, 116 const wxString& name = wxCheckBoxNameStr); 117 118 // Get/set the value 119 void SetValue(bool state); 120 bool GetValue() const; 121 122 // Set the label 123 void SetLabel(const wxString& label); 124 bool Enable(bool enable = TRUE); 125 126 static wxVisualAttributes 127 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); 128 129 // implementation 130 bool m_blockEvent; 131 132 void DoApplyWidgetStyle(GtkRcStyle *style); 133 bool IsOwnGtkWindow(GdkWindow *window); 134 135 virtual void OnInternalIdle(); 136 virtual wxSize DoGetBestSize() const; 137 138private: 139 DECLARE_DYNAMIC_CLASS(wxToggleButton) 140}; 141 142#endif // _WX_GTK_TOGGLEBUTTON_H_ 143 144