1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Help system: MS HTML Help implementation
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_MSW_HELPCHM_H_
13 #define _WX_MSW_HELPCHM_H_
15 #if wxUSE_MS_HTML_HELP
17 #include "wx/helpbase.h"
19 class WXDLLIMPEXP_CORE wxCHMHelpController
: public wxHelpControllerBase
22 wxCHMHelpController(wxWindow
* parentWindow
= NULL
): wxHelpControllerBase(parentWindow
) { }
24 // Must call this to set the filename
25 virtual bool Initialize(const wxString
& file
);
26 virtual bool Initialize(const wxString
& file
, int WXUNUSED(server
) ) { return Initialize( file
); }
28 // If file is "", reloads file given in Initialize
29 virtual bool LoadFile(const wxString
& file
= wxEmptyString
);
30 virtual bool DisplayContents();
31 virtual bool DisplaySection(int sectionNo
);
32 virtual bool DisplaySection(const wxString
& section
);
33 virtual bool DisplayBlock(long blockNo
);
34 virtual bool DisplayContextPopup(int contextId
);
35 virtual bool DisplayTextPopup(const wxString
& text
, const wxPoint
& pos
);
36 virtual bool KeywordSearch(const wxString
& k
,
37 wxHelpSearchMode mode
= wxHELP_SEARCH_ALL
);
40 wxString
GetHelpFile() const { return m_helpFile
; }
42 // helper of DisplayTextPopup(), also used in wxSimpleHelpProvider::ShowHelp
43 static bool ShowContextHelpPopup(const wxString
& text
,
48 // get the name of the CHM file we use from our m_helpFile
49 wxString
GetValidFilename() const;
51 // Call HtmlHelp() with the provided parameters (both overloads do the same
52 // thing but allow to avoid casts in the calling code) and return false
53 // (but don't crash) if HTML help is unavailable
54 static bool CallHtmlHelp(wxWindow
*win
, const wxChar
*str
,
55 unsigned cmd
, WXWPARAM param
);
56 static bool CallHtmlHelp(wxWindow
*win
, const wxChar
*str
,
57 unsigned cmd
, const void *param
= NULL
)
59 return CallHtmlHelp(win
, str
, cmd
, reinterpret_cast<WXWPARAM
>(param
));
62 // even simpler wrappers using GetParentWindow() and GetValidFilename() as
63 // the first 2 HtmlHelp() parameters
64 bool CallHtmlHelp(unsigned cmd
, WXWPARAM param
)
66 return CallHtmlHelp(GetParentWindow(), GetValidFilename().wx_str(),
70 bool CallHtmlHelp(unsigned cmd
, const void *param
= NULL
)
72 return CallHtmlHelp(cmd
, reinterpret_cast<WXWPARAM
>(param
));
75 // wrapper around CallHtmlHelp(HH_DISPLAY_TEXT_POPUP): only one of text and
76 // contextId parameters can be non-NULL/non-zero
77 static bool DoDisplayTextPopup(const wxChar
*text
,
85 DECLARE_CLASS(wxCHMHelpController
)
88 #endif // wxUSE_MS_HTML_HELP
90 #endif // _WX_MSW_HELPCHM_H_