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:
Vadim Zeitlin
2010-10-16 18:10:51 +00:00
parent f254e2424a
commit 817b7b0e87
3 changed files with 17 additions and 7 deletions

View 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

View 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_

View 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