X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/acbeb7b368483cba589ffac08906367af911d4e2..a516284f67e1910fc6dc5364b289340332d0d35f:/include/wx/gtk/tglbtn.h?ds=inline diff --git a/include/wx/gtk/tglbtn.h b/include/wx/gtk/tglbtn.h index f3ddd49404..0886c2dcc4 100644 --- a/include/wx/gtk/tglbtn.h +++ b/include/wx/gtk/tglbtn.h @@ -7,29 +7,87 @@ // Created: 08.02.01 // RCS-ID: $Id$ // Copyright: (c) 2000 Johnny C. Norris II -// License: Rocketeer license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_GTK_TOGGLEBUTTON_H_ #define _WX_GTK_TOGGLEBUTTON_H_ +#include "wx/bitmap.h" + //----------------------------------------------------------------------------- // classes //----------------------------------------------------------------------------- -class wxToggleButton; +class WXDLLIMPEXP_FWD_CORE wxToggleButton; +class WXDLLIMPEXP_FWD_CORE wxToggleBitmapButton; //----------------------------------------------------------------------------- -// global data +// wxBitmapToggleButton //----------------------------------------------------------------------------- -extern const wxChar *wxCheckBoxNameStr; +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 wxToggleButton: public wxControl +class WXDLLIMPEXP_CORE wxToggleButton: public wxToggleButtonBase { public: // construction/destruction @@ -61,19 +119,22 @@ public: // Set the label void SetLabel(const wxString& label); - bool Enable(bool enable = TRUE); + bool Enable(bool enable = true); - - // implementation - bool m_blockEvent; + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - void ApplyWidgetStyle(); - bool IsOwnGtkWindow(GdkWindow *window); +protected: + void GTKDisableEvents(); + void GTKEnableEvents(); - virtual void OnInternalIdle(); virtual wxSize DoGetBestSize() const; + virtual void DoApplyWidgetStyle(GtkRcStyle *style); + virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; private: + typedef wxToggleButtonBase base_type; + DECLARE_DYNAMIC_CLASS(wxToggleButton) };