]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/tglbtn.h
Implement HasSelection for the OSX WebKit backend.
[wxWidgets.git] / include / wx / msw / tglbtn.h
index cc01baf6de47c53a42c66870cd0adb9557449d71..2050ced6dbf69df860dfef4eb5d182e5862ca903 100644 (file)
 
 #include "wx/bitmap.h"
 
-extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[];
-
-//-----------------------------------------------------------------------------
-// wxBitmapToggleButton
-//-----------------------------------------------------------------------------
-
-
-class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButtonBase
+// Checkbox item (single checkbox)
+class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase
 {
 public:
-    // construction/destruction
-    wxBitmapToggleButton() { Init(); }
-    wxBitmapToggleButton(wxWindow *parent,
+    wxToggleButton() { Init(); }
+    wxToggleButton(wxWindow *parent,
                    wxWindowID id,
-                   const wxBitmap& label,
+                   const wxString& label,
                    const wxPoint& pos = wxDefaultPosition,
                    const wxSize& size = wxDefaultSize,
                    long style = 0,
@@ -39,52 +32,53 @@ public:
         Create(parent, id, label, pos, size, style, validator, name);
     }
 
-    // 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 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;
+    virtual void SetValue(bool value);
+    virtual 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);
+    virtual bool MSWCommand(WXUINT param, WXWORD id);
+    virtual void Command(wxCommandEvent& event);
+
+    virtual State GetNormalState() const;
+
+    // returns true if the platform should explicitly apply a theme border
+    virtual bool CanApplyThemeBorder() const { return false; }
 
 protected:
-    void Init();
+    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
 
-    wxBitmap  m_bitmap;
-    wxBitmap  m_disabledBitmap;
-    bool      m_capturing;
-    bool      m_depressed,m_oldValue;
+    virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
 
-    void OnPaint(wxPaintEvent &event);
-    void OnMouse(wxMouseEvent &event);
-    void OnChar(wxKeyEvent &event);
-    void OnSize(wxSizeEvent &event);
+    void Init();
 
-    virtual wxSize DoGetBestSize() const;
+    // current state of the button (when owner-drawn)
+    bool m_state;
 
 private:
-    DECLARE_EVENT_TABLE()
-    DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton)
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton)
 };
 
-// Checkbox item (single checkbox)
-class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase
+//-----------------------------------------------------------------------------
+// wxBitmapToggleButton
+//-----------------------------------------------------------------------------
+
+
+class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButton
 {
 public:
-    wxToggleButton() {}
-    wxToggleButton(wxWindow *parent,
+    // construction/destruction
+    wxBitmapToggleButton() {}
+    wxBitmapToggleButton(wxWindow *parent,
                    wxWindowID id,
-                   const wxString& label,
+                   const wxBitmap& label,
                    const wxPoint& pos = wxDefaultPosition,
                    const wxSize& size = wxDefaultSize,
                    long style = 0,
@@ -94,34 +88,23 @@ public:
         Create(parent, id, label, pos, size, style, validator, name);
     }
 
+    // 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 wxSize& size = wxDefaultSize, long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxCheckBoxNameStr);
 
-    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);
-
-    // 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 WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) 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_NO_COPY(wxToggleButton)
+    DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton)
 };
 
 #endif // _WX_TOGGLEBUTTON_H_