X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/92199f4cb8bc24ee2f4844cad9f9d5776c35d098..2175898cf686a5d160fceae3509756050afd9fda:/src/msw/helpchm.cpp diff --git a/src/msw/helpchm.cpp b/src/msw/helpchm.cpp index 7a5f3cb6f9..4bd7467b28 100644 --- a/src/msw/helpchm.cpp +++ b/src/msw/helpchm.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "helpchm.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -79,15 +75,17 @@ static bool LoadHtmlHelpLibrary() static void UnloadHtmlHelpLibrary() { if ( gs_htmlHelp ) - { + { if (wxPluginManager::UnloadLibrary( _T("HHCTRL.OCX") )) gs_htmlHelp = 0; } } -static HWND GetSuitableHWND() +static HWND GetSuitableHWND(wxCHMHelpController* controller) { - if (wxTheApp->GetTopWindow()) + if (controller->GetParentWindow()) + return (HWND) controller->GetParentWindow()->GetHWND(); + else if (wxTheApp->GetTopWindow()) return (HWND) wxTheApp->GetTopWindow()->GetHWND(); else return GetDesktopWindow(); @@ -118,7 +116,7 @@ bool wxCHMHelpController::DisplayContents() wxString str = GetValidFilename(m_helpFile); - gs_htmlHelp(GetSuitableHWND(), (const wxChar*) str, HH_DISPLAY_TOPIC, 0L); + gs_htmlHelp(GetSuitableHWND(this), (const wxChar*) str, HH_DISPLAY_TOPIC, 0L); return true; } @@ -133,7 +131,7 @@ bool wxCHMHelpController::DisplaySection(const wxString& section) bool isFilename = (section.Find(wxT(".htm")) != wxNOT_FOUND); if (isFilename) - gs_htmlHelp(GetSuitableHWND(), (const wxChar*) str, HH_DISPLAY_TOPIC, (DWORD) (const wxChar*) section); + gs_htmlHelp(GetSuitableHWND(this), (const wxChar*) str, HH_DISPLAY_TOPIC, (DWORD) (const wxChar*) section); else KeywordSearch(section); return true; @@ -146,7 +144,7 @@ bool wxCHMHelpController::DisplaySection(int section) wxString str = GetValidFilename(m_helpFile); - gs_htmlHelp(GetSuitableHWND(), (const wxChar*) str, HH_HELP_CONTEXT, (DWORD)section); + gs_htmlHelp(GetSuitableHWND(this), (const wxChar*) str, HH_HELP_CONTEXT, (DWORD)section); return true; } @@ -171,7 +169,7 @@ bool wxCHMHelpController::DisplayContextPopup(int contextId) popup.pszFont = NULL; popup.pszText = NULL; - gs_htmlHelp(GetSuitableHWND(), (const wxChar*) str, HH_DISPLAY_TEXT_POPUP, (DWORD) & popup); + gs_htmlHelp(GetSuitableHWND(this), (const wxChar*) str, HH_DISPLAY_TEXT_POPUP, (DWORD) & popup); return true; } @@ -188,7 +186,7 @@ bool wxCHMHelpController::DisplayTextPopup(const wxString& text, const wxPoint& popup.pszFont = NULL; popup.pszText = (const wxChar*) text; - gs_htmlHelp(GetSuitableHWND(), NULL, HH_DISPLAY_TEXT_POPUP, (DWORD) & popup); + gs_htmlHelp(GetSuitableHWND(this), NULL, HH_DISPLAY_TEXT_POPUP, (DWORD) & popup); return true; } @@ -214,13 +212,13 @@ bool wxCHMHelpController::KeywordSearch(const wxString& k, link.pszWindow = NULL ; link.fIndexOnFail = TRUE ; - gs_htmlHelp(GetSuitableHWND(), (const wxChar*) str, HH_KEYWORD_LOOKUP, (DWORD)& link); + gs_htmlHelp(GetSuitableHWND(this), (const wxChar*) str, HH_KEYWORD_LOOKUP, (DWORD)& link); return true; } bool wxCHMHelpController::Quit() { - gs_htmlHelp(GetSuitableHWND(), 0, HH_CLOSE_ALL, 0L); + gs_htmlHelp(GetSuitableHWND(this), 0, HH_CLOSE_ALL, 0L); return true; }