// Lay out controls
void DoSize();
+#if wxUSE_HELP
+ // Show the help for the corresponding page
+ void OnHelp(wxHelpEvent& event);
+#endif // wxUSE_HELP
+
+
// the array of all pages of this control
wxArrayPages m_pages;
BEGIN_EVENT_TABLE(wxBookCtrlBase, wxControl)
EVT_SIZE(wxBookCtrlBase::OnSize)
+#if wxUSE_HELP
+ EVT_HELP(wxID_ANY, wxBookCtrlBase::OnHelp)
+#endif // wxUSE_HELP
END_EVENT_TABLE()
// ----------------------------------------------------------------------------
return best;
}
+#if wxUSE_HELP
+void wxBookCtrlBase::OnHelp(wxHelpEvent& event)
+{
+ // find the corresponding page
+ wxWindow *page = NULL;
+
+ if ( event.GetOrigin() == wxHelpEvent::Origin_HelpButton )
+ {
+ // show help for the page under the mouse
+ const int pagePos = HitTest(ScreenToClient(event.GetPosition()));
+
+ if ( pagePos != wxNOT_FOUND)
+ {
+ page = GetPage((size_t)pagePos);
+ }
+ }
+
+ if ( !page )
+ {
+ page = GetCurrentPage();
+ }
+
+ if ( !page || !page->GetEventHandler()->ProcessEvent(event) )
+ {
+ event.Skip();
+ }
+}
+#endif // wxUSE_HELP
+
// ----------------------------------------------------------------------------
// pages management
// ----------------------------------------------------------------------------