\section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller}
-{\bf WARNING! This help controller has an API incompatible with wxWindows
-wxHelpController!}
+{\bf WARNING!} Although this class has an API compatible with other wxWindows
+help controllers as documented by \helpref{wxHelpController}{wxhelpcontroller}, it
+is recommended that you use the enhanced capabilities of wxHtmlHelpController's API.
This help controller provides an easy way of displaying HTML help in your
application (see {\it test} sample). The help system is based on {\bf books}
native format. The file format is described \helpref{here}{helpformat}.
Have a look at docs/html/ directory where sample project files are stored.
-You can use tex2rtf to generate MHHW projects (see wxHTML homepage for details).
+You can use Tex2RTF to produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in
+your tex2rtf.ini file.
In order to use the controller in your application under Windows you must
have the following line in your .rc file:
#include "wx/html/msw/wxhtml.rc"
\end{verbatim}
+\wxheading{Note}
+
+It is strongly recommended to use preprocessed {\bf .hhp.cached} version of
+projects. It can be either created on-the-fly (see
+\helpref{SetTempDir}{wxhtmlhelpcontrollersettempdir}) or you can use
+{\bf hhp2cached} utility from {\it utils/hhp2cached} to create it and
+distribute the cached version together with helpfiles. See {\it samples/html/help}
+sample for demonstration of its use.
+
\wxheading{Derived from}
-wxEvtHandler
+wxHelpControllerBase
+
+\wxheading{Include files}
+
+<wx/html/helpctrl.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller}
-\func{}{wxHtmlHelpController}{\param{int }{style = wxHF_DEFAULTSTYLE}}
+\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULTSTYLE}}
Constructor.
{\it style} is combination of these flags:
-\begin{twocollist}
+\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
+\twocolitem{\windowstyle{wxHF\_FLATTOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).}
\twocolitem{\windowstyle{wxHF\_CONTENTS}}{Help frame has contents panel.}
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
+\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
+\twocolitem{\windowstyle{wxHF\_OPENFILES}}{Allow user to open arbitrary HTML document.}
+\twocolitem{\windowstyle{wxHF\_PRINT}}{Toolbar contains "print" button.}
\end{twocollist}
-Default value : everything enabled.
+Default value: everything but wxHF\_OPENFILES enabled.
\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook}
-\func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show_wait_msg}}
+\func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show\_wait\_msg}}
Adds book (\helpref{.hhp file}{helpformat} - HTML Help Workshop project file) into the list of loaded books.
This must be called at least once before displaying any help.
+{\it book} may be either .hhp file or ZIP archive that contains arbitrary number of .hhp files in
+top-level directory. This ZIP archive must have .zip or .htb extension
+(the latter stands for "HTML book"). In other words, {\tt AddBook("help.zip")} is possible and, in fact,
+recommended way.
+
If {\it show\_wait\_msg} is TRUE then a decorationless window with progress message is displayed.
+\membersection{wxHtmlHelpController::CreateHelpFrame}\label{wxhtmlhelpcontrollercreatehelpframe}
+
+\func{virtual wxHtmlHelpFrame*}{CreateHelpFrame}{\param{wxHtmlHelpData * }{data}}
+
+This protected virtual method may be overridden so that the controller
+uses slightly different frame. See {\it samples/html/helpview} sample for
+an example.
\membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay}
\func{void}{Display}{\param{const wxString\& }{x}}
\item as direct filename of HTML document
\item as chapter name (from contents) or as a book name
\item as some word from index
-\item even as any word (will be searched)
+\item even as any word (will be searched)
\end{itemize}
Looking for the page runs in these steps:
This alternative form is used to search help contents by numeric IDs.
+\pythonnote{The second form of this method is named DisplayId in
+wxPython.}
+
\membersection{wxHtmlHelpController::DisplayContents}\label{wxhtmlhelpcontrollerdisplaycontents}
\func{void}{DisplayContents}{\void}
Displays help window, focuses search panel and starts searching.
Returns TRUE if the keyword was found.
-{\bf Important:} KeywordSearch searches only pages listed in .htc file(s).
+{\bf Important:} KeywordSearch searches only pages listed in .hhc file(s).
You should list all pages in the contents file.
\membersection{wxHtmlHelpController::ReadCustomization}\label{wxhtmlhelpcontrollerreadcustomization}
that no cached data are stored). Note that these files are {\it not}
deleted when program exits.
+Once created these cached files will be used in all subsequent executions
+of your application. If cached files become older than corresponding .hhp
+file (e.g. if you regenerate documentation) it will be refreshed.
+
\membersection{wxHtmlHelpController::SetTitleFormat}\label{wxhtmlhelpcontrollersettitleformat}
\func{void}{SetTitleFormat}{\param{const wxString\& }{format}}
If there is associated config object, wxHtmlHelpController automatically
reads and writes settings (including wxHtmlWindow's settings) when needed.
-The only thing you must do is create wxConfig object and call UseConfig.
+The only thing you must do is create wxConfig object and call UseConfig.
+
+If you do not use {\it UseConfig}, wxHtmlHelpController will use
+default wxConfig object if available (for details see
+\helpref{wxConfigBase::Get}{wxconfigbaseget} and
+\helpref{wxConfigBase::Set}{wxconfigbaseset}).
\membersection{wxHtmlHelpController::WriteCustomization}\label{wxhtmlhelpcontrollerwritecustomization}