+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: progdlg.tex
+%% Purpose: wxProgressDialog documentation
+%% Author: wxWidgets Team
+%% Modified by:
+%% Created: 01.06.03
+%% RCS-ID: $Id$
+%% Copyright: (c) wxWidgets Team
+%% License: wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{\class{wxProgressDialog}}\label{wxprogressdialog}
This class represents a dialog that shows a short message and a
-progress bar. Optionally, it can display an ABORT button.
+progress bar. Optionally, it can display ABORT and SKIP buttons,
+the elapsed, remaining and estimated time for the end of the progress.
+
\wxheading{Derived from}
-\helpref{wxFrame}{wxframe}\\
+\helpref{wxDialog}{wxdialog}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
<wx/progdlg.h>
+
+\wxheading{Window styles}
+
+\twocolwidtha{7cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\windowstyle{wxPD\_APP\_MODAL}}{Make the progress dialog modal. If this flag is
+not given, it is only "locally" modal - that is the input to the parent
+window is disabled, but not to the other ones.}
+\twocolitem{\windowstyle{wxPD\_AUTO\_HIDE}}{Causes the progress dialog to disappear
+from screen as soon as the maximum value of the progress meter has been
+reached.}
+\twocolitem{\windowstyle{wxPD\_SMOOTH}}{Causes smooth progress of the gauge control.}
+\twocolitem{\windowstyle{wxPD\_CAN\_ABORT}}{This flag tells the dialog that it should have a
+"Cancel" button which the user may press. If this happens, the next call to
+\helpref{Update()}{wxprogressdialogupdate} will return false.}
+\twocolitem{\windowstyle{wxPD\_CAN\_SKIP}}{This flag tells the dialog that it should have a
+"Skip" button which the user may press. If this happens, the next call to
+\helpref{Update()}{wxprogressdialogupdate} will return true in its skip parameter.}
+\twocolitem{\windowstyle{wxPD\_ELAPSED\_TIME}}{This flag tells the dialog that it should show elapsed time (since creating the dialog).}
+\twocolitem{\windowstyle{wxPD\_ESTIMATED\_TIME}}{This flag tells the dialog that it should show estimated time.}
+\twocolitem{\windowstyle{wxPD\_REMAINING\_TIME}}{This flag tells the dialog that it should show remaining time.}
+\end{twocollist}%
+
+
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxProgressDialog::wxProgressDialog}\label{wxprogressdialogconstr}
+\membersection{wxProgressDialog::wxProgressDialog}\label{wxprogressdialogctor}
-\func{}{wxProgressDialog}
-{\param{const wxString\& }{title},
- \param{const wxString\& }{message},\rtfsp
- \param{int }{maximum = 100},
- \param{wxWindow * }{parent = NULL},\rtfsp
- \param{bool }{disableParentOnly = FALSE},\rtfsp
- \param{bool }{abortButton = FALSE}
- }
+\func{}{wxProgressDialog}{\param{const wxString\& }{title}, \param{const wxString\& }{message},\rtfsp
+\param{int }{maximum = 100}, \param{wxWindow * }{parent = NULL},\rtfsp
+\param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL}}
Constructor. Creates the dialog, displays it and disables user input
-for other windows, or, if disableParentOnly = TRUE, for its parent
+for other windows, or, if wxPD\_APP\_MODAL flag is not given, for its parent
window only.
\wxheading{Parameters}
\docparam{parent}{Parent window.}
-\docparam{message}{Message to show on the dialog.}
+\docparam{style}{The dialog style. See \helpref{wxProgressDialog}{wxprogressdialog}.}
-\docparam{disableParentOnly}{By default, the dialog disables user
- input for all other top level windows. If this parameter is TRUE, it
- will only disable the window passes as parent.}
+\membersection{wxProgressDialog::\destruct{wxProgressDialog}}\label{wxprogressdialogdtor}
-\docparam{abortButton}{If TRUE, will display an ABORT button.}
+\func{}{\destruct{wxProgressDialog}}{\void}
-\membersection{wxProgressDialog::\destruct{wxProgressDialog}}
+Destructor. Deletes the dialog and enables all top level windows.
-\func{}{\destruct{wxMessageDialog}}{\void}
-Destructor.
-Deletes the dialog and enables all top level windows.
+\membersection{wxProgressDialog::Resume}\label{wxprogressdialogresume}
+
+\func{void}{Resume}{\void}
+
+Can be used to continue with the dialog, after the user had chosen
+ABORT.
\membersection{wxProgressDialog::Update}\label{wxprogressdialogupdate}
-\func{bool}{Update}{
- \param{int }{value = -1},\rtfsp
- \param{const char * }{newmsg = NULL}, }
+\func{virtual bool}{Update}{\param{int }{value}, \param{const wxString\& }{newmsg = ""},\rtfsp
+\param{bool *}{skip = NULL}}
Updates the dialog, setting the progress bar to the new value and, if
-given exchanges the message above it. Returns TRUE if the ABORT button
-has \emph{not} been pressed.
+given changes the message above it. Returns \true unless the Cancel button
+has been pressed.
+If \false is returned, the application can either immediately destroy the dialog
+or ask the user for the confirmation and if the abort is not confirmed the
+dialog may be resumed with \helpref{Resume}{wxprogressdialogresume} function.
-\membersection{wxProgressDialog::Resume}\label{wxprogressdialogresume}
+\wxheading{Parameters}
-\func{void}{Resume}{\void}
-Can be used to continue with the dialog, after the user had chosen
-ABORT.
+\docparam{value}{The new value of the progress meter. It should be less than or
+equal to the maximum value given to the constructor and the dialog is closed if
+it is equal to the maximum.}
+\docparam{newmsg}{The new messages for the progress dialog text, if it is
+empty (which is the default) the message is not changed.}
+\docparam{skip}{If "Skip" button was pressed since last
+\helpref{Update}{wxprogressdialogupdate} call, this is set to true.}
+
+
+\membersection{wxProgressDialog::Pulse}\label{wxprogressdialogpdatepulse}
+
+\func{virtual bool}{Pulse}{\param{const wxString\& }{newmsg = ""},\rtfsp
+\param{bool *}{skip = NULL}}
+Just like \helpref{Update}{wxprogressdialogupdate} but makes
+the gauge control run in indeterminate mode (see \helpref{wxGauge}{wxgauge} documentation),
+sets the remaining and the estimated time labels (if present) to {\tt Unknown} and moves
+the progress bar a bit to indicate that some progress was done.