]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/wizard.tex
wxExecute may only be called from the main thread
[wxWidgets.git] / docs / latex / wx / wizard.tex
index 10de3469b785c72b86bfcb39746a2f329acae3ef..034da96e514ec79da0a55d6d21aaa2cd5adcd30c 100644 (file)
 wxWizard is the central class for implementing `wizard-like' dialogs. These
 dialogs are mostly familiar to Windows users and are nothing else but a
 sequence of `pages' each of them displayed inside a dialog which has the
-buttons to pas to the next (and previous) pages.
+buttons to pass to the next (and previous) pages.
 
 The wizards are typically used to decompose a complex dialog into several
 simple steps and are mainly useful to the novice users, hence it is important
 to keep them as simple as possible.
 
 To show a wizard dialog, you must first create an object of wxWizard class
-using \helpref{Create}{wxwizardcreate} function. Then you should add all pages
-you want the wizard to show and call \helpref{RunWizard}{wxwizardrunwizard}.
+using either the non default constructor or a default one followed by call to 
+\helpref{Create}{wxwizardcreate} function. Then you should add all pages you
+want the wizard to show and call \helpref{RunWizard}{wxwizardrunwizard}.
 Finally, don't forget to call {\tt wizard->Destroy()}.
 
 \wxheading{Derived from}
@@ -53,21 +54,67 @@ changed (this event can not be vetoed).}
 changed (this event can be vetoed).}
 \twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel
 the wizard (this event may also be vetoed).}
+\twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.}
+\twocolitem{{\bf EVT\_WIZARD\_FINISHED(id, func)}}{The wizard finished button was pressed.}
 \end{twocollist}%
 
+\wxheading{Extended styles}
+
+Use the \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle} function to set the following
+style. You will need to use two-step construction (use the default constructor, call {\bf SetExtraStyle}, then call {\bf Create}).
+
+\twocolwidtha{5cm}%
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\windowstyle{wxWIZARD\_EX\_HELPBUTTON}}{Shows a Help button using wxID\_HELP.}
+\end{twocollist}
+
+See also \helpref{wxDialog}{wxdialog} for other extended styles.
+
 \wxheading{See also}
 
 \helpref{wxWizardEvent}{wxwizardevent}, \helpref{wxWizardPage}{wxwizardpage}, \helpref{wxWizard sample}{samplewizard}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+\membersection{wxWizard::wxWizard}\label{wxwizardctor}
+
+\func{}{wxWizard}{\void}
+
+Default constructor. Use this if you wish to derive from wxWizard and then call 
+\helpref{Create}{wxwizardcreate}, for example if you wish to set an extra style
+with \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle} between the two
+calls.
+
+\func{}{wxWizard}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
+
+Constructor which really creates the wizard -- if you use this constructor, you
+shouldn't call \helpref{Create}{wxwizardcreate}.
+
+Notice that unlike almost all other wxWindows classes, there is no {\it size} 
+parameter in wxWizard constructor because the wizard will have a predefined
+default size by default. If you want to change this, you should use the 
+\helpref{SetPageSize}{wxwizardsetpagesize} function.
+
+\wxheading{Parameters}
+
+\docparam{parent}{The parent window, may be NULL.}
+
+\docparam{id}{The id of the dialog, will usually be just $-1$.}
+
+\docparam{title}{The title of the dialog.}
+
+\docparam{bitmap}{The default bitmap used in the left side of the wizard. See
+also \helpref{GetBitmap}{wxwizardpagegetbitmap}.}
+
+\docparam{pos}{The position of the dialog, it will be centered on the screen
+by default.}
+
 \membersection{wxWizard::Create}\label{wxwizardcreate}
 
-\func{static wxWizard*}{Create}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
+\func{bool}{Create}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
 
-Creates the wizard dialog. The returned pointer should not be deleted
-directly, you should rather call {\tt Destroy()} on it and wxWindows will
-delete it itself.
+Creates the wizard dialog. Must be called if the default constructor had been
+used to create the object.
 
 Notice that unlike almost all other wxWindows classes, there is no {\it size} 
 parameter in wxWizard constructor because the wizard will have a predefined
@@ -88,13 +135,18 @@ also \helpref{GetBitmap}{wxwizardpagegetbitmap}.}
 \docparam{pos}{The position of the dialog, it will be centered on the screen
 by default.}
 
-\membersection{wxWizard::RunWizard}\label{wxwizardrunwizard}
+\membersection{wxWizard::FitToPage}\label{wxwizardfittopage}
 
-\func{bool}{RunWizard}{\param{wxWizardPage* }{firstPage}}
+\func{void}{FittoPage}{\param{const wxWizardPage* }{firstPage}}
 
-Executes the wizard starting from the given page, returns {\tt TRUE} if it was
-successfully finished or {\tt FALSE} if user cancelled it. The {\it firstPage} 
-can not be {\tt NULL}.
+Sets the page size to be big enough for all the pages accessible via the
+given {\it firstPage}, i.e. this page, its next page and so on.
+
+This method may be called more than once and it will only change the page size
+if the size required by the new page is bigger than the previously set one.
+This is useful if the decision about which pages to show is taken during the
+run-time as in this case, the wizard won't be able to get to all pages starting
+from a single one and you should call {\it Fit} separately for the others.
 
 \membersection{wxWizard::GetCurrentPage}\label{wxwizardgetcurrentpage}
 
@@ -109,6 +161,40 @@ Get the current page while the wizard is running. {\tt NULL} is returned if
 
 Returns the size available for the pages.
 
+\membersection{wxWizard::HasNextPage}\label{wxwizardhasnextpage}
+
+\func{virtual bool}{HasNextPage}{\param{wxWizardPage *}{page}}
+
+Return {\tt true} if this page is not the last one in the wizard. The base
+class version implements this by calling 
+\helpref{page->GetNext}{wxwizardpagegetnext} but this could be undesirable if,
+for example, the pages are created on demand only.
+
+\wxheading{See also}
+
+\helpref{HasPrevPage}{wxwizardhasprevpage}
+
+\membersection{wxWizard::HasPrevPage}\label{wxwizardhasprevpage}
+
+\func{virtual bool}{HasPrevPage}{\param{wxWizardPage *}{page}}
+
+Return {\tt true} if this page is not the last one in the wizard. The base
+class version implements this by calling 
+\helpref{page->GetPrev}{wxwizardpagegetprev} but this could be undesirable if,
+for example, the pages are created on demand only.
+
+\wxheading{See also}
+
+\helpref{HasNextPage}{wxwizardhasnextpage}
+
+\membersection{wxWizard::RunWizard}\label{wxwizardrunwizard}
+
+\func{bool}{RunWizard}{\param{wxWizardPage* }{firstPage}}
+
+Executes the wizard starting from the given page, returns {\tt true} if it was
+successfully finished or {\tt false} if user cancelled it. The {\it firstPage} 
+can not be {\tt NULL}.
+
 \membersection{wxWizard::SetPageSize}\label{wxwizardsetpagesize}
 
 \func{void}{SetPageSize}{\param{const wxSize\& }{sizePage}}