X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/129caaddf1062e108e2018acc1d2205dc24cfc7e..49e399d8c0f2683a885bfec77e43cfde3b2249f4:/src/common/cshelp.cpp diff --git a/src/common/cshelp.cpp b/src/common/cshelp.cpp index 7917ac2c6f..805ada8bff 100644 --- a/src/common/cshelp.cpp +++ b/src/common/cshelp.cpp @@ -119,6 +119,15 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win) { wxPoint pt; wxWindow* winAtPtr = wxFindWindowAtPointer(pt); + /* + if (winAtPtr) + { + wxString msg; + msg.Printf("Picked %s (%d)", (const char*) winAtPtr->GetName(), winAtPtr->GetId()); + cout << msg << '\n'; + } + */ + if (winAtPtr) DispatchEvent(winAtPtr, pt); } @@ -312,6 +321,48 @@ bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window) return FALSE; } +// ---------------------------------------------------------------------------- +// wxHelpControllerHelpProvider +// ---------------------------------------------------------------------------- + +wxHelpControllerHelpProvider::wxHelpControllerHelpProvider(wxHelpControllerBase* hc) +{ + m_helpController = hc; +} + +bool wxHelpControllerHelpProvider::ShowHelp(wxWindowBase *window) +{ + wxString text = GetHelp(window); + if ( !text.empty() ) + { + if (m_helpController) + { + if (text.IsNumber()) + return m_helpController->DisplayContextPopup(wxAtoi(text)); + + // If the help controller is capable of popping up the text... + else if (m_helpController->DisplayTextPopup(text, wxGetMousePosition())) + { + return TRUE; + } + else + // ...else use the default method. + return wxSimpleHelpProvider::ShowHelp(window); + } + else + return wxSimpleHelpProvider::ShowHelp(window); + + } + + return FALSE; +} + +// Convenience function for turning context id into wxString +wxString wxContextId(int id) +{ + return wxString(IntToString(id)); +} + // ---------------------------------------------------------------------------- // wxHelpProviderModule: module responsible for cleaning up help provider. // ----------------------------------------------------------------------------