*/
#define wxCHK_ALLOW_3RD_STATE_FOR_USER 0x2000
-/*
- * The possible states of a 3-state checkbox (Compatible
- * with the 2-state checkbox).
- */
-enum wxCheckBoxState
-{
- wxCHK_UNCHECKED,
- wxCHK_CHECKED,
- wxCHK_UNDETERMINED /* 3-state checkbox only */
-};
-
-
extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[];
// ----------------------------------------------------------------------------
{
long& style = *stylePtr;
- if ( style == 0 )
+ if ( !(style & (wxCHK_2STATE | wxCHK_3STATE)) )
{
// For compatibility we use absence of style flags as wxCHK_2STATE
// because wxCHK_2STATE used to have the value of 0 and some
- // existing code may use 0 instead of it.
- style = wxCHK_2STATE;
+ // existing code uses 0 instead of it. Moreover, some code even
+ // uses some non-0 style, e.g. wxBORDER_XXX, but doesn't specify
+ // neither wxCHK_2STATE nor wxCHK_3STATE -- to avoid breaking it,
+ // assume (much more common) 2 state checkbox by default.
+ style |= wxCHK_2STATE;
}
- else if ( style & wxCHK_3STATE )
+
+ if ( style & wxCHK_3STATE )
{
if ( style & wxCHK_2STATE )
{
}
else // No wxCHK_3STATE
{
- if ( !(style & wxCHK_2STATE) )
- {
- wxFAIL_MSG( "Either wxCHK_2STATE or wxCHK_3STATE must be "
- "specified" );
- style |= wxCHK_2STATE;
- }
-
if ( style & wxCHK_ALLOW_3RD_STATE_FOR_USER )
{
wxFAIL_MSG( "wxCHK_ALLOW_3RD_STATE_FOR_USER doesn't make sense "
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__)
#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"
#endif // wxUSE_CHECKBOX
-#endif
- // _WX_CHECKBOX_H_BASE_
+#endif // _WX_CHECKBOX_H_BASE_