diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index 50087a2526..018d1200f6 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -277,6 +277,11 @@ protected: { wxFAIL_MSG(wxT("Override this function!")); } + // The derived class also may override the following method, also called + // from DoSetSelection(), to show/hide pages differently. + virtual void DoShowPage(wxWindow* page, bool show) { page->Show(show); } + + // Should we accept NULL page pointers in Add/InsertPage()? // // Default is no but derived classes may override it if they can treat NULL diff --git a/src/common/bookctrl.cpp b/src/common/bookctrl.cpp index d551d8bf2e..92846f30aa 100644 --- a/src/common/bookctrl.cpp +++ b/src/common/bookctrl.cpp @@ -476,11 +476,11 @@ int wxBookCtrlBase::DoSetSelection(size_t n, int flags) if ( !(flags & SetSelection_SendEvent) || allowed) { if ( oldSel != wxNOT_FOUND ) - m_pages[oldSel]->Hide(); + DoShowPage(m_pages[oldSel], false); wxWindow *page = m_pages[n]; page->SetSize(GetPageRect()); - page->Show(); + DoShowPage(page, true); // change selection now to ignore the selection change event UpdateSelectedPage(n);