]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/helpchm.h
Refactor owner-drawing code.
[wxWidgets.git] / include / wx / msw / helpchm.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: helpchm.h
3 // Purpose: Help system: MS HTML Help implementation
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 16/04/2000
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_MSW_HELPCHM_H_
13 #define _WX_MSW_HELPCHM_H_
14
15 #if wxUSE_MS_HTML_HELP
16
17 #include "wx/helpbase.h"
18
19 class WXDLLIMPEXP_CORE wxCHMHelpController : public wxHelpControllerBase
20 {
21 public:
22 wxCHMHelpController(wxWindow* parentWindow = NULL): wxHelpControllerBase(parentWindow) { }
23
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 ); }
27
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);
38 virtual bool Quit();
39
40 wxString GetHelpFile() const { return m_helpFile; }
41
42 // helper of DisplayTextPopup(), also used in wxSimpleHelpProvider::ShowHelp
43 static bool ShowContextHelpPopup(const wxString& text,
44 const wxPoint& pos,
45 wxWindow *window);
46
47 protected:
48 // get the name of the CHM file we use from our m_helpFile
49 wxString GetValidFilename() const;
50
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)
58 {
59 return CallHtmlHelp(win, str, cmd, reinterpret_cast<WXWPARAM>(param));
60 }
61
62 // even simpler wrappers using GetParentWindow() and GetValidFilename() as
63 // the first 2 HtmlHelp() parameters
64 bool CallHtmlHelp(unsigned cmd, WXWPARAM param)
65 {
66 return CallHtmlHelp(GetParentWindow(), GetValidFilename().wx_str(),
67 cmd, param);
68 }
69
70 bool CallHtmlHelp(unsigned cmd, const void *param = NULL)
71 {
72 return CallHtmlHelp(cmd, reinterpret_cast<WXWPARAM>(param));
73 }
74
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,
78 const wxPoint& pos,
79 int contextId,
80 wxWindow *window);
81
82
83 wxString m_helpFile;
84
85 DECLARE_CLASS(wxCHMHelpController)
86 };
87
88 #endif // wxUSE_MS_HTML_HELP
89
90 #endif // _WX_MSW_HELPCHM_H_