Relax validation of wxCheckBox flags.

Changes of r65824 resulted in asserts when creating wxCheckBox with just
wxBORDER_NONE style. This is useless but used to be harmless so continue to
allow this.

Closes #12628.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-10-28 14:23:09 +00:00
parent ce0ee9aec1
commit 3a61f5db2c

View File

@@ -140,14 +140,18 @@ protected:
{ {
long& style = *stylePtr; long& style = *stylePtr;
if ( style == 0 ) if ( !(style & (wxCHK_2STATE | wxCHK_3STATE)) )
{ {
// For compatibility we use absence of style flags as wxCHK_2STATE // For compatibility we use absence of style flags as wxCHK_2STATE
// because wxCHK_2STATE used to have the value of 0 and some // because wxCHK_2STATE used to have the value of 0 and some
// existing code may use 0 instead of it. // existing code uses 0 instead of it. Moreover, some code even
style = wxCHK_2STATE; // 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 ) if ( style & wxCHK_2STATE )
{ {
@@ -158,13 +162,6 @@ protected:
} }
else // No wxCHK_3STATE 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 ) if ( style & wxCHK_ALLOW_3RD_STATE_FOR_USER )
{ {
wxFAIL_MSG( "wxCHK_ALLOW_3RD_STATE_FOR_USER doesn't make sense " wxFAIL_MSG( "wxCHK_ALLOW_3RD_STATE_FOR_USER doesn't make sense "