From 3a61f5db2c1292d1f6cbfc5bff1edfbdf7b1fc99 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 28 Oct 2010 14:23:09 +0000 Subject: [PATCH] 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 --- include/wx/checkbox.h | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/include/wx/checkbox.h b/include/wx/checkbox.h index d17a5b60d1..6177aeb5d4 100644 --- a/include/wx/checkbox.h +++ b/include/wx/checkbox.h @@ -140,14 +140,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 +162,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 " -- 2.45.2