OSDN Git Service

Updated to tk 8.4.1
[pf3gnuchains/sourceware.git] / tk / library / demos / arrow.tcl
index f3f00c1..c2d0d4b 100644 (file)
@@ -33,68 +33,69 @@ proc arrowSetup c {
     # Create the arrow and outline.
 
     $c delete all
-    eval "$c create line $v(x1) $v(y) $v(x2) $v(y) -width [expr 10*$v(width)] \
-           -arrowshape {[expr 10*$v(a)] [expr 10*$v(b)] [expr 10*$v(c)]} \
-           -arrow last $v(bigLineStyle)"
-    set xtip [expr $v(x2)-10*$v(b)]
-    set deltaY [expr 10*$v(c)+5*$v(width)]
-    $c create line $v(x2) $v(y) $xtip [expr $v(y)+$deltaY] \
-           [expr $v(x2)-10*$v(a)] $v(y) $xtip [expr $v(y)-$deltaY] \
+    eval {$c create line $v(x1) $v(y) $v(x2) $v(y)  -arrow last \
+           -width [expr {10*$v(width)}] -arrowshape [list \
+           [expr {10*$v(a)}] [expr {10*$v(b)}] [expr {10*$v(c)}]]} \
+           $v(bigLineStyle)
+    set xtip [expr {$v(x2)-10*$v(b)}]
+    set deltaY [expr {10*$v(c)+5*$v(width)}]
+    $c create line $v(x2) $v(y) $xtip [expr {$v(y)+$deltaY}] \
+           [expr {$v(x2)-10*$v(a)}] $v(y) $xtip [expr {$v(y)-$deltaY}] \
            $v(x2) $v(y) -width 2 -capstyle round -joinstyle round
 
     # Create the boxes for reshaping the line and arrowhead.
 
-    eval "$c create rect [expr $v(x2)-10*$v(a)-5] [expr $v(y)-5] \
-           [expr $v(x2)-10*$v(a)+5] [expr $v(y)+5] $v(boxStyle) \
-           -tags {box1 box}"
-    eval "$c create rect [expr $xtip-5] [expr $v(y)-$deltaY-5] \
-           [expr $xtip+5] [expr $v(y)-$deltaY+5] $v(boxStyle) \
-           -tags {box2 box}"
-    eval "$c create rect [expr $v(x1)-5] [expr $v(y)-5*$v(width)-5] \
-           [expr $v(x1)+5] [expr $v(y)-5*$v(width)+5] $v(boxStyle) \
-           -tags {box3 box}"
+    eval {$c create rect [expr {$v(x2)-10*$v(a)-5}] [expr {$v(y)-5}] \
+           [expr {$v(x2)-10*$v(a)+5}] [expr {$v(y)+5}] \
+           -tags {box1 box}} $v(boxStyle)
+    eval {$c create rect [expr {$xtip-5}] [expr {$v(y)-$deltaY-5}] \
+           [expr {$xtip+5}] [expr {$v(y)-$deltaY+5}] \
+           -tags {box2 box}} $v(boxStyle)
+    eval {$c create rect [expr {$v(x1)-5}] [expr {$v(y)-5*$v(width)-5}] \
+           [expr {$v(x1)+5}] [expr {$v(y)-5*$v(width)+5}] \
+           -tags {box3 box}} $v(boxStyle)
     if {$cur != ""} {
        eval $c itemconfigure $cur $v(activeStyle)
     }
 
     # Create three arrows in actual size with the same parameters
 
-    $c create line [expr $v(x2)+50] 0 [expr $v(x2)+50] 1000 \
+    $c create line [expr {$v(x2)+50}] 0 [expr {$v(x2)+50}] 1000 \
            -width 2
-    set tmp [expr $v(x2)+100]
-    $c create line $tmp [expr $v(y)-125] $tmp [expr $v(y)-75] \
+    set tmp [expr {$v(x2)+100}]
+    $c create line $tmp [expr {$v(y)-125}] $tmp [expr {$v(y)-75}] \
            -width $v(width) \
            -arrow both -arrowshape "$v(a) $v(b) $v(c)"
-    $c create line [expr $tmp-25] $v(y) [expr $tmp+25] $v(y) \
+    $c create line [expr {$tmp-25}] $v(y) [expr {$tmp+25}] $v(y) \
            -width $v(width) \
            -arrow both -arrowshape "$v(a) $v(b) $v(c)"
-    $c create line [expr $tmp-25] [expr $v(y)+75] [expr $tmp+25] \
-           [expr $v(y)+125] -width $v(width) \
+    $c create line [expr {$tmp-25}] [expr {$v(y)+75}] [expr {$tmp+25}] \
+           [expr {$v(y)+125}] -width $v(width) \
            -arrow both -arrowshape "$v(a) $v(b) $v(c)"
 
     # Create a bunch of other arrows and text items showing the
     # current dimensions.
 
-    set tmp [expr $v(x2)+10]
-    $c create line $tmp [expr $v(y)-5*$v(width)] \
-           $tmp [expr $v(y)-$deltaY] \
+    set tmp [expr {$v(x2)+10}]
+    $c create line $tmp [expr {$v(y)-5*$v(width)}] \
+           $tmp [expr {$v(y)-$deltaY}] \
            -arrow both -arrowshape $v(smallTips)
-    $c create text [expr $v(x2)+15] [expr $v(y)-$deltaY+5*$v(c)] \
+    $c create text [expr {$v(x2)+15}] [expr {$v(y)-$deltaY+5*$v(c)}] \
            -text $v(c) -anchor w
-    set tmp [expr $v(x1)-10]
-    $c create line $tmp [expr $v(y)-5*$v(width)] \
-           $tmp [expr $v(y)+5*$v(width)] \
+    set tmp [expr {$v(x1)-10}]
+    $c create line $tmp [expr {$v(y)-5*$v(width)}] \
+           $tmp [expr {$v(y)+5*$v(width)}] \
            -arrow both -arrowshape $v(smallTips)
-    $c create text [expr $v(x1)-15] $v(y) -text $v(width) -anchor e
-    set tmp [expr $v(y)+5*$v(width)+10*$v(c)+10]
-    $c create line [expr $v(x2)-10*$v(a)] $tmp $v(x2) $tmp \
+    $c create text [expr {$v(x1)-15}] $v(y) -text $v(width) -anchor e
+    set tmp [expr {$v(y)+5*$v(width)+10*$v(c)+10}]
+    $c create line [expr {$v(x2)-10*$v(a)}] $tmp $v(x2) $tmp \
            -arrow both -arrowshape $v(smallTips)
-    $c create text [expr $v(x2)-5*$v(a)] [expr $tmp+5] \
+    $c create text [expr {$v(x2)-5*$v(a)}] [expr {$tmp+5}] \
            -text $v(a) -anchor n
-    set tmp [expr $tmp+25]
-    $c create line [expr $v(x2)-10*$v(b)] $tmp $v(x2) $tmp \
+    set tmp [expr {$tmp+25}]
+    $c create line [expr {$v(x2)-10*$v(b)}] $tmp $v(x2) $tmp \
            -arrow both -arrowshape $v(smallTips)
-    $c create text [expr $v(x2)-5*$v(b)] [expr $tmp+5] \
+    $c create text [expr {$v(x2)-5*$v(b)}] [expr {$tmp+5}] \
            -text $v(b) -anchor n
 
     $c create text $v(x1) 310 -text "-width  $v(width)" \
@@ -168,7 +169,7 @@ bind $c <Any-ButtonRelease-1> "arrowSetup $c"
 
 proc arrowMove1 {c x y} {
     upvar #0 demo_arrowInfo v
-    set newA [expr ($v(x2)+5-round([$c canvasx $x]))/10]
+    set newA [expr {($v(x2)+5-round([$c canvasx $x]))/10}]
     if {$newA < 0} {
        set newA 0
     }
@@ -176,7 +177,7 @@ proc arrowMove1 {c x y} {
        set newA 25
     }
     if {$newA != $v(a)} {
-       $c move box1 [expr 10*($v(a)-$newA)] 0
+       $c move box1 [expr {10*($v(a)-$newA)}] 0
        set v(a) $newA
     }
 }
@@ -192,14 +193,14 @@ proc arrowMove1 {c x y} {
 
 proc arrowMove2 {c x y} {
     upvar #0 demo_arrowInfo v
-    set newB [expr ($v(x2)+5-round([$c canvasx $x]))/10]
+    set newB [expr {($v(x2)+5-round([$c canvasx $x]))/10}]
     if {$newB < 0} {
        set newB 0
     }
     if {$newB > 25} {
        set newB 25
     }
-    set newC [expr ($v(y)+5-round([$c canvasy $y])-5*$v(width))/10]
+    set newC [expr {($v(y)+5-round([$c canvasy $y])-5*$v(width))/10}]
     if {$newC < 0} {
        set newC 0
     }
@@ -207,7 +208,7 @@ proc arrowMove2 {c x y} {
        set newC 20
     }
     if {($newB != $v(b)) || ($newC != $v(c))} {
-       $c move box2 [expr 10*($v(b)-$newB)] [expr 10*($v(c)-$newC)]
+       $c move box2 [expr {10*($v(b)-$newB)}] [expr {10*($v(c)-$newC)}]
        set v(b) $newB
        set v(c) $newC
     }
@@ -224,7 +225,7 @@ proc arrowMove2 {c x y} {
 
 proc arrowMove3 {c x y} {
     upvar #0 demo_arrowInfo v
-    set newWidth [expr ($v(y)+2-round([$c canvasy $y]))/5]
+    set newWidth [expr {($v(y)+2-round([$c canvasy $y]))/5}]
     if {$newWidth < 0} {
        set newWidth 0
     }
@@ -232,8 +233,7 @@ proc arrowMove3 {c x y} {
        set newWidth 20
     }
     if {$newWidth != $v(width)} {
-       $c move box3 0 [expr 5*($v(width)-$newWidth)]
+       $c move box3 0 [expr {5*($v(width)-$newWidth)}]
        set v(width) $newWidth
     }
 }
-