square
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #!/bin/sh
  2. # the next line restarts using wish 
  3. exec wish "$0" "$@"
  4. # square --
  5. # This script generates a demo application containing only a "square"
  6. # widget.  It's only usable in the "tktest" application or if Tk has
  7. # been compiled with tkSquare.c. This demo arranges the following
  8. # bindings for the widget:
  9. # Button-1 press/drag: moves square to mouse
  10. # "a": toggle size animation on/off
  11. #
  12. # RCS: @(#) $Id: square,v 1.2 1998/09/14 18:23:30 stanton Exp $
  13. square .s
  14. pack .s -expand yes -fill both
  15. wm minsize . 1 1
  16. bind .s <1> {center %x %y}
  17. bind .s <B1-Motion> {center %x %y}
  18. bind .s a animate
  19. focus .s
  20. # The procedure below centers the square on a given position.
  21. proc center {x y} {
  22.     set a [.s size]
  23.     .s position [expr $x-($a/2)] [expr $y-($a/2)]
  24. }
  25. # The procedures below provide a simple form of animation where
  26. # the box changes size in a pulsing pattern: larger, smaller, larger,
  27. # and so on.
  28. set inc 0
  29. proc animate {} {
  30.     global inc
  31.     if {$inc == 0} {
  32. set inc 3
  33. timer
  34.     } else {
  35. set inc 0
  36.     }
  37. }
  38. proc timer {} {
  39.     global inc
  40.     set s [.s size]
  41.     if {$inc == 0} return
  42.     if {$s >= 40} {set inc -3}
  43.     if {$s <= 10} {set inc 3}
  44.     .s size [expr {$s+$inc}]
  45.     after 30 timer
  46. }