- wxMenuItem *item = GetMenuBar()->FindItem(Widgets_GoToPage + event.GetSelection());
- if (item) item->Check();
+ const int sel = event.GetSelection();
+
+ // adjust "Page" menu selection
+ wxMenuItem *item = GetMenuBar()->FindItem(Widgets_GoToPage + sel);
+ if ( item )
+ item->Check();
+
+ GetMenuBar()->Check(Widgets_BusyCursor, false);
+
+ // lazy creation of the pages
+ WidgetsPage *page = CurrentPage();
+ if ( page->GetChildren().empty() )
+ {
+ 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);
+ }
+