]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/tglbtn.h
removed SetVirtualSizeHints() and related code
[wxWidgets.git] / include / wx / tglbtn.h
index e0d53e661e2c1d8d2ad61863c77520b6125908e7..228cffdd31ca12659e0debfe2eff1763d2709980 100644 (file)
@@ -7,7 +7,7 @@
 // Created:     08.02.01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 Johnny C. Norris II
 // Created:     08.02.01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 Johnny C. Norris II
-// License:     Rocketeer license
+// License:     wxWindows Licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_TOGGLEBUTTON_H_BASE_
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_TOGGLEBUTTON_H_BASE_
@@ -24,22 +24,72 @@ BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, 19)
 END_DECLARE_EVENT_TYPES()
 
     DECLARE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, 19)
 END_DECLARE_EVENT_TYPES()
 
-#define EVT_TOGGLEBUTTON(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
+// ----------------------------------------------------------------------------
+// wxToggleButtonBase
+// ----------------------------------------------------------------------------
 
 
-#if defined(__WXMSW__)
+class WXDLLEXPORT wxToggleButtonBase : public wxControl
+{
+public:
+    wxToggleButtonBase() { }
+
+    // Get/set the value
+    virtual void SetValue(bool state) = 0;
+    virtual bool GetValue() const = 0;
+
+    void UpdateWindowUI(long flags)
+    {
+        wxControl::UpdateWindowUI(flags);
+
+        if ( !IsShown() )
+            return;
+
+        wxWindow *tlw = wxGetTopLevelParent( this );
+        if (tlw && wxPendingDelete.Member( tlw ))
+           return;
+
+        wxUpdateUIEvent event( GetId() );
+        event.SetEventObject(this);
+
+        if (GetEventHandler()->ProcessEvent(event) )
+        {
+            if ( event.GetSetChecked() )
+                SetValue( event.GetChecked() );
+        }
+    }
+
+    // Buttons on MSW can look bad if they are not native colours, because
+    // then they become owner-drawn and not theme-drawn.  Disable it here
+    // in wxToggleButtonBase to make it consistent.
+    virtual bool ShouldInheritColours() const { return false; }
+
+protected:
+    // choose the default border for this window
+    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
+
+    DECLARE_NO_COPY_CLASS(wxToggleButtonBase)
+};
+
+
+#define EVT_TOGGLEBUTTON(id, fn) \
+    wx__DECLARE_EVT1(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, id, wxCommandEventHandler(fn))
+
+#if defined(__WXUNIVERSAL__)
+    #include "wx/univ/tglbtn.h"
+#elif defined(__WXMSW__)
     #include "wx/msw/tglbtn.h"
     #include "wx/msw/tglbtn.h"
-#elif defined(__WXGTK__)
+#elif defined(__WXGTK20__)
     #include "wx/gtk/tglbtn.h"
     #include "wx/gtk/tglbtn.h"
-/*
+#elif defined(__WXGTK__)
+    #include "wx/gtk1/tglbtn.h"
 # elif defined(__WXMOTIF__)
 # elif defined(__WXMOTIF__)
-#  include "wx/motif/tglbtn.h"
-# elif defined(__WXMAC__)
-#  include "wx/mac/tglbtn.h"
-# elif defined(__WXPM__)
-#  include "wx/os2/tglbtn.h"
-# elif defined(__WXSTUBS__)
-#  include "wx/stubs/tglbtn.h"
-*/
+    #include "wx/motif/tglbtn.h"
+#elif defined(__WXMAC__)
+    #include "wx/mac/tglbtn.h"
+#elif defined(__WXPALMOS__)
+    #include "wx/palmos/tglbtn.h"
+#elif defined(__WXPM__)
+    #include "wx/os2/tglbtn.h"
 #endif
 
 #endif // wxUSE_TOGGLEBTN
 #endif
 
 #endif // wxUSE_TOGGLEBTN