]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/checkbox.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / univ / checkbox.h
index 05bf1d14aeca497faecbad51f1d54869e4536109..8e12d7effab58d4ecace0e1ae967c1934aa880e2 100644 (file)
@@ -5,26 +5,22 @@
 // Modified by:
 // Created:     07.09.00
 // RCS-ID:      $Id$
-// Copyright:   (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_UNIV_CHECKBOX_H_
 #define _WX_UNIV_CHECKBOX_H_
 
-#ifdef __GNUG__
-    #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_TOGGLE  _T("toggle")  // toggle the check state
+#define wxACTION_CHECKBOX_CHECK   wxT("check")   // SetValue(true)
+#define wxACTION_CHECKBOX_CLEAR   wxT("clear")   // SetValue(false)
+#define wxACTION_CHECKBOX_TOGGLE  wxT("toggle")  // toggle the check state
 
 // additionally it accepts wxACTION_BUTTON_PRESS and RELEASE
 
@@ -32,7 +28,7 @@
 // wxCheckBox
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase
+class WXDLLIMPEXP_CORE wxCheckBox : public wxCheckBoxBase
 {
 public:
     // checkbox constants
@@ -49,7 +45,7 @@ public:
     {
         Status_Checked,
         Status_Unchecked,
-        Status_Unknown,
+        Status_3rdState,
         Status_Max
     };
 
@@ -96,15 +92,24 @@ public:
     // overridden base class virtuals
     virtual bool IsPressed() const { return m_isPressed; }
 
-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;
@@ -142,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(wxControl *control, bool activated);
-};
-
 #endif // _WX_UNIV_CHECKBOX_H_