2 # the next line restarts using wish \
6 # This script generates a demo application containing only a "square"
7 # widget. It's only usable in the "tktest" application or if Tk has
8 # been compiled with tkSquare.c. This demo arranges the following
9 # bindings for the widget:
11 # Button-1 press/drag: moves square to mouse
12 # "a": toggle size animation on/off
14 # RCS: @(#) $Id: square,v 1.3 2003/09/30 14:54:30 dkf Exp $
16 package require Tk
;# We use Tk generally, and...
17 package require Tktest
;# ... we use the square widget too.
20 pack .s
-expand yes -fill both
23 bind .s
<1> {center
%x
%y
}
24 bind .s
<B1-Motion
> {center
%x
%y
}
28 # The procedure below centers the square on a given position.
32 .s position
[expr $x-($a/2)] [expr $y-($a/2)]
35 # The procedures below provide a simple form of animation where
36 # the box changes size in a pulsing pattern: larger, smaller, larger,
54 if {$s >= 40} {set inc
-3}
55 if {$s <= 10} {set inc
3}
56 .s size
[expr {$s+$inc}]