]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/widgets.cpp
Forgot to remove wxBackingFile from the changes.txt. It was kept internal
[wxWidgets.git] / samples / widgets / widgets.cpp
index 3e17c1ae5e6b94ef67254108a12e1a824ef68ed5..510cdbc6589f8a01aaf52bc97daeb95f5c02865d 100644 (file)
@@ -270,7 +270,6 @@ BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame)
 
 #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)
 
@@ -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
@@ -578,7 +581,14 @@ void WidgetsFrame::InitBook()
 
     // but ensure that the top of the tree is shown nevertheless
     wxTreeCtrl * const tree = m_book->GetTreeCtrl();
-    tree->EnsureVisible(tree->GetRootItem());
+
+    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
 }
 
@@ -623,8 +633,13 @@ void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(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();
+#else
+    wxUnusedVar(event);
+#endif
 }
 
 void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)