///////////////////////////////////////////////////////////////////////////// // Name: wx/gtk/tglbtn.h // Purpose: Declaration of the wxToggleButton class, which implements a // toggle button under wxGTK. // Author: John Norris, minor changes by Axel Schlueter // Modified by: // Created: 08.02.01 // RCS-ID: $Id$ // Copyright: (c) 2000 Johnny C. Norris II // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_GTK_TOGGLEBUTTON_H_ #define _WX_GTK_TOGGLEBUTTON_H_ #include "wx/bitmap.h" //----------------------------------------------------------------------------- // classes //----------------------------------------------------------------------------- class WXDLLIMPEXP_FWD_CORE wxToggleButton; class WXDLLIMPEXP_FWD_CORE wxToggleBitmapButton; //----------------------------------------------------------------------------- // global data //----------------------------------------------------------------------------- extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[]; //----------------------------------------------------------------------------- // wxBitmapToggleButton //----------------------------------------------------------------------------- class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButtonBase { public: // construction/destruction wxBitmapToggleButton() {} wxBitmapToggleButton(wxWindow *parent, wxWindowID id, const wxBitmap& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxCheckBoxNameStr) { Create(parent, id, label, pos, size, style, validator, name); } // Create the control bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxCheckBoxNameStr); // Get/set the value void SetValue(bool state); bool GetValue() const; // Set the label virtual void SetLabel(const wxString& label) { wxControl::SetLabel(label); } virtual void SetLabel(const wxBitmap& label); bool Enable(bool enable = true); static wxVisualAttributes GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); // implementation wxBitmap m_bitmap; void OnSetBitmap(); protected: void GTKDisableEvents(); void GTKEnableEvents(); virtual wxSize DoGetBestSize() const; virtual void DoApplyWidgetStyle(GtkRcStyle *style); virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; private: typedef wxToggleButtonBase base_type; DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton) }; //----------------------------------------------------------------------------- // wxToggleButton //----------------------------------------------------------------------------- class WXDLLIMPEXP_CORE wxToggleButton: public wxToggleButtonBase { public: // construction/destruction wxToggleButton() {} wxToggleButton(wxWindow *parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxCheckBoxNameStr) { Create(parent, id, label, pos, size, style, validator, name); } // Create the control bool Create(wxWindow *parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxCheckBoxNameStr); // Get/set the value void SetValue(bool state); bool GetValue() const; // Set the label void SetLabel(const wxString& label); bool Enable(bool enable = true); static wxVisualAttributes GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); protected: void GTKDisableEvents(); void GTKEnableEvents(); virtual wxSize DoGetBestSize() const; virtual void DoApplyWidgetStyle(GtkRcStyle *style); virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; private: typedef wxToggleButtonBase base_type; DECLARE_DYNAMIC_CLASS(wxToggleButton) }; #endif // _WX_GTK_TOGGLEBUTTON_H_