2 # Ttk widget set: progress bar utilities.
5 namespace eval ttk
::progressbar {
6 variable Timers
;# Map: widget name -> after ID
10 # Periodic callback procedure for autoincrement mode
12 proc ttk
::progressbar::Autoincrement {pb steptime stepsize
} {
15 if {![winfo exists
$pb]} {
16 # widget has been destroyed -- cancel timer
17 unset -nocomplain Timers
($pb)
23 set Timers
($pb) [after $steptime \
24 [list ttk
::progressbar::Autoincrement $pb $steptime $stepsize] ]
27 # ttk::progressbar::start --
28 # Start autoincrement mode. Invoked by [$pb start] widget code.
30 proc ttk
::progressbar::start {pb
{steptime
50} {stepsize
1}} {
32 if {![info exists Timers
($pb)]} {
33 Autoincrement
$pb $steptime $stepsize
37 # ttk::progressbar::stop --
38 # Cancel autoincrement mode. Invoked by [$pb stop] widget code.
40 proc ttk
::progressbar::stop {pb
} {
42 if {[info exists Timers
($pb)]} {
43 after cancel
$Timers($pb)
46 $pb configure
-value 0