]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/checkbox.h
only declare AddProcessCallback for wxMotif and wxGTK
[wxWidgets.git] / include / wx / univ / checkbox.h
index 4bca3be985ead9b7c39df14a33e41d6b97aa6a37..aaa1dee61606f5dbd28fdeaeee80ea67a481be1e 100644 (file)
 #ifndef _WX_UNIV_CHECKBOX_H_
 #define _WX_UNIV_CHECKBOX_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma interface "univcheckbox.h"
-#endif
-
 #include "wx/button.h" // for wxStdButtonInputHandler
 
 // ----------------------------------------------------------------------------
 // the actions supported by wxCheckBox
 // ----------------------------------------------------------------------------
 
-#define wxACTION_CHECKBOX_CHECK   _T("check")   // SetValue(TRUE)
-#define wxACTION_CHECKBOX_CLEAR   _T("clear")   // SetValue(FALSE)
+#define wxACTION_CHECKBOX_CHECK   _T("check")   // SetValue(true)
+#define wxACTION_CHECKBOX_CLEAR   _T("clear")   // SetValue(false)
 #define wxACTION_CHECKBOX_TOGGLE  _T("toggle")  // toggle the check state
 
 // additionally it accepts wxACTION_BUTTON_PRESS and RELEASE
 // wxCheckBox
 // ----------------------------------------------------------------------------
 
-// X11 headers may define this
-#ifdef Status
-#undef Status
-#endif
-
-class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase
+class WXDLLIMPEXP_CORE wxCheckBox : public wxCheckBoxBase
 {
 public:
     // checkbox constants
@@ -54,12 +45,12 @@ public:
     {
         Status_Checked,
         Status_Unchecked,
-        Status_Unknown,
+        Status_3rdState,
         Status_Max
     };
 
     // constructors
-    wxCheckBox();
+    wxCheckBox() { Init(); }
 
     wxCheckBox(wxWindow *parent,
                wxWindowID id,
@@ -68,7 +59,12 @@ public:
                const wxSize& size = wxDefaultSize,
                long style = 0,
                const wxValidator& validator = wxDefaultValidator,
-               const wxString& name = wxCheckBoxNameStr);
+               const wxString& name = wxCheckBoxNameStr)
+    {
+        Init();
+
+        Create(parent, id, label, pos, size, style, validator, name);
+    }
 
     bool Create(wxWindow *parent,
                 wxWindowID id,
@@ -96,17 +92,24 @@ public:
     // overridden base class virtuals
     virtual bool IsPressed() const { return m_isPressed; }
 
-    virtual bool HasTransparentBackground() { return TRUE; }
-    
-protected:
     virtual bool PerformAction(const wxControlAction& action,
                                long numArg = -1,
                                const wxString& strArg = wxEmptyString);
+
+    virtual bool CanBeHighlighted() const { return true; }
+    virtual wxInputHandler *CreateStdInputHandler(wxInputHandler *handlerDef);
+    virtual wxInputHandler *DoGetStdInputHandler(wxInputHandler *handlerDef)
+    {
+        return CreateStdInputHandler(handlerDef);
+    }
+
+protected:
+    virtual void DoSet3StateValue(wxCheckBoxState WXUNUSED(state));
+    virtual wxCheckBoxState DoGet3StateValue() const;
+
     virtual void DoDraw(wxControlRenderer *renderer);
     virtual wxSize DoGetBestClientSize() const;
 
-    virtual bool CanBeHighlighted() const { return TRUE; }
-
     // get the size of the bitmap using either the current one or the default
     // one (query renderer then)
     virtual wxSize GetBitmapSize() const;
@@ -144,20 +147,4 @@ private:
     DECLARE_DYNAMIC_CLASS(wxCheckBox)
 };
 
-// ----------------------------------------------------------------------------
-// wxStdCheckboxInputHandler: handles the mouse events for the check and radio
-// boxes (handling the keyboard input is simple, but its handling differs a
-// lot between GTK and MSW, so a new class should be derived for this)
-// ----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxStdCheckboxInputHandler : public wxStdButtonInputHandler
-{
-public:
-    wxStdCheckboxInputHandler(wxInputHandler *inphand);
-
-    // we have to override this one as wxStdButtonInputHandler version works
-    // only with the buttons
-    virtual bool HandleActivation(wxInputConsumer *consumer, bool activated);
-};
-
 #endif // _WX_UNIV_CHECKBOX_H_