]> git.saurik.com Git - wxWidgets.git/commitdiff
Virtualize showing/hiding the pages in wxBookCtrlBase.
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 30 Aug 2012 20:21:29 +0000 (20:21 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 30 Aug 2012 20:21:29 +0000 (20:21 +0000)
No real changes, just make it possible to change how the pages are hidden and
shown in the derived classes. This is not used by any of them yet, but will be
used by wxSimplebook soon.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/bookctrl.h
src/common/bookctrl.cpp

index 50087a252608a3042bb051708c62e3efbcf5a188..018d1200f6a99c5b6b3e42fcfa5cd9527fe08b26 100644 (file)
@@ -277,6 +277,11 @@ protected:
         { wxFAIL_MSG(wxT("Override this function!")); }
 
 
         { 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
     // Should we accept NULL page pointers in Add/InsertPage()?
     //
     // Default is no but derived classes may override it if they can treat NULL
index d551d8bf2e3fd09d7bc72bb0be113bef82e93e87..92846f30aaf5021b1c65de8670a47b7ec146528e 100644 (file)
@@ -476,11 +476,11 @@ int wxBookCtrlBase::DoSetSelection(size_t n, int flags)
         if ( !(flags & SetSelection_SendEvent) || allowed)
         {
             if ( oldSel != wxNOT_FOUND )
         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());
 
             wxWindow *page = m_pages[n];
             page->SetSize(GetPageRect());
-            page->Show();
+            DoShowPage(page, true);
 
             // change selection now to ignore the selection change event
             UpdateSelectedPage(n);
 
             // change selection now to ignore the selection change event
             UpdateSelectedPage(n);