]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/hthelpct.tex
don't make read-only text controls editable when enabled
[wxWidgets.git] / docs / latex / wx / hthelpct.tex
index 1e42b78f9a8ccdeb5f795cd4c8837faad579cf81..0bae06955ae5745ceb7ce0e81c6ed583e968544e 100644 (file)
 
 \section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller}
 
-{\bf WARNING! This help controller has an API incompatible with wxWindows
-wxHelpController!}
-
 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} 
 (see \helpref{AddBook}{wxhtmlhelpcontrolleraddbook}). A book is a logical
 section of documentation (for example "User's Guide" or "Programmer's Guide" or
-"C++ Reference" or "wxWindows Reference"). The help controller can handle as
+"C++ Reference" or "wxWidgets Reference"). The help controller can handle as
 many books as you want.
 
+Although this class has an API compatible with other wxWidgets
+help controllers as documented by \helpref{wxHelpController}{wxhelpcontroller}, it
+is recommended that you use the enhanced capabilities of wxHtmlHelpController's API.
+
 wxHTML uses Microsoft's HTML Help Workshop project files (.hhp, .hhk, .hhc) as its
 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. The commercial tool HelpBlocks (www.helpblocks.com) can also create these files.
+
+\wxheading{Note}
 
-In order to use the controller in your application under Windows you must
-have the following line in your .rc file:
+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.
 
-\begin{verbatim}
-#include "wx/html/msw/wxhtml.rc"
-\end{verbatim}
+\wxheading{See also}
+
+\helpref{Information about wxBestHelpController}{wxhelpcontroller}, 
+\helpref{wxHtmlHelpFrame}{wxhtmlhelpframe}, 
+\helpref{wxHtmlHelpDialog}{wxhtmlhelpdialog}, 
+\helpref{wxHtmlHelpWindow}{wxhtmlhelpwindow},
+\helpref{wxHtmlModalHelp}{wxhtmlmodalhelp}
 
 \wxheading{Derived from}
 
-wxEvtHandler
+wxHelpControllerBase
+
+\wxheading{Include files}
+
+<wx/html/helpctrl.h>
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 \membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller}
 
-\func{}{wxHtmlHelpController}{\void}
+\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxWindow* }{parentWindow = NULL}}
 
 Constructor.
 
+\wxheading{Parameters}
+
+{\it style} is a combination of these flags:
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{The help window has a toolbar.}
+\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{The help window has a toolbar with flat buttons (aka coolbar).}
+\twocolitem{\windowstyle{wxHF\_CONTENTS}}{The help window has a contents panel.}
+\twocolitem{\windowstyle{wxHF\_INDEX}}{The help window has an index panel.}
+\twocolitem{\windowstyle{wxHF\_SEARCH}}{The help window has a search panel.}
+\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{The help window has bookmarks controls.}
+\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allows user to open arbitrary HTML document.}
+\twocolitem{\windowstyle{wxHF\_PRINT}}{The toolbar contains "print" button.}
+\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{The contents pane does not show
+book nodes. All books are merged together and appear as single book to the
+user.}
+\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK}}{All nodes in contents pane
+have a book icon. This is how Microsoft's HTML help viewer behaves.}
+\twocolitem{\windowstyle{wxHF\_ICONS\_FOLDER}}{Book nodes in contents pane have
+a book icon, book's sections have a folder icon. This is the default.}
+\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK\_CHAPTER}}{Both book nodes and
+nodes of top-level sections of a book (i.e. chapters) have a book icon,
+all other sections (sections, subsections, ...) have a folder icon.}
+\twocolitem{\windowstyle{wxHF\_EMBEDDED}}{Specifies that the help controller controls an embedded window of class \helpref{wxHtmlHelpWindow}{wxhtmlhelpwindow} that
+should not be destroyed when the controller is destroyed.}
+\twocolitem{\windowstyle{wxHF\_DIALOG}}{Specifies that the help controller should create a dialog containing the help window.}
+\twocolitem{\windowstyle{wxHF\_FRAME}}{Specifies that the help controller should create a frame containing the help window. This is the default if neither wxHF\_DIALOG nor wxHF\_EMBEDDED is specified.}
+\twocolitem{\windowstyle{wxHF\_MODAL}}{Specifies that the help controller should create a modal dialog containing the help window (used with the wxHF\_DIALOG style).}
+\twocolitem{\windowstyle{wxHF\_DEFAULT\_STYLE}}{{\tt wxHF\_TOOLBAR | wxHF\_CONTENTS
+| wxHF\_INDEX | wxHF\_SEARCH | wxHF\_BOOKMARKS | wxHF\_PRINT}}
+\end{twocollist}
+
+{\it parentWindow} is an optional window to be used as the parent for the help window.
+
 \membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook}
 
-\func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show_wait_msg}}
+\func{bool}{AddBook}{\param{const wxFileName\& }{bookFile}, \param{bool }{showWaitMsg}}
+
+\func{bool}{AddBook}{\param{const wxString\& }{bookUrl}, \param{bool }{showWaitMsg}}
 
 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.
 
-If {\it show\_wait\_msg} is TRUE then a decorationless window with progress message is displayed.
+{\it bookFile} or {\it bookUrl}  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(wxFileName("help.zip"))} 
+is possible and is the recommended way.
+
+\wxheading{Parameters}
+
+\docparam{showWaitMsg}{If true then a decoration-less window with progress message is displayed.}
+\docparam{bookFile}{Help book filename. It is recommended to use this prototype
+instead of the one taking URL, because it is less error-prone.}
+\docparam{bookUrl}{Help book URL (note that syntax of filename and URL is 
+different on most platforms)}
+
+\wxheading{Note}
+
+Don't forget to install the archive wxFileSystem handler with
+{\tt wxFileSystem::AddHandler(new wxArchiveFSHandler);} before calling this method
+on a .zip or .htb file!
+
+\membersection{wxHtmlHelpController::CreateHelpDialog}\label{wxhtmlhelpcontrollercreatehelpdialog}
+
+\func{virtual wxHtmlHelpDialog*}{CreateHelpDialog}{\param{wxHtmlHelpData * }{data}}
+
+This protected virtual method may be overridden so that when specifying the wxHF\_DIALOG style, the controller
+uses a different dialog.
+
+\membersection{wxHtmlHelpController::CreateHelpFrame}\label{wxhtmlhelpcontrollercreatehelpframe}
+
+\func{virtual wxHtmlHelpFrame*}{CreateHelpFrame}{\param{wxHtmlHelpData * }{data}}
+
+This protected virtual method may be overridden so that the controller
+uses a different frame.
 
 \membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay}
 
@@ -62,7 +146,7 @@ You can specify the page in many ways:
 \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:
@@ -79,6 +163,9 @@ 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}
@@ -93,12 +180,13 @@ Displays help window and focuses index panel.
 
 \membersection{wxHtmlHelpController::KeywordSearch}\label{wxhtmlhelpcontrollerkeywordsearch}
 
-\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}}
+\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}, \param{wxHelpSearchMode }{mode = wxHELP\_SEARCH\_ALL}}
 
-Displays help window, focuses search panel and starts searching.
-Returns TRUE if the keyword was found.
+Displays help window, focuses search panel and starts searching.  Returns true
+if the keyword was found. Optionally it searches through the index (mode =
+wxHELP\_SEARCH\_INDEX), default the content (mode = wxHELP\_SEARCH\_ALL).
 
-{\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}
@@ -116,6 +204,10 @@ forms are much faster to read. Default value is empty string (empty string means
 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}}
@@ -132,7 +224,12 @@ Associates {\it config} object with the controller.
 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}