2 # $Id: progress.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $
4 # Ttk widget set: progress bar utilities.
7 namespace eval ttk
::progressbar {
8 variable Timers
;# Map: widget name -> after ID
12 # Periodic callback procedure for autoincrement mode
14 proc ttk
::progressbar::Autoincrement {pb steptime stepsize
} {
17 if {![winfo exists
$pb]} {
18 # widget has been destroyed -- cancel timer
19 unset -nocomplain Timers
($pb)
25 set Timers
($pb) [after $steptime \
26 [list ttk
::progressbar::Autoincrement $pb $steptime $stepsize] ]
29 # ttk::progressbar::start --
30 # Start autoincrement mode. Invoked by [$pb start] widget code.
32 proc ttk
::progressbar::start {pb
{steptime
50} {stepsize
1}} {
34 if {![info exists Timers
($pb)]} {
35 Autoincrement
$pb $steptime $stepsize
39 # ttk::progressbar::stop --
40 # Cancel autoincrement mode. Invoked by [$pb stop] widget code.
42 proc ttk
::progressbar::stop {pb
} {
44 if {[info exists Timers
($pb)]} {
45 after cancel
$Timers($pb)
48 $pb configure
-value 0