]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxHAS_3STATE_CHECKBOX symbol.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 16 Oct 2010 18:10:51 +0000 (18:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 16 Oct 2010 18:10:51 +0000 (18:10 +0000)
This symbol is defined for the ports that support wxCHK_3STATE style. While
most of the ports do support it, a couple still do not and having this symbol
makes it more convenient to exclude 3-state-checkbox-specific code, like in
CheckBoxTestCase.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/doxygen/mainpages/const_cpp.h
include/wx/checkbox.h
tests/controls/checkboxtest.cpp

index 3be48c355577e8895deb1685503d67c7159340af..1344f7c50ad2e0f96a2097dcaab65bd9c1e1d9f0 100644 (file)
@@ -192,6 +192,9 @@ the corresponding feature is available and not defined at all otherwise.
 Currently the following symbols exist:
 
 @beginDefList
+@itemdef{wxHAS_3STATE_CHECKBOX, Defined if wxCheckBox supports wxCHK_3STATE
+    flag, i.e. is capable of showing three states and not only the usual two.
+    Currently defined for almost all ports.}
 @itemdef{wxHAS_ATOMIC_OPS, Defined if wxAtomicInc() and wxAtomicDec() functions
     have an efficient (CPU-specific) implementation. Notice that the functions
     themselves are always available but can be prohibitively slow to use when
index 342db830cf57130e9e286ec5f3575d8fcfa776a8..d17a5b60d1dbdcc62242dc4074c81207dc76d698 100644 (file)
@@ -178,6 +178,9 @@ private:
     wxDECLARE_NO_COPY_CLASS(wxCheckBoxBase);
 };
 
+// Most ports support 3 state checkboxes so define this by default.
+#define wxHAS_3STATE_CHECKBOX
+
 #if defined(__WXUNIVERSAL__)
     #include "wx/univ/checkbox.h"
 #elif defined(__WXMSW__)
@@ -187,12 +190,14 @@ private:
 #elif defined(__WXGTK20__)
     #include "wx/gtk/checkbox.h"
 #elif defined(__WXGTK__)
+    #undef wxHAS_3STATE_CHECKBOX
     #include "wx/gtk1/checkbox.h"
 #elif defined(__WXMAC__)
     #include "wx/osx/checkbox.h"
 #elif defined(__WXCOCOA__)
     #include "wx/cocoa/checkbox.h"
 #elif defined(__WXPM__)
+    #undef wxHAS_3STATE_CHECKBOX
     #include "wx/os2/checkbox.h"
 #elif defined(__WXPALMOS__)
     #include "wx/palmos/checkbox.h"
@@ -200,5 +205,4 @@ private:
 
 #endif // wxUSE_CHECKBOX
 
-#endif
-    // _WX_CHECKBOX_H_BASE_
+#endif // _WX_CHECKBOX_H_BASE_
index 359d544d1856f5e45ae7d7320eb6cc10635edf33..4585ee6125796dfcfc055bc07510e14fa7256b87 100644 (file)
@@ -33,15 +33,19 @@ public:
 private:
     CPPUNIT_TEST_SUITE( CheckBoxTestCase );
         CPPUNIT_TEST( Check );
+#ifdef wxHAS_3STATE_CHECKBOX
         CPPUNIT_TEST( ThirdState );
         CPPUNIT_TEST( ThirdStateUser );
         CPPUNIT_TEST( InvalidStyles );
+#endif // wxHAS_3STATE_CHECKBOX
     CPPUNIT_TEST_SUITE_END();
 
     void Check();
+#ifdef wxHAS_3STATE_CHECKBOX
     void ThirdState();
     void ThirdStateUser();
     void InvalidStyles();
+#endif // wxHAS_3STATE_CHECKBOX
 
     // Initialize m_check with a new checkbox with the specified style
     //
@@ -107,9 +111,9 @@ void CheckBoxTestCase::Check()
     CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount());
 }
 
+#ifdef wxHAS_3STATE_CHECKBOX
 void CheckBoxTestCase::ThirdState()
 {
-#if !defined(__WXMGL__) && !defined(__WXPM__) && !defined(__WXGTK12__)
     wxDELETE(m_check);
     CreateCheckBox(wxCHK_3STATE);
 
@@ -124,12 +128,10 @@ void CheckBoxTestCase::ThirdState()
     m_check->Set3StateValue(wxCHK_UNDETERMINED);
 
     CPPUNIT_ASSERT_EQUAL(wxCHK_UNDETERMINED, m_check->Get3StateValue());
-#endif
 }
 
 void CheckBoxTestCase::ThirdStateUser()
 {
-#if !defined(__WXMGL__) && !defined(__WXPM__) && !defined(__WXGTK12__)
     wxDELETE(m_check);
     CreateCheckBox(wxCHK_3STATE | wxCHK_ALLOW_3RD_STATE_FOR_USER);
 
@@ -144,7 +146,6 @@ void CheckBoxTestCase::ThirdStateUser()
     m_check->Set3StateValue(wxCHK_UNDETERMINED);
 
     CPPUNIT_ASSERT_EQUAL(wxCHK_UNDETERMINED, m_check->Get3StateValue());
-#endif
 }
 
 void CheckBoxTestCase::InvalidStyles()
@@ -170,4 +171,6 @@ void CheckBoxTestCase::InvalidStyles()
     WX_ASSERT_FAILS_WITH_ASSERT( CreateCheckBox(wxCHK_ALLOW_3RD_STATE_FOR_USER) );
 }
 
-#endif //wxUSE_CHECKBOX
+#endif // wxHAS_3STATE_CHECKBOX
+
+#endif // wxUSE_CHECKBOX