Connect changed page event after subpages are created so book->SetSelection does not cause any lazy creation and non-treebook-based build does not crash.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba
2006-10-04 09:38:56 +00:00
parent f41cf3716e
commit 0cebbfc2bd
2 changed files with 16 additions and 3 deletions

View 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
@@ -581,6 +584,11 @@ void WidgetsFrame::InitBook()
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
}
@@ -625,8 +633,11 @@ 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();
#endif
}
void WidgetsFrame::OnPageChanged(WidgetsBookCtrlEvent& event)