X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f254e2424a5220e559e48205ace1114ea3e87f3f..033f86db5f422700eda6284ab338e84168bbba44:/include/wx/checkbox.h diff --git a/include/wx/checkbox.h b/include/wx/checkbox.h index 342db830cf..acd8c5c9d4 100644 --- a/include/wx/checkbox.h +++ b/include/wx/checkbox.h @@ -41,18 +41,6 @@ */ #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[]; // ---------------------------------------------------------------------------- @@ -140,14 +128,18 @@ protected: { 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 ) { @@ -158,13 +150,6 @@ protected: } 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 " @@ -178,6 +163,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,18 +175,17 @@ 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" #endif #endif // wxUSE_CHECKBOX -#endif - // _WX_CHECKBOX_H_BASE_ +#endif // _WX_CHECKBOX_H_BASE_