X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/43be3c33f3b35fb72affcaa959002cc60e1c0acd..333e57d578e9e0fb6555452b5a53698ffd85ee69:/include/wx/univ/tglbtn.h?ds=sidebyside diff --git a/include/wx/univ/tglbtn.h b/include/wx/univ/tglbtn.h index 1fcdd76c7c..9b03805b52 100644 --- a/include/wx/univ/tglbtn.h +++ b/include/wx/univ/tglbtn.h @@ -12,28 +12,19 @@ #ifndef _WX_UNIV_TGLBTN_H_ #define _WX_UNIV_TGLBTN_H_ -class WXDLLEXPORT wxInputHandler; +#include "wx/button.h" -#include "wx/bitmap.h" -#include "wx/checkbox.h" - -// ---------------------------------------------------------------------------- -// the actions supported by this control -// ---------------------------------------------------------------------------- - -#define wxACTION_BUTTON_TOGGLE _T("toggle") // press/release the button -#define wxACTION_BUTTON_PRESS _T("press") // press the button -#define wxACTION_BUTTON_RELEASE _T("release") // release the button -#define wxACTION_BUTTON_CLICK _T("click") // generate button click event +extern WXDLLEXPORT_DATA(const wxChar) wxCheckBoxNameStr[]; // ---------------------------------------------------------------------------- // wxToggleButton: a push button // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxToggleButton: public wxControl +class WXDLLIMPEXP_CORE wxToggleButton: public wxButton { public: - wxToggleButton() { Init(); } + wxToggleButton(); + wxToggleButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, @@ -42,13 +33,8 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Init(); + const wxString& name = wxCheckBoxNameStr); - Create(parent, id, bitmap, label, pos, size, style, validator, name); - } - wxToggleButton(wxWindow *parent, wxWindowID id, const wxString& label = wxEmptyString, @@ -56,108 +42,29 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Init(); - - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - return Create(parent, id, wxNullBitmap, label, - pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); + const wxString& name = wxCheckBoxNameStr); virtual ~wxToggleButton(); - virtual void SetImageLabel(const wxBitmap& bitmap); - virtual void SetImageMargins(wxCoord x, wxCoord y); - virtual bool IsPressed() const { return m_isPressed || m_value; } // wxToggleButton actions - void Toggle(); - virtual void Press(); - virtual void Release(); + virtual void Toggle(); virtual void Click(); // Get/set the value void SetValue(bool state); bool GetValue() const { return m_value; } - // returns the default button size for this platform - static wxSize GetDefaultSize(); - protected: - virtual bool PerformAction(const wxControlAction& action, - long numArg = -1, - const wxString& strArg = wxEmptyString); - virtual wxSize DoGetBestClientSize() const; - - virtual bool DoDrawBackground(wxDC& dc); - virtual void DoDraw(wxControlRenderer *renderer); - - virtual bool CanBeHighlighted() const { return true; } - - // common part of all ctors - void Init(); - - // current state - is the user currently pressing the button - bool m_isPressed; - // the current value bool m_value; - // the (optional) image to show and the margins around it - wxBitmap m_bitmap; - wxCoord m_marginBmpX, - m_marginBmpY; - private: - DECLARE_DYNAMIC_CLASS(wxToggleButton) -}; -// wxStdToggleButtonInputHandler: translates SPACE and ENTER keys and the left mouse -// click into button press/release actions -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxStdToggleButtonInputHandler : public wxStdInputHandler -{ -public: - wxStdToggleButtonInputHandler(wxInputHandler *inphand); - - virtual bool HandleKey(wxInputConsumer *consumer, - const wxKeyEvent& event, - bool pressed); - virtual bool HandleMouse(wxInputConsumer *consumer, - const wxMouseEvent& event); - virtual bool HandleMouseMove(wxInputConsumer *consumer, const wxMouseEvent& event); - virtual bool HandleFocus(wxInputConsumer *consumer, const wxFocusEvent& event); - virtual bool HandleActivation(wxInputConsumer *consumer, bool activated); + // common part of all ctors + void Init(); -private: - // the window (button) which has capture or NULL and the flag telling if - // the mouse is inside the button which captured it or not - wxWindow *m_winCapture; - bool m_winHasMouse; + DECLARE_DYNAMIC_CLASS(wxToggleButton) }; #endif // _WX_UNIV_TGLBTN_H_ -