// 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_
// classes
//-----------------------------------------------------------------------------
-class wxToggleButton;
-class wxToggleBitmapButton;
+class WXDLLIMPEXP_FWD_CORE wxToggleButton;
+class WXDLLIMPEXP_FWD_CORE wxToggleBitmapButton;
//-----------------------------------------------------------------------------
-// global data
-//-----------------------------------------------------------------------------
-
-extern const wxChar *wxCheckBoxNameStr;
-
-//-----------------------------------------------------------------------------
-// wxToggleBitmapButton
+// wxToggleButton
//-----------------------------------------------------------------------------
-class wxToggleBitmapButton: public wxControl
+class WXDLLIMPEXP_CORE wxToggleButton: public wxToggleButtonBase
{
public:
// construction/destruction
- wxToggleBitmapButton() {}
- wxToggleBitmapButton(wxWindow *parent,
+ wxToggleButton() {}
+ wxToggleButton(wxWindow *parent,
wxWindowID id,
- const wxBitmap& label,
+ const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
// Create the control
bool Create(wxWindow *parent,
wxWindowID id,
- const wxBitmap& label,
+ const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const wxValidator& validator = wxDefaultValidator,
bool GetValue() const;
// Set the label
- void SetLabel(const wxBitmap& label);
- bool Enable(bool enable = TRUE);
+ void SetLabel(const wxString& label);
-
- // implementation
- bool m_blockEvent;
- wxBitmap m_bitmap;
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
- void OnSetBitmap();
- void ApplyWidgetStyle();
- bool IsOwnGtkWindow(GdkWindow *window);
+protected:
+ void GTKDisableEvents();
+ void GTKEnableEvents();
- virtual void OnInternalIdle();
virtual wxSize DoGetBestSize() const;
+ virtual void DoApplyWidgetStyle(GtkRcStyle *style);
+
+#if wxUSE_MARKUP
+ virtual bool DoSetLabelMarkup(const wxString& markup);
+#endif // wxUSE_MARKUP
private:
- DECLARE_DYNAMIC_CLASS(wxToggleBitmapButton)
+ typedef wxToggleButtonBase base_type;
+
+ // Return the GtkLabel used by this toggle button.
+ GtkLabel *GTKGetLabel() const;
+
+ DECLARE_DYNAMIC_CLASS(wxToggleButton)
};
+
//-----------------------------------------------------------------------------
-// wxToggleButton
+// wxBitmapToggleButton
//-----------------------------------------------------------------------------
-class wxToggleButton: public wxControl
+class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButton
{
public:
// construction/destruction
- wxToggleButton() {}
- wxToggleButton(wxWindow *parent,
+ wxBitmapToggleButton() {}
+ wxBitmapToggleButton(wxWindow *parent,
wxWindowID id,
- const wxString& label,
+ const wxBitmap& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
// Create the control
bool Create(wxWindow *parent,
wxWindowID id,
- const wxString& label,
+ 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
- void SetLabel(const wxString& label);
- bool Enable(bool enable = TRUE);
-
-
- // implementation
- bool m_blockEvent;
-
- void ApplyWidgetStyle();
- bool IsOwnGtkWindow(GdkWindow *window);
-
- virtual void OnInternalIdle();
- virtual wxSize DoGetBestSize() const;
+ // deprecated synonym for SetBitmapLabel()
+ wxDEPRECATED_INLINE( void SetLabel(const wxBitmap& bitmap),
+ SetBitmapLabel(bitmap); )
+ // prevent virtual function hiding
+ virtual void SetLabel(const wxString& label) { wxToggleButton::SetLabel(label); }
private:
- DECLARE_DYNAMIC_CLASS(wxToggleButton)
+ typedef wxToggleButtonBase base_type;
+
+ DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton)
};
#endif // _WX_GTK_TOGGLEBUTTON_H_