]> git.saurik.com Git - wxWidgets.git/commitdiff
Connect changed page event after subpages are created so book->SetSelection does...
authorWłodzimierz Skiba <abx@abx.art.pl>
Wed, 4 Oct 2006 09:38:56 +0000 (09:38 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Wed, 4 Oct 2006 09:38:56 +0000 (09:38 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/widgets/widgets.cpp
samples/widgets/widgets.h

index 440cbcf32e10bac5a98a81f516c17abe8edfd8d7..4c16ebb83c76cd73b06227e98abf1b6ce1693d21 100644 (file)
@@ -270,7 +270,6 @@ BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame)
 
 #if wxUSE_MENUS
     EVT_WIDGETS_PAGE_CHANGING(wxID_ANY, WidgetsFrame::OnPageChanging)
 
 #if wxUSE_MENUS
     EVT_WIDGETS_PAGE_CHANGING(wxID_ANY, WidgetsFrame::OnPageChanging)
-    EVT_WIDGETS_PAGE_CHANGED(wxID_ANY, WidgetsFrame::OnPageChanged)
     EVT_MENU_RANGE(Widgets_GoToPage, Widgets_GoToPageLast,
                    WidgetsFrame::OnGoToPage)
 
     EVT_MENU_RANGE(Widgets_GoToPage, Widgets_GoToPageLast,
                    WidgetsFrame::OnGoToPage)
 
@@ -571,6 +570,10 @@ void WidgetsFrame::InitBook()
         }
     }
 
         }
     }
 
+    Connect( wxID_ANY,
+             wxEVT_COMMAND_WIDGETS_PAGE_CHANGED,
+             wxWidgetsbookEventHandler(WidgetsFrame::OnPageChanged) );
+
 #if USE_TREEBOOK
     // for treebook page #0 is empty parent page only so select the first page
     // with some contents
 #if USE_TREEBOOK
     // for treebook page #0 is empty parent page only so select the first page
     // with some contents
@@ -581,6 +584,11 @@ void WidgetsFrame::InitBook()
 
     wxTreeItemIdValue cookie;
     tree->EnsureVisible(tree->GetFirstChild(tree->GetRootItem(), cookie));
 
     wxTreeItemIdValue cookie;
     tree->EnsureVisible(tree->GetFirstChild(tree->GetRootItem(), cookie));
+#else
+    // for other books set selection twice to force connected event handler
+    // to force lazy creation of initial visible content
+    m_book->SetSelection(1);
+    m_book->SetSelection(0);
 #endif // USE_TREEBOOK
 }
 
 #endif // USE_TREEBOOK
 }
 
@@ -625,8 +633,11 @@ void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
 
 void WidgetsFrame::OnPageChanging(WidgetsBookCtrlEvent& event)
 {
 
 void WidgetsFrame::OnPageChanging(WidgetsBookCtrlEvent& event)
 {
+#if USE_TREEBOOK
+    // don't allow selection of entries without pages (categories)
     if ( !m_book->GetPage(event.GetSelection()) )
         event.Veto();
     if ( !m_book->GetPage(event.GetSelection()) )
         event.Veto();
+#endif
 }
 
 void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)
 }
 
 void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)
index 56a6ebfd923df13d65e13f08202000b733a00bc8..7f077cfb5404543d1a5a33e0f47e514412914c1f 100644 (file)
     #define WidgetsBookCtrl wxTreebook
     #define WidgetsBookCtrlEvent wxTreebookEvent
     #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_TREEBOOK_PAGE_CHANGING(id,func)
     #define WidgetsBookCtrl wxTreebook
     #define WidgetsBookCtrlEvent wxTreebookEvent
     #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_TREEBOOK_PAGE_CHANGING(id,func)
-    #define EVT_WIDGETS_PAGE_CHANGED(id,func) EVT_TREEBOOK_PAGE_CHANGED(id,func)
+    #define wxEVT_COMMAND_WIDGETS_PAGE_CHANGED wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED
+    #define wxWidgetsbookEventHandler(func) wxTreebookEventHandler(func)
 #else
     #include "wx/bookctrl.h"
     #define USE_TREEBOOK 0
     #define WidgetsBookCtrl wxBookCtrl
     #define WidgetsBookCtrlEvent wxBookCtrlEvent
     #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_BOOKCTRL_PAGE_CHANGING(id,func)
 #else
     #include "wx/bookctrl.h"
     #define USE_TREEBOOK 0
     #define WidgetsBookCtrl wxBookCtrl
     #define WidgetsBookCtrlEvent wxBookCtrlEvent
     #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_BOOKCTRL_PAGE_CHANGING(id,func)
-    #define EVT_WIDGETS_PAGE_CHANGED(id,func) EVT_BOOKCTRL_PAGE_CHANGED(id,func)
+    #define wxEVT_COMMAND_WIDGETS_PAGE_CHANGED wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED
+    #define wxWidgetsbookEventHandler(func) wxBookctrlEventHandler(func)
 #endif
 
 #if wxUSE_LOG && !defined(__WXHANDHELD__)
 #endif
 
 #if wxUSE_LOG && !defined(__WXHANDHELD__)