]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/helpinst.tex
define _HPUX_SOURCE under HP-UX, otherwise many things are not defined in standard...
[wxWidgets.git] / docs / latex / wx / helpinst.tex
CommitLineData
6fb26ea3 1\section{\class{wxHelpController}}\label{wxhelpcontroller}
a660d684 2
6fb26ea3 3This is a family of classes by which
fe604ccd 4applications may invoke a help viewer to provide on-line help.
a660d684 5
fe604ccd
JS
6A help controller allows an application to display help, at the contents
7or at a particular topic, and shut the help program down on termination.
8This avoids proliferation of many instances of the help viewer whenever the
9user requests a different topic via the application's menus or buttons.
a660d684 10
fe604ccd
JS
11Typically, an application will create a help controller instance
12when it starts, and immediately call {\bf Initialize}\rtfsp
13to associate a filename with it. The help viewer will only get run, however,
14just before the first call to display something.
a660d684 15
154f22b3
JS
16Most help controller classes actually derive from wxHelpControllerBase and have
17names of the form wxXXXHelpController or wxHelpControllerXXX. An
18appropriate class is aliased to the name wxHelpController for each platform, as follows:
19
20\begin{itemize}\itemsep=0pt
2f0e16e1 21\item On desktop Windows, wxCHMHelpController is used (MS HTML Help).
5fae57de 22\item On Windows CE, wxWinceHelpController is used.
2f3f4888 23\item On all other platforms, wxHtmlHelpController is used if wxHTML is
fc2171bd 24compiled into wxWidgets; otherwise wxExtHelpController is used (for invoking an external
154f22b3
JS
25browser).
26\end{itemize}
27
2edb0bde 28The remaining help controller classes need to be named
154f22b3 29explicitly by an application that wishes to make use of them.
a660d684 30
6fb26ea3 31There are currently the following help controller classes defined:
a660d684 32
2432b92d 33\begin{itemize}\itemsep=0pt
6fb26ea3 34\item wxWinHelpController, for controlling Windows Help.
f6bcfd97 35\item wxCHMHelpController, for controlling MS HTML Help. To use this, you need to set wxUSE\_MS\_HTML\_HELP
2049d9b5 36to 1 in setup.h and have htmlhelp.h header from Microsoft's HTML Help kit (you don't need
fc2171bd 37VC++ specific htmlhelp.lib because wxWidgets loads necessary DLL at runtime and so it
2049d9b5
VS
38works with all compilers).
39\item wxBestHelpController, for controlling MS HTML Help or, if Microsoft's runtime is
40not available, \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. You need to provide
41{\bf both} CHM and HTB versions of the help file. For 32bit Windows only.
6fb26ea3 42\item wxExtHelpController, for controlling external browsers under Unix.
154f22b3 43The default browser is Netscape Navigator. The 'help' sample shows its use.
9ceeecb9 44\item wxWinceHelpController, for controlling a simple {\tt .htm} help controller for Windows CE applications.
2f3f4888 45\item \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}, a sophisticated help controller using \helpref{wxHTML}{wxhtml}, in
fa482912 46a similar style to the Microsoft HTML Help viewer and using some of the same files.
0d3a69ec 47Although it has an API compatible with other help controllers, it has more advanced features, so it is
a4000ca2
VS
48recommended that you use the specific API for this class instead. Note that if you
49use .zip or .htb formats for your books, you
2b5f62a0 50must add this line to your application initialization: {\tt wxFileSystem::AddHandler(new wxZipFSHandler);}
15f43e76 51or nothing will be shown in your help window.
6fb26ea3 52\end{itemize}
a660d684 53
954b8ae6 54\wxheading{Derived from}
a660d684 55
6fb26ea3
JS
56wxHelpControllerBase\\
57\helpref{wxObject}{wxobject}
fe604ccd 58
954b8ae6 59\wxheading{Include files}
a660d684 60
fc2171bd 61<wx/help.h> (wxWidgets chooses the appropriate help controller class)\\
dbdb39b2
JS
62<wx/helpbase.h> (wxHelpControllerBase class)\\
63<wx/helpwin.h> (Windows Help controller)\\
f6bcfd97 64<wx/msw/helpchm.h> (MS HTML Help controller)\\
0d3a69ec 65<wx/generic/helpext.h> (external HTML browser controller)\\
2f3f4888 66<wx/html/helpctrl.h> (wxHTML based help controller: wxHtmlHelpController)
a660d684 67
154f22b3
JS
68\wxheading{See also}
69
70\helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}, \helpref{wxHTML}{wxhtml}
71
a660d684
KB
72\latexignore{\rtfignore{\wxheading{Members}}}
73
f0e8a2d0 74\membersection{wxHelpController::wxHelpController}\label{wxhelpcontrollerctor}
a660d684 75
6fb26ea3 76\func{}{wxHelpController}{\void}
a660d684 77
fe604ccd 78Constructs a help instance object, but does not invoke the help viewer.
a660d684 79
f0e8a2d0 80\membersection{wxHelpController::\destruct{wxHelpController}}\label{wxhelpcontrollerdtor}
a660d684 81
6fb26ea3 82\func{}{\destruct{wxHelpController}}{\void}
a660d684 83
fe604ccd 84Destroys the help instance, closing down the viewer if it is running.
a660d684 85
6fb26ea3 86\membersection{wxHelpController::Initialize}\label{wxhelpcontrollerinitialize}
a660d684 87
fe604ccd
JS
88\func{virtual void}{Initialize}{\param{const wxString\& }{file}}
89
90\func{virtual void}{Initialize}{\param{const wxString\& }{file}, \param{int}{ server}}
a660d684 91
fa482912
JS
92Initializes the help instance with a help filename, and optionally a server socket
93number if using wxHelp (now obsolete). Does not invoke the help viewer.
a660d684 94This must be called directly after the help instance object is created and before
fe604ccd
JS
95any attempts to communicate with the viewer.
96
7b28757f
JS
97You may omit the file extension and a suitable one will be chosen. For
98wxHtmlHelpController, the extensions zip, htb and hhp will be appended while searching for
2f3f4888 99a suitable file. For WinHelp, the hlp extension is appended.
a660d684 100
6fb26ea3 101\membersection{wxHelpController::DisplayBlock}\label{wxhelpcontrollerdisplayblock}
a660d684 102
fe604ccd 103\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}}
a660d684 104
fe604ccd 105If the help viewer is not running, runs it and displays the file at the given block number.
33b64e6f 106
33b64e6f
JS
107{\it WinHelp:} Refers to the context number.
108
f6bcfd97
BP
109{\it MS HTML Help:} Refers to the context number.
110
33b64e6f 111{\it External HTML help:} the same as for \helpref{wxHelpController::DisplaySection}{wxhelpcontrollerdisplaysection}.
a660d684 112
7b28757f
JS
113{\it wxHtmlHelpController:} {\it sectionNo} is an identifier as specified in the {\tt .hhc} file. See \helpref{Help files format}{helpformat}.
114
f6bcfd97
BP
115This function is for backward compatibility only, and applications should use \helpref{wxHelpController}{wxhelpcontrollerdisplaysection} instead.
116
6fb26ea3 117\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents}
a660d684 118
fe604ccd 119\func{virtual bool}{DisplayContents}{\void}
a660d684 120
fe604ccd
JS
121If the help viewer is not running, runs it and displays the
122contents.
a660d684 123
7cb74906
JS
124\membersection{wxHelpController::DisplayContextPopup}\label{wxhelpcontrollerdisplaycontextpopup}
125
126\func{virtual bool}{DisplayContextPopup}{\param{int }{contextId}}
127
128Displays the section as a popup window using a context id.
129
cc81d32f 130Returns false if unsuccessful or not implemented.
7cb74906 131
6fb26ea3 132\membersection{wxHelpController::DisplaySection}\label{wxhelpcontrollerdisplaysection}
a660d684 133
f6bcfd97
BP
134\func{virtual bool}{DisplaySection}{\param{const wxString\&}{ section}}
135
136If the help viewer is not running, runs it and displays the given section.
137
138The interpretation of {\it section} differs between help viewers. For most viewers,
feaca34f
JS
139this call is equivalent to KeywordSearch. For MS HTML Help, wxHTML help and external HTML help,
140if {\it section} has a .htm
f6bcfd97
BP
141or .html extension, that HTML file will be displayed; otherwise
142a keyword search is done.
143
fe604ccd 144\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}}
a660d684 145
fe604ccd 146If the help viewer is not running, runs it and displays the given section.
a660d684 147
feaca34f 148{\it WinHelp, MS HTML Help} {\it sectionNo} is a context id.
a660d684 149
feaca34f 150{\it External HTML help:} wxExtHelpController implements {\it sectionNo} as an id in a map file, which is of the form:
33b64e6f
JS
151
152\begin{verbatim}
1530 wx.html ; Index
1541 wx34.html#classref ; Class reference
1552 wx204.html ; Function reference
156\end{verbatim}
a660d684 157
7b28757f
JS
158{\it wxHtmlHelpController:} {\it sectionNo} is an identifier as specified in the {\tt .hhc} file. See \helpref{Help files format}{helpformat}.
159
f6bcfd97
BP
160See also the help sample for notes on how to specify section numbers for various help file formats.
161
7cb74906
JS
162\membersection{wxHelpController::DisplayTextPopup}\label{wxhelpcontrollerdisplaytextpopup}
163
164\func{virtual bool}{DisplayTextPopup}{\param{const wxString\&}{ text}, \param{const wxPoint\& }{pos}}
165
166Displays the text in a popup window, if possible.
167
cc81d32f 168Returns false if unsuccessful or not implemented.
7cb74906 169
7b28757f
JS
170\membersection{wxHelpController::GetFrameParameters}\label{wxhelpcontrollergetframeparameters}
171
172\func{virtual wxFrame *}{GetFrameParameters}{\param{const wxSize * }{size = NULL}, \param{const wxPoint * }{pos = NULL},
173 \param{bool *}{newFrameEachTime = NULL}}
174
2f3f4888 175wxHtmlHelpController returns the frame, size and position.
7b28757f
JS
176
177For all other help controllers, this function does nothing
178and just returns NULL.
179
180\wxheading{Parameters}
181
182\docparam{viewer}{This defaults to "netscape" for wxExtHelpController.}
183
184\docparam{flags}{This defaults to wxHELP\_NETSCAPE for wxExtHelpController, indicating
185that the viewer is a variant of Netscape Navigator.}
186
6fb26ea3 187\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch}
a660d684 188
69b5cec2 189\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}, \param{wxHelpSearchMode }{mode = wxHELP\_SEARCH\_ALL}}
fe604ccd 190
69b5cec2
VS
191If the help viewer is not running, runs it, and searches for sections matching
192the given keyword. If one match is found, the file is displayed at this
193section. The optional parameter allows the search the index
194(wxHELP\_SEARCH\_INDEX) but this currently only supported by the
195wxHtmlHelpController.
33b64e6f 196
f6bcfd97 197{\it WinHelp, MS HTML Help:} If more than one match is found,
33b64e6f
JS
198the first topic is displayed.
199
f6bcfd97 200{\it External HTML help, simple wxHTML help:} If more than one match is found,
33b64e6f 201a choice of topics is displayed.
a660d684 202
7b28757f
JS
203{\it wxHtmlHelpController:} see \helpref{wxHtmlHelpController::KeywordSearch}{wxhtmlhelpcontrollerkeywordsearch}.
204
6fb26ea3 205\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile}
a660d684 206
33b64e6f 207\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = ""}}
a660d684 208
fe604ccd
JS
209If the help viewer is not running, runs it and loads the given file.
210If the filename is not supplied or is
7b28757f 211empty, the file specified in {\bf Initialize} is used. If the viewer is
a660d684
KB
212already displaying the specified file, it will not be reloaded. This
213member function may be used before each display call in case the user
214has opened another file.
215
7b28757f 216wxHtmlHelpController ignores this call.
33b64e6f 217
7b28757f 218\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit}
33b64e6f 219
7b28757f
JS
220\func{virtual bool}{OnQuit}{\void}
221
222Overridable member called when this application's viewer is quit by the user.
223
224This does not work for all help controllers.
33b64e6f 225
db8db70a 226\membersection{wxHelpController::SetFrameParameters}\label{wxhelpcontrollersetframeparameters}
7b28757f
JS
227
228\func{virtual void}{SetFrameParameters}{\param{const wxString \& }{title},
db8db70a 229 \param{const wxSize \& }{size}, \param{const wxPoint \& }{pos = wxDefaultPosition},
cc81d32f 230 \param{bool }{newFrameEachTime = false}}
db8db70a 231
7b28757f
JS
232For wxHtmlHelpController, the title is set (again with \%s indicating the
233page title) and also the size and position of the frame if the frame is already
234open. {\it newFrameEachTime} is ignored.
db8db70a 235
7b28757f 236For all other help controllers this function has no effect.
33b64e6f 237
7b28757f 238\membersection{wxHelpController::SetViewer}\label{wxhelpcontrollersetviewer}
33b64e6f 239
7b28757f 240\func{virtual void}{SetViewer}{\param{const wxString\& }{viewer}, \param{long}{ flags}}
fe604ccd 241
7b28757f 242Sets detailed viewer information. So far this is only relevant to wxExtHelpController.
a660d684 243
7b28757f 244Some examples of usage:
a660d684 245
7b28757f
JS
246\begin{verbatim}
247 m_help.SetViewer("kdehelp");
248 m_help.SetViewer("gnome-help-browser");
249 m_help.SetViewer("netscape", wxHELP_NETSCAPE);
250\end{verbatim}
a660d684 251
6fb26ea3 252\membersection{wxHelpController::Quit}\label{wxhelpcontrollerquit}
a660d684 253
fe604ccd 254\func{virtual bool}{Quit}{\void}
a660d684 255
fe604ccd 256If the viewer is running, quits it by disconnecting.
a660d684 257
fe604ccd 258For Windows Help, the viewer will only close if no other application is using it.
a660d684 259