X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f02a879ed7efc5fcf6328ff47a1352ec82812b7..d0960f6d3be27a47c2f4ba14542af6902c7e9ac7:/include/wx/msw/tglbtn.h?ds=sidebyside diff --git a/include/wx/msw/tglbtn.h b/include/wx/msw/tglbtn.h index a6dc795486..b155af512b 100644 --- a/include/wx/msw/tglbtn.h +++ b/include/wx/msw/tglbtn.h @@ -13,10 +13,72 @@ #ifndef _WX_TOGGLEBUTTON_H_ #define _WX_TOGGLEBUTTON_H_ -extern WXDLLEXPORT_DATA(const wxChar) wxCheckBoxNameStr[]; +#include "wx/bitmap.h" + +extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[]; + +//----------------------------------------------------------------------------- +// wxBitmapToggleButton +//----------------------------------------------------------------------------- + + +class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButtonBase +{ +public: + // construction/destruction + wxBitmapToggleButton() { Init(); } + 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); + +protected: + void Init(); + + wxBitmap m_bitmap; + wxBitmap m_disabledBitmap; + bool m_capturing; + bool m_depressed,m_oldValue; + + void OnPaint(wxPaintEvent &event); + void OnMouse(wxMouseEvent &event); + void OnChar(wxKeyEvent &event); + void OnSize(wxSizeEvent &event); + + virtual wxSize DoGetBestSize() const; + +private: + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton) +}; // Checkbox item (single checkbox) -class WXDLLEXPORT wxToggleButton : public wxControl +class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase { public: wxToggleButton() {} @@ -44,13 +106,19 @@ public: virtual void SetValue(bool value); virtual bool GetValue() const ; + virtual void SetLabel(const wxString& label); + virtual bool MSWCommand(WXUINT param, WXWORD id); virtual void Command(wxCommandEvent& event); - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; + + // returns true if the platform should explicitly apply a theme border + virtual bool CanApplyThemeBorder() const { return false; } protected: + virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } virtual wxSize DoGetBestSize() const; - virtual wxBorder GetDefaultBorder() const; + + virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; private: DECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton)