+void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)
+{
+ // adjust "Page" menu selection
+ wxMenuItem *item = GetMenuBar()->FindItem(Widgets_GoToPage + event.GetSelection());
+ if (item) item->Check();
+
+ // lazy creation of the pages
+ WidgetsPage* page = CurrentPage();
+ if (page && (page->GetChildren().GetCount()==0))
+ {
+ wxWindowUpdateLocker noUpdates(page);
+ page->CreateContent();
+ WidgetsBookCtrl *book = wxStaticCast(page->GetParent(), WidgetsBookCtrl);
+ wxSize size;
+ for ( size_t i = 0; i < book->GetPageCount(); ++i )
+ {
+ wxWindow *page = book->GetPage(i);
+ if (page)
+ {
+ size.IncTo(page->GetSize());
+ }
+ }
+ page->SetSize(size);
+ }
+
+ event.Skip();
+}
+
+void WidgetsFrame::OnGoToPage(wxCommandEvent& event)
+{
+#if USE_TREEBOOK
+ m_book->SetSelection(event.GetId() - Widgets_GoToPage);
+#else
+ m_book->SetSelection(m_book->GetPageCount()-1);
+ WidgetsBookCtrl *book = wxStaticCast(m_book->GetCurrentPage(), WidgetsBookCtrl);
+ book->SetSelection(event.GetId() - Widgets_GoToPage);
+#endif
+}
+