\HeaderA{tkProgressBar}{Progress Bars via Tk}{tkProgressBar}
\aliasA{close.tkProgressBar}{tkProgressBar}{close.tkProgressBar}
\aliasA{getTkProgressBar}{tkProgressBar}{getTkProgressBar}
\aliasA{setTkProgressBar}{tkProgressBar}{setTkProgressBar}
\keyword{utilities}{tkProgressBar}
\begin{Description}\relax
Put up a Tk progress bar widget.
\end{Description}
\begin{Usage}
\begin{verbatim}
tkProgressBar(title = "R progress bar", label = "",
              min = 0, max = 1, initial = 0, width = 300)

getTkProgressBar(pb)
setTkProgressBar(pb, value, title = NULL, label = NULL)
## S3 method for class 'tkProgressBar':
close(con, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{title, label}] character strings, giving the window title and the
label on the dialog box respectively.
\item[\code{min, max}] (finite) numeric values for the extremes of the
progress bar.
\item[\code{initial, value}] initial or new value for the progress bar.
\item[\code{width}] the width of the progress bar in pixels: the dialog box
will be 40 pixels wider (plus frame).
\item[\code{pb, con}] an object of class \code{"tkProgressBar"}.
\item[\code{...}] for consistency with the generic.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
\code{tkProgressBar} will display a widget containing a label and
progress bar.

\code{setTkProgessBar} will update the value and for non-\code{NULL}
values, the title and label (provided there was one when the widget
was created).  Missing (\code{\LinkA{NA}{NA}}) and out-of-range values of
\code{value} will be (silently) ignored.

The progress bar should be \code{close}d when finished with.

This will use the \code{ttk::progressbar} widget for Tk version 8.5 or
later, otherwise \R's copy of BWidget's \code{progressbar}.
\end{Details}
\begin{Value}
For \code{tkProgressBar} an object of class \code{"tkProgressBar"}.

For \code{getTkProgressBar} and \code{setTkProgressBar}, a
length-one numeric vector giving the previous value (invisibly for
\code{setTkProgressBar}).
\end{Value}
\begin{SeeAlso}\relax
\code{\LinkA{txtProgressBar}{txtProgressBar}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
pb <- tkProgressBar("test progress bar", "Some information in %",
                    0, 100, 50)
Sys.sleep(0.5)
u <- c(0, sort(runif(20, 0 ,100)), 100)
for(i in u) {
    Sys.sleep(0.1)
    info <- sprintf("%d%% done", round(i))
    setTkProgressBar(pb, i, sprintf("test (%s)", info), info)
}
Sys.sleep(5)
close(pb)
\end{ExampleCode}
\end{Examples}

