Update wxBookCtrlBase::m_selection outside UpdateSelectedPage()

Change m_selection in wxBookCtrlBase::DoSetSelection() itself instead of
requiring all the derived class overriding do it in their overridden
UpdateSelectedPage().

No real changes, this is just a small simplification.
This commit is contained in:
Vadim Zeitlin
2018-03-25 00:07:00 +01:00
parent a3d0748a76
commit af6a61e3a0
5 changed files with 5 additions and 6 deletions

View File

@@ -86,8 +86,7 @@ protected:
void UpdateSelectedPage(size_t newsel) wxOVERRIDE void UpdateSelectedPage(size_t newsel) wxOVERRIDE
{ {
m_selection = static_cast<int>(newsel); GetChoiceCtrl()->Select(newsel);
GetChoiceCtrl()->Select(m_selection);
} }
wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE; wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE;

View File

@@ -155,9 +155,10 @@ public:
} }
protected: protected:
virtual void UpdateSelectedPage(size_t newsel) wxOVERRIDE virtual void UpdateSelectedPage(size_t WXUNUSED(newsel)) wxOVERRIDE
{ {
m_selection = (int)newsel; // Nothing to do here, but must be overridden to avoid the assert in
// the base class version.
} }
virtual wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE virtual wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE

View File

@@ -500,6 +500,7 @@ int wxBookCtrlBase::DoSetSelection(size_t n, int flags)
DoShowPage(page, true); DoShowPage(page, true);
// change selection now to ignore the selection change event // change selection now to ignore the selection change event
m_selection = n;
UpdateSelectedPage(n); UpdateSelectedPage(n);
if ( flags & SetSelection_SendEvent ) if ( flags & SetSelection_SendEvent )

View File

@@ -293,7 +293,6 @@ void wxListbook::SetImageList(wxImageList *imageList)
void wxListbook::UpdateSelectedPage(size_t newsel) void wxListbook::UpdateSelectedPage(size_t newsel)
{ {
m_selection = newsel;
GetListView()->Select(newsel); GetListView()->Select(newsel);
GetListView()->Focus(newsel); GetListView()->Focus(newsel);
} }

View File

@@ -197,7 +197,6 @@ void wxToolbook::MakeChangedEvent(wxBookCtrlEvent &event)
void wxToolbook::UpdateSelectedPage(size_t newsel) void wxToolbook::UpdateSelectedPage(size_t newsel)
{ {
m_selection = newsel;
GetToolBar()->ToggleTool(newsel + 1, true); GetToolBar()->ToggleTool(newsel + 1, true);
} }