1#!/bin/sh
2# the next line restarts using wish \
3exec wish "$0" "$@"
4
5# timer --
6# This script generates a counter with start and stop buttons.
7#
8# RCS: @(#) $Id: timer,v 1.3 2001/10/29 16:23:33 dkf Exp $
9
10label .counter -text 0.00 -relief raised -width 10 -padx 2m -pady 1m
11button .start -text Start -command {
12    if {$stopped} {
13	set stopped 0
14	set startMoment [clock clicks -milliseconds]
15	tick
16	.stop configure -state normal
17	.start configure -state disabled
18    }
19}
20button .stop -text Stop -state disabled -command {
21    set stopped 1
22    .stop configure -state disabled
23    .start configure -state normal
24}
25pack .counter -side bottom -fill both
26pack .start -side left -fill both -expand yes
27pack .stop -side right -fill both -expand yes
28
29set startMoment {}
30
31set stopped 1
32
33proc tick {} {
34    global startMoment stopped
35    if {$stopped} {return}
36    after 50 tick
37    set elapsedMS [expr {[clock clicks -milliseconds] - $startMoment}]
38    .counter config -text [format "%.2f" [expr {double($elapsedMS)/1000}]]
39}
40
41bind . <Control-c> {destroy .}
42bind . <Control-q> {destroy .}
43focus .
44
45# Local Variables:
46# mode: tcl
47# End:
48