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
This commit is contained in:
		| @@ -192,6 +192,9 @@ the corresponding feature is available and not defined at all otherwise. | |||||||
| Currently the following symbols exist: | Currently the following symbols exist: | ||||||
|  |  | ||||||
| @beginDefList | @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 | @itemdef{wxHAS_ATOMIC_OPS, Defined if wxAtomicInc() and wxAtomicDec() functions | ||||||
|     have an efficient (CPU-specific) implementation. Notice that the functions |     have an efficient (CPU-specific) implementation. Notice that the functions | ||||||
|     themselves are always available but can be prohibitively slow to use when |     themselves are always available but can be prohibitively slow to use when | ||||||
|   | |||||||
| @@ -178,6 +178,9 @@ private: | |||||||
|     wxDECLARE_NO_COPY_CLASS(wxCheckBoxBase); |     wxDECLARE_NO_COPY_CLASS(wxCheckBoxBase); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | // Most ports support 3 state checkboxes so define this by default. | ||||||
|  | #define wxHAS_3STATE_CHECKBOX | ||||||
|  |  | ||||||
| #if defined(__WXUNIVERSAL__) | #if defined(__WXUNIVERSAL__) | ||||||
|     #include "wx/univ/checkbox.h" |     #include "wx/univ/checkbox.h" | ||||||
| #elif defined(__WXMSW__) | #elif defined(__WXMSW__) | ||||||
| @@ -187,12 +190,14 @@ private: | |||||||
| #elif defined(__WXGTK20__) | #elif defined(__WXGTK20__) | ||||||
|     #include "wx/gtk/checkbox.h" |     #include "wx/gtk/checkbox.h" | ||||||
| #elif defined(__WXGTK__) | #elif defined(__WXGTK__) | ||||||
|  |     #undef wxHAS_3STATE_CHECKBOX | ||||||
|     #include "wx/gtk1/checkbox.h" |     #include "wx/gtk1/checkbox.h" | ||||||
| #elif defined(__WXMAC__) | #elif defined(__WXMAC__) | ||||||
|     #include "wx/osx/checkbox.h" |     #include "wx/osx/checkbox.h" | ||||||
| #elif defined(__WXCOCOA__) | #elif defined(__WXCOCOA__) | ||||||
|     #include "wx/cocoa/checkbox.h" |     #include "wx/cocoa/checkbox.h" | ||||||
| #elif defined(__WXPM__) | #elif defined(__WXPM__) | ||||||
|  |     #undef wxHAS_3STATE_CHECKBOX | ||||||
|     #include "wx/os2/checkbox.h" |     #include "wx/os2/checkbox.h" | ||||||
| #elif defined(__WXPALMOS__) | #elif defined(__WXPALMOS__) | ||||||
|     #include "wx/palmos/checkbox.h" |     #include "wx/palmos/checkbox.h" | ||||||
| @@ -200,5 +205,4 @@ private: | |||||||
|  |  | ||||||
| #endif // wxUSE_CHECKBOX | #endif // wxUSE_CHECKBOX | ||||||
|  |  | ||||||
| #endif | #endif // _WX_CHECKBOX_H_BASE_ | ||||||
|     // _WX_CHECKBOX_H_BASE_ |  | ||||||
|   | |||||||
| @@ -33,15 +33,19 @@ public: | |||||||
| private: | private: | ||||||
|     CPPUNIT_TEST_SUITE( CheckBoxTestCase ); |     CPPUNIT_TEST_SUITE( CheckBoxTestCase ); | ||||||
|         CPPUNIT_TEST( Check ); |         CPPUNIT_TEST( Check ); | ||||||
|  | #ifdef wxHAS_3STATE_CHECKBOX | ||||||
|         CPPUNIT_TEST( ThirdState ); |         CPPUNIT_TEST( ThirdState ); | ||||||
|         CPPUNIT_TEST( ThirdStateUser ); |         CPPUNIT_TEST( ThirdStateUser ); | ||||||
|         CPPUNIT_TEST( InvalidStyles ); |         CPPUNIT_TEST( InvalidStyles ); | ||||||
|  | #endif // wxHAS_3STATE_CHECKBOX | ||||||
|     CPPUNIT_TEST_SUITE_END(); |     CPPUNIT_TEST_SUITE_END(); | ||||||
|  |  | ||||||
|     void Check(); |     void Check(); | ||||||
|  | #ifdef wxHAS_3STATE_CHECKBOX | ||||||
|     void ThirdState(); |     void ThirdState(); | ||||||
|     void ThirdStateUser(); |     void ThirdStateUser(); | ||||||
|     void InvalidStyles(); |     void InvalidStyles(); | ||||||
|  | #endif // wxHAS_3STATE_CHECKBOX | ||||||
|  |  | ||||||
|     // Initialize m_check with a new checkbox with the specified style |     // Initialize m_check with a new checkbox with the specified style | ||||||
|     // |     // | ||||||
| @@ -107,9 +111,9 @@ void CheckBoxTestCase::Check() | |||||||
|     CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount()); |     CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount()); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #ifdef wxHAS_3STATE_CHECKBOX | ||||||
| void CheckBoxTestCase::ThirdState() | void CheckBoxTestCase::ThirdState() | ||||||
| { | { | ||||||
| #if !defined(__WXMGL__) && !defined(__WXPM__) && !defined(__WXGTK12__) |  | ||||||
|     wxDELETE(m_check); |     wxDELETE(m_check); | ||||||
|     CreateCheckBox(wxCHK_3STATE); |     CreateCheckBox(wxCHK_3STATE); | ||||||
|  |  | ||||||
| @@ -124,12 +128,10 @@ void CheckBoxTestCase::ThirdState() | |||||||
|     m_check->Set3StateValue(wxCHK_UNDETERMINED); |     m_check->Set3StateValue(wxCHK_UNDETERMINED); | ||||||
|  |  | ||||||
|     CPPUNIT_ASSERT_EQUAL(wxCHK_UNDETERMINED, m_check->Get3StateValue()); |     CPPUNIT_ASSERT_EQUAL(wxCHK_UNDETERMINED, m_check->Get3StateValue()); | ||||||
| #endif |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void CheckBoxTestCase::ThirdStateUser() | void CheckBoxTestCase::ThirdStateUser() | ||||||
| { | { | ||||||
| #if !defined(__WXMGL__) && !defined(__WXPM__) && !defined(__WXGTK12__) |  | ||||||
|     wxDELETE(m_check); |     wxDELETE(m_check); | ||||||
|     CreateCheckBox(wxCHK_3STATE | wxCHK_ALLOW_3RD_STATE_FOR_USER); |     CreateCheckBox(wxCHK_3STATE | wxCHK_ALLOW_3RD_STATE_FOR_USER); | ||||||
|  |  | ||||||
| @@ -144,7 +146,6 @@ void CheckBoxTestCase::ThirdStateUser() | |||||||
|     m_check->Set3StateValue(wxCHK_UNDETERMINED); |     m_check->Set3StateValue(wxCHK_UNDETERMINED); | ||||||
|  |  | ||||||
|     CPPUNIT_ASSERT_EQUAL(wxCHK_UNDETERMINED, m_check->Get3StateValue()); |     CPPUNIT_ASSERT_EQUAL(wxCHK_UNDETERMINED, m_check->Get3StateValue()); | ||||||
| #endif |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void CheckBoxTestCase::InvalidStyles() | void CheckBoxTestCase::InvalidStyles() | ||||||
| @@ -170,4 +171,6 @@ void CheckBoxTestCase::InvalidStyles() | |||||||
|     WX_ASSERT_FAILS_WITH_ASSERT( CreateCheckBox(wxCHK_ALLOW_3RD_STATE_FOR_USER) ); |     WX_ASSERT_FAILS_WITH_ASSERT( CreateCheckBox(wxCHK_ALLOW_3RD_STATE_FOR_USER) ); | ||||||
| } | } | ||||||
|  |  | ||||||
| #endif //wxUSE_CHECKBOX | #endif // wxHAS_3STATE_CHECKBOX | ||||||
|  |  | ||||||
|  | #endif // wxUSE_CHECKBOX | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user