\section{\class{wxGauge}}\label{wxgauge}
A gauge is a horizontal or vertical bar which shows a quantity (often time).
+
+wxGauge supports two working modes: determinate and indeterminate progress.
+
+The first is the usual working mode (see \helpref{SetValue}{wxgaugesetvalue}
+and \helpref{SetRange}{wxgaugesetrange}) while the second can be used when
+the program is doing some processing but you don't know how much progress is
+being done.
+In this case, you can periodically call the \helpref{Pulse}{wxgaugepulse}
+function to make the progress bar switch to indeterminate mode (graphically
+it's usually a set of blocks which move or bounce in the bar control).
+
+wxGauge supports dynamic switch between these two work modes.
+
There are no user commands for the gauge.
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
-\helpref{wxEvtHandler}{wxEvtHandler}\\
+\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
+\wxheading{Include files}
+
+<wx/gauge.h>
+
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxGA\_HORIZONTAL}}{Creates a horizontal gauge.}
\twocolitem{\windowstyle{wxGA\_VERTICAL}}{Creates a vertical gauge.}
-\twocolitem{\windowstyle{wxGA\_PROGRESSBAR}}{Under Windows 95, creates a horizontal progress bar.}
+%\twocolitem{\windowstyle{wxGA\_PROGRESSBAR}}{Obsolete, doesn't do anything any more}
+\twocolitem{\windowstyle{wxGA\_SMOOTH}}{Creates smooth progress bar with one pixel wide update step (not supported by all platforms).}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
+\wxheading{Event handling}
+
+wxGauge is read-only so generates no events.
+
\wxheading{See also}
\helpref{wxSlider}{wxslider}, \helpref{wxScrollBar}{wxscrollbar}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxGauge::wxGauge}\label{wxgaugeconstr}
+
+\membersection{wxGauge::wxGauge}\label{wxgaugector}
\func{}{wxGauge}{\void}
Default constructor.
-\func{}{wxGauge}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id},\rtfsp
-\param{const int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
-\param{const long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}}
+\func{}{wxGauge}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
+\param{int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
+\param{long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}}
Constructor, creating and showing a gauge.
\docparam{id}{Window identifier.}
-\docparam{range}{Integer range (maximum value) of the gauge.}
+\docparam{range}{Integer range (maximum value) of the gauge. It is ignored when the gauge is used in indeterminate mode.}
\docparam{pos}{Window position.}
\docparam{name}{Window name.}
-\wxheading{Remarks}
-
-Under Windows 95, there are two different styles of gauge: normal gauge, and progress bar (when
-the {\bf wxGA\_PROGRESSBAR} style is used). A progress bar is always horizontal.
-
\wxheading{See also}
\helpref{wxGauge::Create}{wxgaugecreate}
-\membersection{wxGauge::\destruct{wxGauge}}
+
+\membersection{wxGauge::\destruct{wxGauge}}\label{wxgaugedtor}
\func{}{\destruct{wxGauge}}{\void}
Destructor, destroying the gauge.
+
\membersection{wxGauge::Create}\label{wxgaugecreate}
-\func{bool}{Create}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id},\rtfsp
-\param{const int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
-\param{const long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}}
+\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
+\param{int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
+\param{long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}}
-Creates the gauge for two-step construction. See \helpref{wxGauge::wxGauge}{wxgaugeconstr}\rtfsp
+Creates the gauge for two-step construction. See \helpref{wxGauge::wxGauge}{wxgaugector}\rtfsp
for further details.
+
\membersection{wxGauge::GetBezelFace}\label{wxgaugegetbezelface}
\constfunc{int}{GetBezelFace}{\void}
\wxheading{Remarks}
-Windows only, not for {\bf wxGA\_PROGRESSBAR}.
+This method is not implemented (returns $0$) for most platforms.
\wxheading{See also}
\helpref{wxGauge::SetBezelFace}{wxgaugesetbezelface}
+
\membersection{wxGauge::GetRange}\label{wxgaugegetrange}
\constfunc{int}{GetRange}{\void}
\helpref{wxGauge::SetRange}{wxgaugesetrange}
+
\membersection{wxGauge::GetShadowWidth}\label{wxgaugegetshadowwidth}
\constfunc{int}{GetShadowWidth}{\void}
\wxheading{Remarks}
-Windows only, not for {\bf wxGA\_PROGRESSBAR}.
+This method is not implemented (returns $0$) for most platforms.
\wxheading{See also}
\helpref{wxGauge::SetShadowWidth}{wxgaugesetshadowwidth}
+
\membersection{wxGauge::GetValue}\label{wxgaugegetvalue}
\constfunc{int}{GetValue}{\void}
\helpref{wxGauge::SetValue}{wxgaugesetvalue}
+
+\membersection{wxGauge::IsVertical}\label{wxgaugeisvertical}
+
+\constfunc{bool}{IsVertical}{\void}
+
+Returns \true if the gauge is vertical (has \texttt{wxGA\_VERTICAL} style) and
+\false otherwise.
+
+
\membersection{wxGauge::SetBezelFace}\label{wxgaugesetbezelface}
-\func{void}{SetBezelFace}{\param{const int }{width}}
+\func{void}{SetBezelFace}{\param{int }{width}}
Sets the 3D bezel face width.
\wxheading{Remarks}
-Windows only, not for {\bf wxGA\_PROGRESSBAR}.
+This method is not implemented (doesn't do anything) for most platforms.
\wxheading{See also}
\helpref{wxGauge::GetBezelFace}{wxgaugegetbezelface}
+
\membersection{wxGauge::SetRange}\label{wxgaugesetrange}
-\func{void}{SetRange}{\param{const int }{range}}
+\func{void}{SetRange}{\param{int }{range}}
Sets the range (maximum value) of the gauge.
+This function makes the gauge switch to determinate mode, if it's not already.
\wxheading{See also}
\helpref{wxGauge::GetRange}{wxgaugegetrange}
+
\membersection{wxGauge::SetShadowWidth}\label{wxgaugesetshadowwidth}
-\func{void}{SetShadowWidth}{\param{const int }{width}}
+\func{void}{SetShadowWidth}{\param{int }{width}}
Sets the 3D shadow width.
\wxheading{Remarks}
-Windows only, not for {\bf wxGA\_PROGRESSBAR}.
+This method is not implemented (doesn't do anything) for most platforms.
+
\membersection{wxGauge::SetValue}\label{wxgaugesetvalue}
-\func{void}{SetValue}{\param{const int }{pos}}
+\func{void}{SetValue}{\param{int }{pos}}
Sets the position of the gauge.
+This function makes the gauge switch to determinate mode, if it's not already.
\wxheading{Parameters}
\helpref{wxGauge::GetValue}{wxgaugegetvalue}
+\membersection{wxGauge::Pulse}\label{wxgaugepulse}
+
+\func{void}{Pulse}{\void}
+
+Switch the gauge to indeterminate mode (if required) and makes the gauge move
+a bit to indicate the user that some progress has been made.
+
+Note that after calling this function the value returned by \helpref{GetValue}{wxgaugegetvalue}
+is undefined and thus you need to explicitely call \helpref{SetValue}{wxgaugesetvalue} if you
+want to restore the determinate mode.
+