#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

# timer --
# This script generates a counter with start and stop buttons.
#
# RCS: @(#) $Id: timer,v 1.3 2001/10/29 16:23:33 dkf Exp $

label .counter -text 0.00 -relief raised -width 10 -padx 2m -pady 1m
button .start -text Start -command {
    if {$stopped} {
	set stopped 0
	set startMoment [clock clicks -milliseconds]
	tick
	.stop configure -state normal
	.start configure -state disabled
    }
}
button .stop -text Stop -state disabled -command {
    set stopped 1
    .stop configure -state disabled
    .start configure -state normal
}
pack .counter -side bottom -fill both
pack .start -side left -fill both -expand yes
pack .stop -side right -fill both -expand yes

set startMoment {}

set stopped 1

proc tick {} {
    global startMoment stopped
    if {$stopped} {return}
    after 50 tick
    set elapsedMS [expr {[clock clicks -milliseconds] - $startMoment}]
    .counter config -text [format "%.2f" [expr {double($elapsedMS)/1000}]]
}

bind . <Control-c> {destroy .}
bind . <Control-q> {destroy .}
focus .

# Local Variables:
# mode: tcl
# End:
