%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name:        wizard.tex
%% Purpose:     wxWizard class documentation
%% Author:      Vadim Zeitlin
%% Modified by:
%% Created:     02.04.00
%% RCS-ID:      $Id$
%% Copyright:   (c) Vadim Zeitlin
%% License:     wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{\class{wxWizard}}\label{wxwizard}

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.

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}.
Finally, don't forget to call {\tt wizard->Destroy()}.

\wxheading{Derived from}

\helpref{wxDialog}{wxdialog}\\
\helpref{wxPanel}{wxpanel}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}

\wxheading{Include files}

<wx/wizard.h>

\wxheading{Event table macros}

To process input from a wizard dialog, use these event handler macros to
direct input to member functions that take a 
\helpref{wxWizardEvent}{wxwizardevent} argument. For some events, 
\helpref{Veto()}{wxnotifyeventveto} can be called to prevent the event from
happening.

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=2pt
\twocolitem{{\bf EVT\_WIZARD\_PAGE\_CHANGED(id, func)}}{The page has been just
changed (this event can not be vetoed).}
\twocolitem{{\bf EVT\_WIZARD\_PAGE\_CHANGING(id, func)}}{The page is being
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).}
\end{twocollist}%

\wxheading{See also}

\helpref{wxWizardEvent}{wxwizardevent}, \helpref{wxWizardPage}{wxwizardpage}, \helpref{wxWizard sample}{samplewizard}

\latexignore{\rtfignore{\wxheading{Members}}}

\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}, \param{const wxSize\& }{size = wxDefaultSize}}

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.

\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.}

\docparam{size}{The size of the dialog. Reasonable default size is used if
this parameter is not specified.}

\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::GetCurrentPage}\label{wxwizardgetcurrentpage}

\constfunc{wxWizardPage*}{GetCurrentPage}{\void}

Get the current page while the wizard is running. {\tt NULL} is returned if 
\helpref{RunWizard()}{wxwizardrunwizard} is not being executed now.

\membersection{wxWizard::GetPageSize}\label{wxwizardgetpagesize}

\constfunc{wxSize}{GetPageSize}{\void}

Returns the size available for the pages.
