X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5100cabffa34c38db26884577113d01f21cda446..e4c903b2ea42fe104ef50d0ea6028f14d8309dfa:/include/wx/msw/helpchm.h diff --git a/include/wx/msw/helpchm.h b/include/wx/msw/helpchm.h index 4a172009be..a1fbe91034 100644 --- a/include/wx/msw/helpchm.h +++ b/include/wx/msw/helpchm.h @@ -6,33 +6,25 @@ // Created: 16/04/2000 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_HELPCHM_H_ -#define _WX_HELPCHM_H_ +#ifndef _WX_MSW_HELPCHM_H_ +#define _WX_MSW_HELPCHM_H_ -#ifdef __GNUG__ -#pragma interface "helpchm.h" -#endif - -#include "wx/wx.h" - -#if wxUSE_HELP +#if wxUSE_MS_HTML_HELP #include "wx/helpbase.h" -class WXDLLEXPORT wxCHMHelpController: public wxHelpControllerBase +class WXDLLIMPEXP_CORE wxCHMHelpController : public wxHelpControllerBase { - DECLARE_CLASS(wxCHMHelpController) - public: - wxCHMHelpController() {} - ~wxCHMHelpController() {} - + wxCHMHelpController(wxWindow* parentWindow = NULL): wxHelpControllerBase(parentWindow) { } + // Must call this to set the filename virtual bool Initialize(const wxString& file); - + virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); } + // If file is "", reloads file given in Initialize virtual bool LoadFile(const wxString& file = wxEmptyString); virtual bool DisplayContents(); @@ -41,19 +33,58 @@ public: virtual bool DisplayBlock(long blockNo); virtual bool DisplayContextPopup(int contextId); virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos); - virtual bool KeywordSearch(const wxString& k); + virtual bool KeywordSearch(const wxString& k, + wxHelpSearchMode mode = wxHELP_SEARCH_ALL); virtual bool Quit(); - inline wxString GetHelpFile() const { return m_helpFile; } - -protected: - // Append extension if necessary. - wxString GetValidFilename(const wxString& file) const; - + wxString GetHelpFile() const { return m_helpFile; } + + // helper of DisplayTextPopup(), also used in wxSimpleHelpProvider::ShowHelp + static bool ShowContextHelpPopup(const wxString& text, + const wxPoint& pos, + wxWindow *window); + protected: + // get the name of the CHM file we use from our m_helpFile + wxString GetValidFilename() const; + + // Call HtmlHelp() with the provided parameters (both overloads do the same + // thing but allow to avoid casts in the calling code) and return false + // (but don't crash) if HTML help is unavailable + static bool CallHtmlHelp(wxWindow *win, const wxChar *str, + unsigned cmd, WXWPARAM param); + static bool CallHtmlHelp(wxWindow *win, const wxChar *str, + unsigned cmd, const void *param = NULL) + { + return CallHtmlHelp(win, str, cmd, reinterpret_cast(param)); + } + + // even simpler wrappers using GetParentWindow() and GetValidFilename() as + // the first 2 HtmlHelp() parameters + bool CallHtmlHelp(unsigned cmd, WXWPARAM param) + { + return CallHtmlHelp(GetParentWindow(), GetValidFilename().wx_str(), + cmd, param); + } + + bool CallHtmlHelp(unsigned cmd, const void *param = NULL) + { + return CallHtmlHelp(cmd, reinterpret_cast(param)); + } + + // wrapper around CallHtmlHelp(HH_DISPLAY_TEXT_POPUP): only one of text and + // contextId parameters can be non-NULL/non-zero + static bool DoDisplayTextPopup(const wxChar *text, + const wxPoint& pos, + int contextId, + wxWindow *window); + + wxString m_helpFile; + + DECLARE_CLASS(wxCHMHelpController) }; -#endif // wxUSE_HELP -#endif -// _WX_HELPCHM_H_ +#endif // wxUSE_MS_HTML_HELP + +#endif // _WX_MSW_HELPCHM_H_