From: Vadim Zeitlin Date: Sat, 16 Oct 2010 18:10:51 +0000 (+0000) Subject: Add wxHAS_3STATE_CHECKBOX symbol. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/817b7b0e87589927983d8723ea2ad3faabbdebd3 Add wxHAS_3STATE_CHECKBOX symbol. 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 --- diff --git a/docs/doxygen/mainpages/const_cpp.h b/docs/doxygen/mainpages/const_cpp.h index 3be48c3555..1344f7c50a 100644 --- a/docs/doxygen/mainpages/const_cpp.h +++ b/docs/doxygen/mainpages/const_cpp.h @@ -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 diff --git a/include/wx/checkbox.h b/include/wx/checkbox.h index 342db830cf..d17a5b60d1 100644 --- a/include/wx/checkbox.h +++ b/include/wx/checkbox.h @@ -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_ diff --git a/tests/controls/checkboxtest.cpp b/tests/controls/checkboxtest.cpp index 359d544d18..4585ee6125 100644 --- a/tests/controls/checkboxtest.cpp +++ b/tests/controls/checkboxtest.cpp @@ -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