X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/93212feea0253b0216a72b0f0045a98bbb73f98f..ffb1629fba05ba7639b766e7fb6dd21464167eeb:/src/msw/radiobut.cpp diff --git a/src/msw/radiobut.cpp b/src/msw/radiobut.cpp index c596f07af5..2b3b4925cc 100644 --- a/src/msw/radiobut.cpp +++ b/src/msw/radiobut.cpp @@ -59,7 +59,7 @@ wxBEGIN_FLAGS( wxRadioButtonStyle ) wxFLAGS_MEMBER(wxBORDER_RAISED) wxFLAGS_MEMBER(wxBORDER_STATIC) wxFLAGS_MEMBER(wxBORDER_NONE) - + // old style border flags wxFLAGS_MEMBER(wxSIMPLE_BORDER) wxFLAGS_MEMBER(wxSUNKEN_BORDER) @@ -95,7 +95,7 @@ wxEND_PROPERTIES_TABLE() wxBEGIN_HANDLERS_TABLE(wxRadioButton) wxEND_HANDLERS_TABLE() -wxCONSTRUCTOR_6( wxRadioButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle ) +wxCONSTRUCTOR_6( wxRadioButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle ) #else IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) @@ -182,20 +182,22 @@ void wxRadioButton::SetValue(bool value) { wxRadioButton *btn = wxDynamicCast(nodeBefore->GetData(), wxRadioButton); - if ( !btn ) + if ( btn && btn->HasFlag(wxRB_SINGLE) ) { - // the radio buttons in a group must be consecutive, so - // there are no more of them + // A wxRB_SINGLE button isn't part of this group break; } - - btn->SetValue(false); - - if ( btn->HasFlag(wxRB_GROUP) ) + + if (btn) { - // even if there are other radio buttons before this one, - // they're not in the same group with us - break; + btn->SetValue(false); + + if ( btn->HasFlag(wxRB_GROUP) ) + { + // even if there are other radio buttons before this one, + // they're not in the same group with us + break; + } } } } @@ -208,13 +210,14 @@ void wxRadioButton::SetValue(bool value) wxRadioButton *btn = wxDynamicCast(nodeAfter->GetData(), wxRadioButton); - if ( !btn || btn->HasFlag(wxRB_GROUP) ) + if ( btn && (btn->HasFlag(wxRB_GROUP) || btn->HasFlag(wxRB_SINGLE) ) ) { // no more buttons or the first button of the next group break; } - btn->SetValue(false); + if (btn) + btn->SetValue(false); } } }