1#
2# $Id$
3#
4# Ttk widget set: progress bar utilities.
5#
6
7namespace eval ttk::progressbar {
8    variable Timers	;# Map: widget name -> after ID
9}
10
11# Autoincrement --
12#	Periodic callback procedure for autoincrement mode
13#
14proc ttk::progressbar::Autoincrement {pb steptime stepsize} {
15    variable Timers
16
17    if {![winfo exists $pb]} {
18    	# widget has been destroyed -- cancel timer
19	unset -nocomplain Timers($pb)
20	return
21    }
22
23    $pb step $stepsize
24
25    set Timers($pb) [after $steptime \
26    	[list ttk::progressbar::Autoincrement $pb $steptime $stepsize] ]
27}
28
29# ttk::progressbar::start --
30#	Start autoincrement mode.  Invoked by [$pb start] widget code.
31#
32proc ttk::progressbar::start {pb {steptime 50} {stepsize 1}} {
33    variable Timers
34    if {![info exists Timers($pb)]} {
35	Autoincrement $pb $steptime $stepsize
36    }
37}
38
39# ttk::progressbar::stop --
40#	Cancel autoincrement mode. Invoked by [$pb stop] widget code.
41#
42proc ttk::progressbar::stop {pb} {
43    variable Timers
44    if {[info exists Timers($pb)]} {
45	after cancel $Timers($pb)
46	unset Timers($pb)
47    }
48    $pb configure -value 0
49}
50
51
52