show help for the page under mouse when the [?] button is used to request help
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -222,6 +222,12 @@ protected:
|
|||||||
// Lay out controls
|
// Lay out controls
|
||||||
void DoSize();
|
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
|
// the array of all pages of this control
|
||||||
wxArrayPages m_pages;
|
wxArrayPages m_pages;
|
||||||
|
|
||||||
|
@@ -42,6 +42,9 @@ IMPLEMENT_ABSTRACT_CLASS(wxBookCtrlBase, wxControl)
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxBookCtrlBase, wxControl)
|
BEGIN_EVENT_TABLE(wxBookCtrlBase, wxControl)
|
||||||
EVT_SIZE(wxBookCtrlBase::OnSize)
|
EVT_SIZE(wxBookCtrlBase::OnSize)
|
||||||
|
#if wxUSE_HELP
|
||||||
|
EVT_HELP(wxID_ANY, wxBookCtrlBase::OnHelp)
|
||||||
|
#endif // wxUSE_HELP
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -158,6 +161,35 @@ wxSize wxBookCtrlBase::DoGetBestSize() const
|
|||||||
return best;
|
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
|
// pages management
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user