it is not possible to show/hide the window from the UpdateUI event handler; refactored the code by moving control-specific parts into the derived classes (patch 1338350)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1992,44 +1992,13 @@ void wxWindowBase::UpdateWindowUI(long flags)
|
||||
}
|
||||
|
||||
// do the window-specific processing after processing the update event
|
||||
// TODO: take specific knowledge out of this function and
|
||||
// put in each control's base class. Unfortunately we don't
|
||||
// yet have base implementation files for wxCheckBox and wxRadioButton.
|
||||
void wxWindowBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
|
||||
{
|
||||
if ( event.GetSetEnabled() )
|
||||
Enable(event.GetEnabled());
|
||||
|
||||
#if wxUSE_CONTROLS
|
||||
if ( event.GetSetText() )
|
||||
{
|
||||
wxControl *control = wxDynamicCastThis(wxControl);
|
||||
if ( control )
|
||||
{
|
||||
if ( event.GetText() != control->GetLabel() )
|
||||
control->SetLabel(event.GetText());
|
||||
}
|
||||
}
|
||||
#endif // wxUSE_CONTROLS
|
||||
|
||||
if ( event.GetSetChecked() )
|
||||
{
|
||||
#if wxUSE_CHECKBOX
|
||||
wxCheckBox *checkbox = wxDynamicCastThis(wxCheckBox);
|
||||
if ( checkbox )
|
||||
{
|
||||
checkbox->SetValue(event.GetChecked());
|
||||
}
|
||||
#endif // wxUSE_CHECKBOX
|
||||
|
||||
#if wxUSE_RADIOBTN
|
||||
wxRadioButton *radiobtn = wxDynamicCastThis(wxRadioButton);
|
||||
if ( radiobtn )
|
||||
{
|
||||
radiobtn->SetValue(event.GetChecked());
|
||||
}
|
||||
#endif // wxUSE_RADIOBTN
|
||||
}
|
||||
if ( event.GetSetShown() )
|
||||
Show(event.GetShown());
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
Reference in New Issue
Block a user