Improve validation of wxCheckBox styles.
Detect when incompatible styles are used (this required changing the value of wxCHK_2STATE to be non-null) and sanitize the styles (after asserting) in this case. Put the validation code in wxCheckBoxBase instead of having slightly different versions of it in port-specific wxCheckBox implementations. Add a unit test checking that the expected asserts are indeed generated. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -153,22 +153,16 @@ bool wxCheckBox::Create(wxWindow *parent,
|
||||
{
|
||||
Init();
|
||||
|
||||
WXValidateStyle(&style);
|
||||
if ( !CreateControl(parent, id, pos, size, style, validator, name) )
|
||||
return false;
|
||||
|
||||
long msStyle = WS_TABSTOP;
|
||||
|
||||
if ( style & wxCHK_3STATE )
|
||||
{
|
||||
msStyle |= BS_3STATE;
|
||||
}
|
||||
else
|
||||
{
|
||||
wxASSERT_MSG( !Is3rdStateAllowedForUser(),
|
||||
wxT("Using wxCH_ALLOW_3RD_STATE_FOR_USER")
|
||||
wxT(" style flag for a 2-state checkbox is useless") );
|
||||
msStyle |= BS_CHECKBOX;
|
||||
}
|
||||
|
||||
if ( style & wxALIGN_RIGHT )
|
||||
{
|
||||
|
Reference in New Issue
Block a user