# Copyright © 1996,1997,1998 Christopher Jay Cox, All rights reserved.
#
# $Header: /home/ccox/impress/RCS/impress.tcl,v 1.8 1998/08/08 06:24:52 ccox Exp $
# restart trick \
exec wish "$0" "$@"
option add *Radiobutton*borderWidth 1
option add *Button*borderWidth 1
global Group GroupNo
global Global
set Global(PointsInch) [winfo fpixels . 1i]
set Global(FontList) {
{-adobe-avantgarde-demi-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-avantgarde-demi-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-avantgarde-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-avantgarde-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-cheq-medium-r-normal--*-240-72-72-m-0-adobe-fontspecific}
{-adobe-courier-bold-i-normal--*-240-72-72-m-0-iso8859-1}
{-adobe-courier-bold-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-courier-bold-r-normal--*-240-72-72-m-0-iso8859-1}
{-adobe-courier-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-courier-medium-i-normal--*-240-72-72-m-0-iso8859-1}
{-adobe-courier-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-courier-medium-r-normal--*-240-72-72-m-0-iso8859-1}
{-adobe-courier-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-helvetica-bold-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-helvetica-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-helvetica-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-helvetica-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-lubalingraph-demi-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-lubalingraph-demi-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-lubalingraph-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-lubalingraph-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-newcenturyschlbk-bold-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-newcenturyschlbk-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-newcenturyschlbk-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-newcenturyschlbk-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-souvenir-demi-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-souvenir-demi-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-souvenir-light-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-souvenir-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-symbol-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-adobe-times-bold-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-times-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-times-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-times-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-utopia-bold-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-utopia-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-utopia-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-utopia-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-adobe-zapfdingbats-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-bitstream-charter-black-i-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-black-r-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-bold-i-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-charter-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-bitstream-courier-bold-i-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-bold-i-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-bold-r-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-bold-r-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-medium-i-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-medium-i-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-medium-r-normal--*-240-72-72-m-0-iso8859-1}
{-bitstream-courier-medium-r-normal--*-240-72-72-m-0-iso8859-1}
{-brecher-shalomoldstyle-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-brecher-shalomscript-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-brecher-shalomstick-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-fontbank-muriel-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-fontbank-roostheavy-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-meit-goodcitymodern-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-meit-goodcitymodern-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-agate-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-agate-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-agate-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-arnoldboecklin-extrabold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-baskerville-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-baskerville-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-baskerville-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-becker-medium-r-normal-medium-*-240-72-72-p-0-iso8859-1}
{-paradise-blippo-heavy-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-bodoni-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-bodoni-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-bodoni-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-cooper-heavy-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-eras-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-eras-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-erasblack-demibold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-eraslight-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-erasmedium-medium-r-normal-medium-*-240-72-72-p-0-iso8859-1}
{-paradise-erasultrablk-heavy-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-garamond-medium-i-normal-medium-*-240-72-72-p-0-iso8859-1}
{-paradise-goudyoldstyle-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-goudyoldstyle-medium-i-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-goudyoldstyle-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-parkavenue-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-paradise-slogan-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-rakowski-ann-medium-r-normal-stone-*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-crackling-medium-r-normal-fire-*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-davysbigkeycaps-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-davysdingbats-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-davysotherdingbats-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-dobkin-medium-r-normal-script-*-240-72-72-p-0-iso8859-1}
{-rakowski-dragonwick-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-elizabeth-medium-r-normal-alternate-*-240-72-72-p-0-iso8859-1}
{-rakowski-green-medium-r-normal-caps-*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-polosemiscript-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-rechtman-medium-r-normal-script-*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-rudelsberg-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-salter-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-shohl-medium-r-normal-fold-*-240-72-72-p-0-iso8859-1}
{-rakowski-tempofont-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-tribeca-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-upperwestside-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-rakowski-zaleskicaps-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-southern-tekton display ssi-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-southern-victoriana display ssi-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown--medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown--medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown--medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-blackforest-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-bodidlybold-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-braillehc-medium-r-normal--*-240-72-72-m-0-iso8859-1}
{-unknown-brushstroke-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-burgundian-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-caligula-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-carrickcaps-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-cartwright-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-classicheavy-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-comicscartoon-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-coronet-demibold-i-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-crillee-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-cuneifont-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-duncan-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-engraver-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-florence-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-frizquadrata-bold-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-frizquadrata-thin-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-futura_poster-light-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-genoaitalic-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-genoaroman-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-igloolaser-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-lauramccrary-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-linotext-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-luxembourg-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-manzanita-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-mazama-medium-r-normal-plain-*-240-72-72-p-0-iso8859-1}
{-unknown-mesozoicgothic-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-oldtown-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-oswaldblack-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-perrygothic-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-postantiqua-regular-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-romeodn-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-sharktooth-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-sinaloa-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-spooky-medium-r-normal-plain-*-240-72-72-p-0-adobe-fontspecific}
{-unknown-sumdumgoi-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-tempofontitalic-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-unknown-westernslant-medium-r-normal--*-240-72-72-p-0-iso8859-1}
{-unknown-windsordemi-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-urw-oldtown-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-urw-oldtowncnd-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
{-urw-oldtownext-medium-r-normal--*-240-72-72-p-0-adobe-fontspecific}
}
image create bitmap stripe -data "
#define stripe4_width 4
#define stripe4_height 4
static char stripe4_bits[] = {
0x09, 0x0c, 0x06, 0x03};
"
set Global(Timeout) 40000
set Global(sbg) ""
set Global(F_Outline) ""
set Global(F_Fill) ""
set Global(F_SlideBG) ""
set Global(colortypeSave) Outline
set Global(PSColor) color
set Global(Circulate) 1
set Global(EmbedPage) 1
set Global(CoordFactorX) 1
set Global(CoordFactorY) 1
set Global(Xpos) 0
set Global(Ypos) 0
set Global(CurrentPageId) 1
set Global(curline) ""
set Global(colortype) Outline
set Global(selectnum) 0
set Global(CurrentPage) ""
set Global(FixedAspect) True
set Global(Grid) 0
set Global(GridX) .25i
set Global(GridY) .25i
set Global(UnitX) i
set Global(UnitY) i
set Global(ScreenH) [winfo screenheight .]
set Global(ScreenW) [winfo screenwidth .]
set Global(Start) ""
set Global(top_left_corner) bottom_right_corner
set Global(top_side) bottom_side
set Global(top_right_corner) bottom_left_corner
set Global(right_side) left_side
set Global(bottom_right_corner) top_left_corner
set Global(bottom_side) top_side
set Global(bottom_left_corner) top_right_corner
set Global(left_side) right_side
set Global(Duplicate) ""
set Global(Cut) ""
set Global(Copy) ""
set Global(Message) "Select"
set Global(Smooth) 0
set Global(Msg_Smooth) "Switch to Smooth Lines"
set Global(Msg_miter) "Miter Line Joints"
set Global(Msg_round) "Round Line Joints"
set Global(Msg_bevel) "Bevel Line Joints"
set Global(Msg_first) "Arrow at First Point"
set Global(Msg_last) "Arrow at Last Point"
set Global(Msg_both) "Arrow at Both Ends"
set Global(Msg_none) "No Arrows"
set Global(Msg_Rounded_Rectangle) "Rounded Rectangle"
set Global(Msg_Flip_Vert) "Flip Vertical"
set Global(Msg_Flip_Horiz) "Flip Horizontal"
set Global(Msg_PageProp) "Page Properities"
set Global(Spline) 0
set Global(Sub-Cursor) ""
set Global(Fill) ""
set Global(Outline) black
set Global(Stipple) ""
set Global(OutStipple) ""
set Global(JoinStyle) miter
set Global(Arrow) none
set Global(Width) 1.0
set Global(PageWidth) 8.5i
set Global(PageHeight) 11i
set Global(Landscape) 0
set Global(PageVisX) 3i
set Global(PageVisY) 2i
set Global(PageBg) white
set Global(Units) i
set Global(ScrollDir) ""
set Global(OpenFile) ""
set Global(ParaStyle) Normal
set Global(AnchorChosen) 0
set Global(Gravity) 1
set Global(GravityVal) 30
set Global(MenuSelect) 0
set Global(Font) {-*-apollo-*-r-*-*-*-240-72-72-*-*-*-*}
set Global(PrintCmd) {lpr -Plp2}
set Global(FontScale) 1
set Global(PrivateCmap) ""
set GroupNo [clock clicks]
set Global(ButtonSize) .35i
set Global(ButtonRelief) flat
set Global(ButtonOrient) top
set Global(ButtonCount) 10
set Global(ColorWidth) 400
set Global(ColorHeight) 100
set Global(SlideBG) white
button .b
set Global(Background) [.b cget -bg]
set Global(ActiveBackground) [.b cget -activebackground]
destroy .b
set Global(DefButtonColor) [. cget -bg]
set Global(ButtonColor) DarkCyan
set Global(ButtonStipple1) gray50
set Global(ButtonStipple2) {}
set Global(Buttons) {
{Button PageProp {
set i [$Global(CurrentCanvas) create polygon 0.0 0.0 25.0 0.0 \
25.0 0.0 175.073846154 0.0 175.073846154 0.0 200.073846154 0.0 \
200.073846154 25.0 200.073846154 25.0 200.073846154 175.073846154 \
200.073846154 175.073846154 200.073846154 200.073846154 \
175.073846154 200.073846154 175.073846154 200.073846154 25.0 \
200.073846154 25.0 200.073846154 0.0 200.073846154 0.0 \
175.073846154 0.0 175.073846154 0.0 25.0 0.0 25.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 36.0 172.0 36.0 47.0 \
61.0 22.0 161.0 22.0 161.0 172.0 \
-fill #FFFFFFFFFFFF -outline black -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 36.0 47.0 61.0184615385 \
47.0184615385 61.0184615385 22.0092307692 -arrow none \
-arrowshape {8 10 3} -capstyle butt -fill black -joinstyle miter \
-smooth 0 -splinesteps 12 -stipple $Global(ButtonStipple1) \
-tags {} -width 1]
}}
{Button Grid {
set i [$Global(CurrentCanvas) create polygon 0.0 0.0 25.0 0.0 25.0 \
0.0 175.073846154 0.0 175.073846154 0.0 200.073846154 0.0 \
200.073846154 25.0 200.073846154 25.0 200.073846154 \
175.073846154 200.073846154 175.073846154 200.073846154 \
200.073846154 175.073846154 200.073846154 175.073846154 \
200.073846154 25.0 200.073846154 25.0 200.073846154 0.0 \
200.073846154 0.0 175.073846154 0.0 175.073846154 0.0 25.0 \
0.0 25.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 24.0092307692 \
26.0184615385 49.0092307692 26.0184615385 49.0092307692 \
26.0184615385 149.064615385 26.0184615385 149.064615385 \
26.0184615385 174.064615385 26.0184615385 174.064615385 \
51.0184615385 174.064615385 51.0184615385 174.064615385 \
151.073846154 174.064615385 151.073846154 174.064615385 \
176.073846154 149.064615385 176.073846154 149.064615385 \
176.073846154 49.0092307692 176.073846154 49.0092307692 \
176.073846154 24.0092307692 176.073846154 24.0092307692 \
151.073846154 24.0092307692 151.073846154 24.0092307692 \
51.0184615385 24.0092307692 51.0184615385 \
-fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) \
-tags Group-759492866 -width 2]
set Group($Global(CurrentCanvas),$i) {Group-759492866}
set i [$Global(CurrentCanvas) create line 24.0 101.0 174.064615385 \
101.046153846 \
-arrow none -arrowshape {8 10 3} -capstyle butt -fill black \
-joinstyle miter -smooth 0 -splinesteps 12 -stipple {} \
-tags Group-759492866 -width 2]
set Group($Global(CurrentCanvas),$i) {Group-759492866}
set i [$Global(CurrentCanvas) create line 99.0 176.0 99.036923077 \
26.0184615385 \
-arrow none -arrowshape {8 10 3} -capstyle butt -fill black \
-joinstyle miter -smooth 0 -splinesteps 12 -stipple {} \
-tags Group-759492866 -width 2]
set Group($Global(CurrentCanvas),$i) {Group-759492866}
}}
{RadioButton Select {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 \
24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 \
24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 \
-1.0 24.0 -1.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 37.9541566013 \
22.1761496591 61.9830972933 102.92577573 73.664874718 \
69.3468499177 109.153797554 67.2150576124 \
-fill $Global(ButtonColor) -outline #000000000000 -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 73.664874718 \
69.3468499177 113.417382164 138.192903283 129.140948917 \
126.289330577 \
-fill $Global(ButtonColor) -outline #000000000000 -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{RadioButton Oval {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 \
24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 \
24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 \
-1.0 24.0 -1.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 83.0723583615 \
21.1233836897 108.415159222 24.7089434403 130.701244279 \
35.0331512701 147.242582766 50.850755345 156.044045139 \
70.2539191706 156.044045139 90.9023348301 147.242582766 \
110.305498656 130.701244279 126.123102731 108.415159222 \
136.44731056 83.0723583615 140.032870311 57.7295575006 \
136.44731056 35.4434724439 126.123102731 18.9021339567 \
110.305498656 10.1006715836 90.9023348301 10.1006715836 \
70.2539191706 18.9021339567 50.850755345 35.4434724439 \
35.0331512701 57.7295575006 24.7089434403 \
-fill $Global(ButtonColor) -outline black -smooth 1 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{RadioButton Rectangle {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 24.0 \
-1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 24.0 171.0 \
136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 161.0 24.0 161.0 \
24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 24.0 -1.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 20.0 32.0 45.0 32.0 45.0 \
32.0 126.0 32.0 126.0 32.0 151.0 32.0 151.0 57.0 151.0 57.0 151.0 \
104.0 151.0 104.0 151.0 129.0 126.0 129.0 126.0 129.0 45.0 129.0 \
45.0 129.0 20.0 129.0 20.0 104.0 20.0 104.0 20.0 57.0 20.0 57.0 \
-fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{RadioButton Rounded_Rectangle {
set i [$Global(CurrentCanvas) create polygon 0.0 -1.0 25.0 -1.0 25.0 \
-1.0 147.0 -1.0 147.0 -1.0 172.0 -1.0 172.0 24.0 172.0 24.0 172.0 \
136.0 172.0 136.0 172.0 161.0 147.0 161.0 147.0 161.0 25.0 161.0 \
25.0 161.0 0.0 161.0 0.0 136.0 0.0 136.0 0.0 24.0 0.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 18.7164223548 \
93.1459545703 18.7164223548 78.0842279201 18.7164223548 \
55.4916379449 39.8880947215 32.8990479696 61.0597670883 \
32.8990479696 110.460335944 32.8990479696 131.632008311 \
32.8990479696 152.803680677 55.4916379449 152.803680677 \
78.0842279201 152.803680677 93.1459545703 152.803680677 \
115.738544546 131.632008311 138.331134521 110.460335944 \
138.331134521 61.0597670883 138.331134521 39.8880947215 \
138.331134521 18.7164223548 115.738544546 18.7164223548 \
93.1459545703 \
-fill $Global(ButtonColor) -outline black -smooth 1 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{RadioButton Polygon {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 24.0 \
-1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 24.0 171.0 \
136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 161.0 24.0 161.0 \
24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 24.0 -1.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 15.0 130.0 53.0 15.0 \
143.0 70.0 154.0 141.0 84.0 100.0 \
-fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{RadioButton Line {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 24.0 \
-1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 24.0 171.0 \
136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 161.0 24.0 161.0 \
24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 24.0 -1.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create line 49.0 135.0 116.0 23.0 \
-arrow none -arrowshape {8 10 3} -capstyle butt \
-fill $Global(ButtonColor) -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 2]
}}
{RadioButton Draw {
set i [$Global(CurrentCanvas) create polygon 0.0 -1.0 25.0 -1.0 25.0 \
-1.0 147.0 -1.0 147.0 -1.0 172.0 -1.0 172.0 24.0 172.0 24.0 172.0 \
136.0 172.0 136.0 172.0 161.0 147.0 161.0 147.0 161.0 25.0 161.0 \
25.0 161.0 0.0 161.0 0.0 136.0 0.0 136.0 0.0 24.0 0.0 24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create line 33.365796242 145.814066335 \
36.5148450736 144.251781322 42.8129427365 142.68949631 \
50.1607233434 142.68949631 57.5085039502 142.68949631 \
64.8562845571 142.68949631 70.1046992763 141.127211298 \
74.3034310516 139.564926285 80.6015287147 138.002641273 \
84.80026049 136.440356261 87.9493093215 134.878071249 \
88.9989922654 134.096928743 92.1480410969 130.972358718 \
92.6728825688 130.191216212 92.6728825688 129.410073706 \
92.6728825688 127.847788693 92.1480410969 127.847788693 \
91.0983581531 127.847788693 90.5735166811 127.066646187 \
89.5238337373 127.066646187 88.4741507934 127.066646187 \
87.4244678496 127.066646187 86.8996263777 127.847788693 \
86.3747849058 127.847788693 85.8499434338 128.6289312 \
85.8499434338 129.410073706 86.3747849058 129.410073706 \
87.4244678496 130.191216212 91.623199625 131.753501224 \
97.9212972879 131.753501224 104.219394951 131.753501224 \
108.418126727 131.753501224 111.567175558 128.6289312 \
113.666541446 125.504361175 114.71622439 120.817506139 \
114.71622439 119.255221126 114.191382918 118.47407862 \
111.042334086 115.349508596 107.893285255 113.787223583 \
103.694553479 112.224938572 98.4461387599 112.224938572 \
97.396455816 112.224938572 96.8716143441 112.224938572 \
97.396455816 113.006081078 100.545504648 114.568366089 \
103.694553479 117.692936114 107.893285255 119.255221126 \
112.09201703 120.817506139 117.340431749 122.379791151 \
122.588846468 122.379791151 127.837261188 120.817506139 \
132.035992963 117.692936114 134.135358851 113.006081078 \
134.660200323 111.443796066 134.135358851 109.881511053 \
133.085675907 105.194656016 130.986310019 100.50780098 \
127.837261188 98.9455159677 124.688212356 97.3832309552 \
123.11368794 97.3832309552 119.964639109 98.9455159677 \
119.439797637 99.7266584736 118.914956165 100.50780098 \
119.439797637 101.288943486 122.588846468 105.975798522 \
129.936627075 107.538083535 136.234724738 109.100368547 \
140.433456514 110.662653559 148.830920064 112.224938572 \
154.079334783 110.662653559 154.604176255 109.881511053 \
-arrow none -arrowshape {8 10 3} -capstyle butt -fill black \
-joinstyle miter -smooth 1 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 78.7435236121 \
33.9985878915 78.7435236121 33.9985878915 106.368114916 \
50.9983363864 106.368114916 50.9983363864 80.7643270484 \
106.560014371 80.4934977219 106.39335017 67.7228533257 \
111.976600902 55.5771996827 120.184812798 43.6815423415 \
130.41382813 31.9733822263 143.371969751 25.7859737669 \
150.392699215 25.7859737669 150.392699215 32.8900353314 \
134.601266178 39.4941042931 114.768226267 41.7649040308 \
97.1226539937 41.2024123527 84.0811802709 40.2440931973 \
81.9978777593 40.2440931973 81.9978777593 78.7435236121 \
33.9985878915 78.7435236121 33.9985878915 \
-fill $Global(ButtonColor) -outline black -smooth 1 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 26.0568030934 \
150.559363416 61.5562778913 92.87271687 \
-arrow none -arrowshape {8 10 3} -capstyle butt -fill black \
-joinstyle miter -smooth 1 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 67.2853597982 \
82.9561969146 68.5915312389 84.1540647575 69.388371286 \
85.7791073015 69.5797692697 87.6353204321 69.1426397684 \
89.4988174513 68.1297070511 91.144833117 66.6631457534 \
92.3748336461 64.9198448115 93.0404628225 63.1100720471 \
93.0614359441 61.4521127656 92.4352233425 60.1459413251 \
91.2373554997 59.3491012779 89.6123129557 59.1577032942 \
87.756099825 59.5948327955 85.8926028059 60.6077655128 \
84.2465871402 62.0743268104 83.016586611 63.8176277524 \
82.3509574347 65.6274005169 82.3299843131 \
-fill {} -outline black -smooth 1 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 79.8476739433 \
13.3947260516 86.618407106 17.5613310748 86.618407106 \
17.5613310748 117.222121002 36.3943857799 117.222121002 \
36.3943857799 123.992854165 40.5609908033 119.826249142 \
47.3317239661 119.826249142 47.3317239661 118.659599735 \
49.2275292516 118.659599735 49.2275292516 114.492994711 \
55.9982624145 107.722261548 51.831657391 107.722261548 \
51.831657391 77.118547653 32.9986026859 77.118547653 \
32.9986026859 70.3478144903 28.8319976627 74.5144195135 \
22.0612644999 74.5144195135 22.0612644999 75.6810689201 \
20.1654592143 75.6810689201 20.1654592143 \
-fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.0 34.0 115.0 34.0 \
135.0 6.0 135.0 6.0 92.0 6.0 92.0 6.0 87.0 16.0 87.0 16.0 \
114.0 34.0 114.0 34.0 \
-fill white -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple2) -tags {} -width 1]
}}
{RadioButton Text {
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 120.580883712 20.1519264665 112.23091983 \
111.647154041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 112.23091983 111.647154041 111.992824043 \
114.033649023 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 111.992824043 114.033649023 111.815636481 \
116.071305992 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 111.815636481 116.071305992 111.682745809 \
117.760124947 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 123.498941382 \
129.604006076 125.857750807 129.653840078 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 121.433598856 \
129.471115404 123.498941382 129.604006076 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 119.661723232 \
129.24409384 121.433598856 129.471115404 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 118.172240285 \
128.922941383 119.661723232 129.24409384 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 116.976224238 \
128.518732256 118.172240285 128.922941383 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.962932865 \
128.014855125 116.976224238 128.518732256 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.962932865 \
128.014855125 124.960738772 132.654954418 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.038235273 \
127.411309991 115.962932865 128.014855125 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 114.202131463 \
126.713633963 115.038235273 127.411309991 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 113.454621434 \
125.921827043 114.202131463 126.713633963 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 112.795705186 \
125.03035212 113.454621434 125.921827043 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 112.358273391 \
124.288379202 112.795705186 125.03035212 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 112.0205096 \
123.419052723 112.358273391 124.288379202 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.776876701 \
122.427909796 112.0205096 123.419052723 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.627374696 \
121.314950419 111.776876701 122.427909796 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.577540694 \
120.080174593 111.627374696 121.314950419 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 82.5409288925 129.653840078 84.4069354098 \
129.653840078 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 84.4069354098 129.653840078 86.439055267 \
129.559709186 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 86.439055267 129.559709186 88.316136007 \
129.288390731 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 88.316136007 129.288390731 90.0326405185 \
128.834347602 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.577540694 \
120.080174593 81.6494539688 132.654954418 90.0326405185 \
128.834347602 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.577540694 \
120.080174593 90.0326405185 128.834347602 91.5996430242 \
128.197579799 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.60522625 \
119.094568777 111.577540694 120.080174593 91.5996430242 \
128.197579799 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 111.60522625 119.094568777 91.5996430242 \
128.197579799 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 91.5996430242 128.197579799 93.0060693014 \
127.383624434 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 93.0060693014 127.383624434 93.9030813364 \
126.685948407 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 93.9030813364 126.685948407 94.7170367015 \
125.82215904 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 94.7170367015 125.82215904 95.4479353968 \
124.803330555 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 95.4479353968 124.803330555 96.0957774221 \
123.618388731 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 96.0957774221 123.618388731 96.6550256661 \
122.272870679 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 96.6550256661 122.272870679 97.0094007911 \
120.993797962 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 111.682745809 117.760124947 97.0094007911 \
120.993797962 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 97.0094007911 120.993797962 97.3582388047 \
119.172088335 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 97.3582388047 119.172088335 97.6960025957 \
116.802204687 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 97.6960025957 116.802204687 98.0337663867 \
113.889684129 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 98.0337663867 113.889684129 98.360455955 \
110.428989549 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 98.360455955 110.428989549 99.6561400056 \
96.4754690041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 99.6561400056 96.4754690041 100.303982031 \
90.556296995 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 100.303982031 90.556296995 104.523260862 \
47.1619555218 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 104.523260862 47.1619555218 72.6461109503 \
90.556296995 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 72.6461109503 \
90.556296995 100.303982031 90.556296995 99.6561400056 \
96.4754690041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 72.6461109503 \
90.556296995 99.6561400056 96.4754690041 68.1887363317 \
96.4754690041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 72.6461109503 90.556296995 68.1887363317 \
96.4754690041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 68.1887363317 96.4754690041 56.9926972276 \
111.647154041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 56.9926972276 111.647154041 55.5807338391 \
113.574068783 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 56.8653436671 \
129.249630951 58.4821801747 129.520949406 59.4234891004 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 55.4699916126 \
128.845421824 56.8653436671 129.249630951 59.4234891004 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.2961240111 \
128.302784914 55.4699916126 128.845421824 59.4234891004 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 53.3437408628 \
127.621720221 54.2961240111 128.302784914 59.4234891004 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 53.3437408628 \
127.621720221 59.4234891004 132.654954418 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 52.585156611 \
126.846524635 53.3437408628 127.621720221 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.9926856989 \
126.015957936 52.585156611 126.846524635 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.571865238 \
125.124483012 51.9926856989 126.015957936 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.317158117 \
124.172099864 51.571865238 125.124483012 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.2341014471 \
123.164345602 51.317158117 124.172099864 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.2728612264 \
122.372538683 51.2341014471 123.164345602 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.3891405642 \
121.558583317 51.2728612264 122.372538683 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.5829394607 \
120.722479507 51.3891405642 121.558583317 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 51.8542579157 \
119.869764363 51.5829394607 120.722479507 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 52.2086330407 \
118.98382655 51.8542579157 119.869764363 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 52.7125101715 \
117.976072289 52.2086330407 118.98382655 26.8984971629 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 26.8984971629 \
132.654954418 27.795509198 129.653840078 30.1377072895 \
129.415744291 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 26.8984971629 \
132.654954418 30.1377072895 129.415744291 32.3691631544 \
128.895255826 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 26.8984971629 \
132.654954418 32.3691631544 128.895255826 34.4843396815 \
128.092374684 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 26.8984971629 \
132.654954418 34.4843396815 128.092374684 36.4887739821 \
127.007100864 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 52.7125101715 \
117.976072289 26.8984971629 132.654954418 36.4887739821 \
127.007100864 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 53.4378717554 \
116.741296463 52.7125101715 117.976072289 36.4887739821 \
127.007100864 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 53.4378717554 116.741296463 36.4887739821 \
127.007100864 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 36.4887739821 127.007100864 38.3769289447 \
125.639434366 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 38.3769289447 125.639434366 40.3924374679 \
123.784502071 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 40.3924374679 123.784502071 42.7623211161 \
121.248505083 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 42.7623211161 121.248505083 45.4976541118 \
118.031443402 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 45.4976541118 118.031443402 48.5928993439 \
114.127779916 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 48.5928993439 114.127779916 52.0425197009 \
109.537514626 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 54.395792015 \
115.273961961 52.0425197009 109.537514626 117.745882712 \
20.1519264665 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 120.580883712 20.1519264665 112.23091983 \
111.647154041 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 112.23091983 111.647154041 111.992824043 \
114.033649023 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 111.992824043 114.033649023 111.815636481 \
116.071305992 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 111.815636481 116.071305992 111.682745809 \
117.760124947 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 123.498941382 \
129.604006076 125.857750807 129.653840078 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 121.433598856 \
129.471115404 123.498941382 129.604006076 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 119.661723232 \
129.24409384 121.433598856 129.471115404 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 118.172240285 \
128.922941383 119.661723232 129.24409384 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 116.976224238 \
128.518732256 118.172240285 128.922941383 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.962932865 \
128.014855125 116.976224238 128.518732256 124.960738772 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.962932865 \
128.014855125 124.960738772 132.654954418 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 115.038235273 \
127.411309991 115.962932865 128.014855125 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 114.202131463 \
126.713633963 115.038235273 127.411309991 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 113.454621434 \
125.921827043 114.202131463 126.713633963 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 112.795705186 \
125.03035212 113.454621434 125.921827043 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 112.358273391 \
124.288379202 112.795705186 125.03035212 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 112.0205096 \
123.419052723 112.358273391 124.288379202 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.776876701 \
122.427909796 112.0205096 123.419052723 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.627374696 \
121.314950419 111.776876701 122.427909796 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.577540694 \
120.080174593 111.627374696 121.314950419 81.6494539688 \
132.654954418 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 82.5409288925 129.653840078 84.4069354098 \
129.653840078 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 84.4069354098 129.653840078 86.439055267 \
129.559709186 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 86.439055267 129.559709186 88.316136007 \
129.288390731 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 81.6494539688 \
132.654954418 88.316136007 129.288390731 90.0326405185 \
128.834347602 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.577540694 \
120.080174593 81.6494539688 132.654954418 90.0326405185 \
128.834347602 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.577540694 \
120.080174593 90.0326405185 128.834347602 91.5996430242 \
128.197579799 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.60522625 \
119.094568777 111.577540694 120.080174593 91.5996430242 \
128.197579799 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 111.60522625 119.094568777 91.5996430242 \
128.197579799 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 91.5996430242 128.197579799 93.0060693014 \
127.383624434 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 111.682745809 \
117.760124947 93.0060693014 127.383624434 93.9030813364 \
126.685948407 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 45.4976541118 \
118.031443402 48.5928993439 114.127779916 48.5928993439 \
114.127779916 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 48.5928993439 \
114.127779916 48.5928993439 114.127779916 52.0425197009 \
109.537514626 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 48.5928993439 \
114.127779916 52.0425197009 109.537514626 52.0425197009 \
109.537514626 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 52.0425197009 \
109.537514626 52.0425197009 109.537514626 117.745882712 \
20.1519264665 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 52.0425197009 \
109.537514626 117.745882712 20.1519264665 117.745882712 \
20.1519264665 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 117.745882712 20.1519264665 120.580883712 \
20.1519264665 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 117.745882712 \
20.1519264665 120.580883712 20.1519264665 120.580883712 \
20.1519264665 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 104.523260862 \
47.1619555218 104.523260862 47.1619555218 72.6461109503 \
90.556296995 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 104.523260862 \
47.1619555218 72.6461109503 90.556296995 72.6461109503 \
90.556296995 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 72.6461109503 \
90.556296995 72.6461109503 90.556296995 100.303982031 \
90.556296995 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 72.6461109503 \
90.556296995 100.303982031 90.556296995 100.303982031 \
90.556296995 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 100.303982031 \
90.556296995 100.303982031 90.556296995 104.523260862 \
47.1619555218 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon 100.303982031 \
90.556296995 104.523260862 47.1619555218 104.523260862 \
47.1619555218 \
-fill $Global(ButtonColor) -outline {} -smooth 0 \
-splinesteps 12 -stipple {} -width 1]
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 \
24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 24.0 \
171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 161.0 24.0 \
161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 24.0 -1.0 \
24.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
}}
{RadioButton Rotate {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 \
24.0 -1.0 24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 \
171.0 24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 \
24.0 -1.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
35.9696969695 95.484848484 35.9696969695 95.484848484 \
19.4848484848 76.0909090903 19.4848484848 76.0909090903 \
27.2424242423 76.0909090903 27.2424242423 76.0909090903 \
30.3939393938 63.2424242419 38.8787878785 47.4848484846 \
50.2727272723 35.8484848483 63.8484848479 27.8484848484 \
79.8484848477 23.4848484848 96.8181818172 24.2121212121 \
109.909090908 28.3333333333 122.272727271 35.3636363635 \
133.18181818 46.2727272724 138.030303029 52.8181818178 \
138.030303029 52.8181818178 119.363636362 59.848484848 \
119.363636362 59.848484848 109.666666666 49.6666666663 \
98.2727272718 43.8484848482 83.9696969689 41.424242424 \
69.1818181812 44.8181818179 57.545454545 52.333333333 \
50.0303030299 62.0303030298 46.1515151512 70.757575757 \
44.9393939391 76.5757575751 44.9393939391 76.5757575751 \
53.4242424238 76.5757575751 53.4242424238 76.5757575751 \
35.9696969695 95.484848484 35.9696969695 95.484848484 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -width 1]
set i [$Global(CurrentCanvas) create polygon \
32.3333333332 107.363636363 32.3333333332 107.363636363 \
49.0606060602 101.303030302 48.8181818178 101.303030302 \
58.2727272722 113.909090908 73.0606060599 122.393939393 \
85.6666666659 124.333333332 100.939393938 121.181818181 \
112.818181817 113.666666666 120.818181817 103.484848484 \
125.181818181 93.3030303022 126.15151515 87.2424242416 \
126.15151515 87.2424242416 118.15151515 87.2424242416 \
118.15151515 87.2424242416 135.848484847 69.06060606 \
135.848484847 69.06060606 152.575757574 88.2121212113 \
152.575757574 88.2121212113 145.303030301 88.2121212113 \
145.303030301 88.2121212113 142.15151515 103.969696969 \
132.696969696 120.454545453 118.878787878 132.575757574 \
104.818181817 139.606060605 87.1212121204 142.515151514 \
69.6666666661 140.333333332 53.4242424238 132.575757574 \
41.7878787876 122.15151515 34.9999999998 112.696969696 \
32.3333333332 107.363636363 -fill $Global(ButtonColor) -outline \
black -smooth 1 -splinesteps 12 -stipple $Global(ButtonStipple1) \
-width 1]
}}
{Button Duplicate {
set i [$Global(CurrentCanvas) create polygon \
47.4759175308 12.4301808516 55.8584904465 13.4585960037 \
63.2300013546 16.4197994153 68.7013372479 20.956626252 \
71.61257427 26.5218682407 71.61257427 32.4442750639 68.7013372479 \
38.0095170526 63.2300013546 42.5463438893 55.8584904465 \
45.5075473009 47.4759175308 46.535962453 39.0933446153 \
45.5075473009 31.7218337072 42.5463438893 26.2504978137 \
38.0095170526 23.3392607919 32.4442750639 23.3392607919 \
26.5218682407 26.2504978137 20.956626252 31.7218337072 \
16.4197994153 39.0933446153 13.4585960037 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 47.7512995935 \
46.535962453 47.7512995935 101.263844557 19.1115650792 \
128.231206754 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 48.3020637188 \
73.8999035053 87.9570807386 51.6914875788 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 47.7512995935 \
73.5033246495 12.5023955758 59.2264858396 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 116.046051128 \
73.8999035053 116.046051128 128.62778561 87.4063166134 \
155.595147806 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 116.596815253 \
129.024364466 144.685785641 153.612253528 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 116.596815253 \
101.263844557 156.251832272 79.0554286311 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 116.046051128 \
100.867265702 80.7971471101 86.5904268918 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 \
24.0 -1.0 24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 \
171.0 24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 \
24.0 -1.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 49.6668789479 \
102.974072534 77.7558493372 127.561961596 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 49.6001644466 \
30.9036809488 58.138044364 33.983196081 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 66.6193681583 \
37.0310374934 75.1635320896 40.1128150343 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 83.6385718701 \
43.1583940379 92.189019815 46.2424339874 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 100.657775582 \
49.2857505826 109.21450754 52.3720529407 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 48.6957058477 \
101.890726463 57.2335857658 104.970241595 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 65.7149095594 \
108.018083008 74.2590734905 111.099860548 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 82.7341132712 \
114.145439552 91.284561216 117.229479501 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 99.7533169831 \
120.272796096 108.310048942 123.359098455 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
115.770669065 39.7941219039 124.153241981 40.822537056 \
131.524752889 43.7837404676 136.996088783 48.3205673043 \
139.907325804 53.885809293 139.907325804 59.8082161163 \
136.996088783 65.3734581049 131.524752889 69.9102849416 \
124.153241981 72.8714883532 115.770669065 73.8999035053 \
107.38809615 72.8714883532 100.016585241 69.9102849416 \
94.545249348 65.3734581049 91.6340123261 59.8082161163 \
91.6340123261 53.885809293 94.545249348 48.3205673043 \
100.016585241 43.7837404676 107.38809615 40.822537056 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{Button Flip_Horiz {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 \
24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 24.0 \
171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 161.0 24.0 \
161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 24.0 -1.0 \
24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 128.12386206 \
92.3378232918 47.9129114389 92.3378232922 47.9129114391 \
132.443298603 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create polygon 128.12386206 \
65.5959036929 47.9129114388 65.5959036933 47.9129114386 \
25.4904283825 -fill #FFFFFFFFFFFF -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create line 141.492353831 \
78.9643954631 128.118926002 78.9841396972 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 114.75537029 \
78.9643954632 101.372070344 78.9841396973 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 88.01838675 \
78.9643954634 74.6252146869 78.9841396974 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 61.2814032089 \
78.9643954635 47.8783590289 78.9841396976 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 34.5444196689 \
78.9643954637 34.5049312009 78.9841396977 21.1315033719 \
78.9841396977 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
}}
{Button Flip_Vert {
set i [$Global(CurrentCanvas) create polygon 96.337823292 \
36.8761379395 96.337823292 117.087088561 136.443298603 \
117.087088561 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create polygon 69.5959036931 \
36.8761379395 69.5959036931 117.087088561 29.4904283823 \
117.087088561 -fill #FFFFFFFFFFFF -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create line 82.9643954634 \
23.5076461692 82.9841396974 36.881073998 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 82.9643954634 \
50.2446297098 82.9841396974 63.6279296555 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 82.9643954634 \
76.9816132503 82.9841396974 90.374785313 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 82.9643954634 \
103.718596791 82.9841396974 117.121640971 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 82.9643954634 \
130.455580331 82.9841396974 130.495068799 82.9841396974 \
143.868496628 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 24.0 -1.0 \
24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 171.0 24.0 \
171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 161.0 24.0 \
161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 24.0 -1.0 \
24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
}}
{Button Raise {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 \
24.0 -1.0 24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 \
171.0 24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 \
24.0 -1.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
24.5407392605 100.0 24.5407392605 25.0 127.76001998 25.0 \
127.76001998 50.0 45.1845954043 50.0 45.1845954043 100.0 -fill \
$Global(ButtonColor) -outline black -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
45.2913082605 50.0184615385 65.9351644043 50.0184615385 \
65.9351644043 50.0184615385 127.90484457 50.0184615385 \
127.90484457 50.0184615385 148.548700714 50.0184615385 \
148.548700714 75.0184615385 148.548700714 75.0184615385 \
148.548700714 100.046153846 148.548700714 100.046153846 \
148.548700714 125.046153846 127.90484457 125.046153846 \
127.90484457 125.046153846 65.9351644043 125.046153846 \
65.9351644043 125.046153846 45.2913082605 125.046153846 \
45.2913082605 100.046153846 45.2913082605 100.046153846 \
45.2913082605 75.0184615385 45.2913082605 75.0184615385 -fill \
#FFFFFFFFFFFF -outline black -smooth 0 -splinesteps 12 -stipple \
$Global(ButtonStipple2) -tags {} -width 1]
}}
{Button Lower {
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 \
24.0 -1.0 24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 \
171.0 24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 \
24.0 -1.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 24.63982977 \
25.0092307692 45.2836859138 25.0092307692 45.2836859138 \
25.0092307692 107.253366079 25.0092307692 107.253366079 \
25.0092307692 127.897222223 25.0092307692 127.897222223 \
50.0092307692 127.897222223 50.0092307692 127.897222223 \
75.036923077 127.897222223 75.036923077 127.897222223 \
100.036923077 107.253366079 100.036923077 107.253366079 \
100.036923077 45.2836859138 100.036923077 45.2836859138 \
100.036923077 24.63982977 100.036923077 24.63982977 75.036923077 \
24.63982977 75.036923077 24.63982977 50.0092307692 24.63982977 \
50.0092307692 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create polygon \
45.1845954043 100.0 45.1845954043 125.0 148.403876123 125.0 \
148.403876123 50.0 127.760019979 50.0 127.760019979 100.0 \
45.1845954043 100.0 -fill #FFFFFFFFFFFF -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create polygon -1.0 -1.0 \
24.0 -1.0 24.0 -1.0 146.0 -1.0 146.0 -1.0 171.0 -1.0 171.0 24.0 \
171.0 24.0 171.0 136.0 171.0 136.0 171.0 161.0 146.0 161.0 146.0 \
161.0 24.0 161.0 24.0 161.0 -1.0 161.0 -1.0 136.0 -1.0 136.0 -1.0 \
24.0 -1.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
}}
{Button Group {
set i [$Global(CurrentCanvas) create polygon 0.0 -1.0 \
25.0 -1.0 25.0 -1.0 147.0 -1.0 147.0 -1.0 172.0 -1.0 172.0 24.0 \
172.0 24.0 172.0 136.0 172.0 136.0 172.0 161.0 147.0 161.0 147.0 \
161.0 25.0 161.0 25.0 161.0 0.0 161.0 0.0 136.0 0.0 136.0 0.0 \
24.0 0.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
19.4872975781 12.4155418363 38.9211441513 12.4155418363 \
38.9211441513 12.4155418363 136.140606036 12.4155418363 \
136.140606036 12.4155418363 155.574452609 12.4155418363 \
155.574452609 31.8493884095 155.574452609 31.8493884095 \
155.574452609 129.068850295 155.574452609 129.068850295 \
155.574452609 148.502696868 136.140606036 148.502696868 \
136.140606036 148.502696868 38.9211441513 148.502696868 \
38.9211441513 148.502696868 19.4872975781 148.502696868 \
19.4872975781 129.068850295 19.4872975781 129.068850295 \
19.4872975781 31.8493884095 19.4872975781 31.8493884095 -fill {} \
-outline black -smooth 0 -splinesteps 12 -stipple {} -tags {} \
-width 2]
set i [$Global(CurrentCanvas) create polygon \
140.020199776 43.9055034438 139.429494156 46.7899733119 \
137.675325586 49.5868000225 134.810993592 52.2110034117 \
130.92352945 54.5828483873 126.131051794 56.6302676392 \
120.579177629 58.2910513706 114.436597844 59.5147375074 \
107.889951617 60.2641449661 101.138155481 60.5165033797 \
94.3863593463 60.2641449661 87.8397131192 59.5147375074 \
81.6971333342 58.2910513706 76.1452591699 56.6302676392 \
71.352781513 54.5828483873 67.4653173715 52.2110034117 \
64.6009853772 49.5868000225 62.8468168077 46.7899733119 \
62.2561111871 43.9055034438 62.8468168077 41.0210335757 \
64.6009853772 38.224206865 67.4653173715 35.6000034759 \
71.352781513 33.2281585006 76.1452591699 31.1807392483 \
81.6971333342 29.5199555171 87.8397131192 28.2962693802 \
94.3863593463 27.5468619217 101.138155481 27.2945035079 \
107.889951617 27.5468619217 114.436597844 28.2962693802 \
120.579177629 29.5199555171 126.131051794 31.1807392483 \
130.92352945 33.2281585006 134.810993592 35.6000034759 \
137.675325586 38.224206865 139.429494156 41.0210335757 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags oval -width 1]
set i [$Global(CurrentCanvas) create polygon \
31.8460280693 105.690829814 51.2798746425 47.389290094 \
129.015260935 105.690829814 -fill $Global(ButtonColor) -outline \
black -smooth 0 -splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
58.5278024676 70.7386082783 79.8302881343 70.7386082783 \
79.8302881343 70.7386082783 122.466721601 70.7386082783 \
122.466721601 70.7386082783 143.769207267 70.7386082783 \
143.769207267 90.1724548516 143.769207267 90.1724548516 \
143.769207267 109.627828147 143.769207267 109.627828147 \
143.769207267 129.061674721 122.466721601 129.061674721 \
122.466721601 129.061674721 79.8302881343 129.061674721 \
79.8302881343 129.061674721 58.5278024676 129.061674721 \
58.5278024676 109.627828147 58.5278024676 109.627828147 \
58.5278024676 90.1724548516 58.5278024676 90.1724548516 -fill \
#FFFFFFFFFFFF -outline black -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
}}
{Button UnGroup {
set i [$Global(CurrentCanvas) create line 18.1860465116 \
39.3023255812 18.297030412 12.1805605247 45.6327012525 \
12.1805605247 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 72.8372093023 \
12.1705426356 100.304042933 12.1805605247 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 127.488372093 \
12.1705426356 154.975384616 12.1805605247 154.975384616 \
39.3223613595 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 154.813953488 \
66.4341085268 154.975384616 93.6059630289 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 154.813953488 \
120.697674418 154.975384616 147.889564698 127.639713774 \
147.889564698 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 100.162790698 \
147.829457364 72.968372093 147.889564698 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 45.511627907 \
147.829457364 18.297030412 147.889564698 18.297030412 \
120.747763863 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle miter -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 18.1860465116 \
93.5658914724 18.297030412 66.4641621941 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 0.0 -1.0 \
25.0 -1.0 25.0 -1.0 147.0 -1.0 147.0 -1.0 172.0 -1.0 172.0 24.0 \
172.0 24.0 172.0 136.0 172.0 136.0 172.0 161.0 147.0 161.0 147.0 \
161.0 25.0 161.0 25.0 161.0 0.0 161.0 0.0 136.0 0.0 136.0 0.0 \
24.0 0.0 24.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
140.020199776 43.9055034438 139.429494156 46.7899733119 \
137.675325586 49.5868000225 134.810993592 52.2110034117 \
130.92352945 54.5828483873 126.131051794 56.6302676392 \
120.579177629 58.2910513706 114.436597844 59.5147375074 \
107.889951617 60.2641449661 101.138155481 60.5165033797 \
94.3863593463 60.2641449661 87.8397131192 59.5147375074 \
81.6971333342 58.2910513706 76.1452591699 56.6302676392 \
71.352781513 54.5828483873 67.4653173715 52.2110034117 \
64.6009853772 49.5868000225 62.8468168077 46.7899733119 \
62.2561111871 43.9055034438 62.8468168077 41.0210335757 \
64.6009853772 38.224206865 67.4653173715 35.6000034759 \
71.352781513 33.2281585006 76.1452591699 31.1807392483 \
81.6971333342 29.5199555171 87.8397131192 28.2962693802 \
94.3863593463 27.5468619217 101.138155481 27.2945035079 \
107.889951617 27.5468619217 114.436597844 28.2962693802 \
120.579177629 29.5199555171 126.131051794 31.1807392483 \
130.92352945 33.2281585006 134.810993592 35.6000034759 \
137.675325586 38.224206865 139.429494156 41.0210335757 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags oval -width 1]
set i [$Global(CurrentCanvas) create polygon \
31.8460280693 105.690829814 51.2798746425 47.389290094 \
129.015260935 105.690829814 -fill $Global(ButtonColor) -outline \
black -smooth 0 -splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
58.5278024676 70.7386082783 79.8302881343 70.7386082783 \
79.8302881343 70.7386082783 122.466721601 70.7386082783 \
122.466721601 70.7386082783 143.769207267 70.7386082783 \
143.769207267 90.1724548516 143.769207267 90.1724548516 \
143.769207267 109.627828147 143.769207267 109.627828147 \
143.769207267 129.061674721 122.466721601 129.061674721 \
122.466721601 129.061674721 79.8302881343 129.061674721 \
79.8302881343 129.061674721 58.5278024676 129.061674721 \
58.5278024676 109.627828147 58.5278024676 109.627828147 \
58.5278024676 90.1724548516 58.5278024676 90.1724548516 -fill \
#FFFFFFFFFFFF -outline black -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
}}
{RadioButton Cut {
set i [$Global(CurrentCanvas) create polygon -1.0 -2.0 \
24.0 -2.0 24.0 -2.0 146.0 -2.0 146.0 -2.0 171.0 -2.0 171.0 23.0 \
171.0 23.0 171.0 135.0 171.0 135.0 171.0 160.0 146.0 160.0 146.0 \
160.0 24.0 160.0 24.0 160.0 -1.0 160.0 -1.0 135.0 -1.0 135.0 -1.0 \
23.0 -1.0 23.0 -fill {} -outline {} -smooth 0 -splinesteps 12 \
-stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
63.5388025603 6.9140133338 75.8988998203 77.453529439 \
60.0668341612 70.8645988339 44.229360387 62.4943797334 \
28.3270045365 53.8115600292 12.3008923946 46.2880351751 \
16.6934038006 51.5511429489 21.7484124676 56.3004646424 \
27.3362349823 60.6346877942 33.3273977037 64.6514344314 \
39.5908844671 68.4476335052 45.9966330027 72.1213384293 \
52.4146464512 75.7705546807 58.7146009345 79.493527403 \
64.7661861443 83.3875800132 70.4395360295 87.5506221311 \
75.604719127 92.080611307 80.1309673092 97.075206478 83.888414522 \
102.632317268 86.7466850558 108.849315026 88.5755858388 \
115.824349027 89.245120006 123.655424754 88.9390819701 \
124.711246498 88.1899034817 125.887593214 85.0587164493 \
126.96146656 81.9162149024 128.649961096 79.3727228435 \
130.977178405 78.0363677075 133.967006319 78.2920498845 \
140.948898406 81.1387372648 146.92000033 84.4369342348 \
149.710915407 87.9357554379 151.056434961 96.8059144196 \
146.65288348 97.7731426938 141.441699615 96.9262229088 \
136.360148001 94.9145764852 131.356264886 92.3887367034 \
126.377271678 90.0001253411 121.371562181 88.3979947574 \
116.285472997 88.2334532841 111.066715874 90.1568898244 \
105.663529798 92.6751898339 102.551502676 95.6331489542 \
100.271569609 98.8543932576 98.94295938 102.163933398 \
98.687533161 107.030055872 99.792335968 111.40010308 \
101.998319533 115.425441998 104.907343727 119.257818444 \
108.121902549 123.048795605 111.243712084 126.948590342 \
113.873651536 131.108504223 115.613628705 135.680086862 \
116.066281396 138.541342157 115.019730004 141.009415097 \
113.517321311 142.827397836 111.585038474 143.738251727 \
109.248960512 143.105776486 102.407352701 138.606045263 \
97.510031144 135.679562378 96.215539786 132.537415684 \
95.643488515 129.295139508 \
95.794912928 126.06698727 96.669963826 124.073367001 \
98.082694536 122.467101186 99.60452094 121.084832186 \
101.270367238 119.761136598 103.11484801 90.480227109 \
88.1028765011 88.2978844307 82.1691691271 86.838656662 \
76.1832852353 81.4975130574 58.5542458718 76.9810262708 \
40.4402866063 71.6667017213 22.8089161852 63.9311563203 \
6.6264709607 63.5388025603 6.9140133338 -fill \
$Global(ButtonColor) -outline black -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
126.510482112 99.782778734 125.281930984 100.886679259 \
124.333027471 102.199358547 123.745148065 103.666993989 \
123.600632868 105.238379854 125.004350593 108.340225379 \
127.15512505 110.754179219 129.757078443 112.432895488 \
132.512569926 113.328658829 134.822988095 113.179832755 \
137.065645556 112.38032825 138.962406678 111.055058193 \
140.234813146 109.330833488 140.765639214 108.058702627 \
141.196281095 107.296977514 139.950422302 104.259719468 \
137.714152321 101.738945526 134.893578486 99.754387391 \
131.896308071 98.328000582 126.510482112 99.782778734 -fill \
$Global(DefButtonColor) -outline $Global(DefButtonColor) -smooth \
0 -splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 85.124365772 \
130.833572526 83.1687403834 132.206525778 81.6843201596 \
133.939782386 80.754074319 135.965401489 80.4586971855 \
138.217109414 81.5139673823 141.256536376 83.2077851804 \
143.813722859 85.3504539501 145.804108261 87.7534145098 \
147.142298379 89.3845585661 146.918126511 91.162689649 \
146.110525232 92.7119136198 144.93551076 93.6563363455 \
143.609099314 94.215893959 142.435508131 94.4235737431 \
141.936833055 94.2390419018 138.807921963 93.3440933132 \
135.463889179 91.5789640029 132.503870659 88.7857195863 \
130.528832913 87.1583159762 130.204785312 85.124365772 \
130.833572526 -fill $Global(DefButtonColor) -outline \
$Global(DefButtonColor) -smooth 0 -splinesteps 12 -stipple {} \
-tags {} -width 1]
}}
{RadioButton Paste {
set i [$Global(CurrentCanvas) create polygon 3.0 2.0 28.0 \
2.0 28.0 2.0 152.0 2.0 152.0 2.0 177.0 2.0 177.0 27.0 177.0 27.0 \
177.0 141.0 177.0 141.0 177.0 166.0 152.0 166.0 152.0 166.0 28.0 \
166.0 28.0 166.0 3.0 166.0 3.0 141.0 3.0 141.0 3.0 27.0 3.0 27.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags \
{} -width 1]
set i [$Global(CurrentCanvas) create polygon \
67.9240825065 39.915838224 67.9240825065 35.0770838995 \
67.9240825065 35.0770838995 71.7703623055 35.0770838995 \
71.7703623055 35.0770838995 74.3345488381 20.5608209258 \
82.0271084359 6.04455795217 85.8733882348 6.04455795217 \
93.5659478326 20.5608209258 97.4122276315 35.0770838995 \
99.9764141641 35.0770838995 99.9764141641 35.0770838995 \
99.9764141641 39.915838224 67.9240825065 39.915838224 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple2) -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 69.2061757729 \
36.0448347644 75.6417316834 37.0250919481 85.90226492 \
37.0250919481 93.5976648475 37.0250919481 97.4453648113 \
36.0569837599 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill $Global(ButtonColor) -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
42.5939143386 73.5625787978 50.2306882263 64.5549266551 \
65.5042360016 61.5523759408 69.3226229455 55.5472745123 \
99.8697184961 55.5472745123 103.68810544 61.5523759408 \
118.961653215 64.5549266551 126.598427103 73.5625787978 -fill \
white -outline black -smooth 1 -splinesteps 12 -stipple \
$Global(ButtonStipple2) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 66.744924848 \
40.5334123072 66.744924848 40.5334123072 66.744924848 \
52.5436151642 66.744924848 52.5436151642 84.5571027282 \
55.5461658784 102.369280608 52.5436151642 102.369280608 \
52.5436151642 102.369280608 40.5334123072 102.369280608 \
40.5334123072 84.5571027282 43.5359630214 66.744924848 \
40.5334123072 66.744924848 40.5334123072 -fill \
$Global(ButtonColor) -outline black -smooth 1 -splinesteps 12 \
-stipple $Global(ButtonStipple2) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
45.3703113914 70.5589194493 45.3703113914 70.5589194493 \
45.3703113914 148.62523802 45.3703113914 148.62523802 \
84.5571027279 151.627788734 123.743894064 148.62523802 \
123.743894064 148.62523802 123.743894064 70.5589194493 \
123.743894064 70.5589194493 80.9946671518 73.5614701636 \
45.3703113914 70.5589194493 45.3703113914 70.5589194493 -fill \
white -outline black -smooth 1 -splinesteps 12 -stipple \
$Global(ButtonStipple2) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
52.5285150975 79.5654629582 52.5285150975 79.5654629582 \
52.5285150975 139.616477243 52.5285150975 139.616477243 \
86.0904001986 142.619027957 115.923186955 139.616477243 \
115.923186955 139.616477243 115.923186955 79.5654629582 \
115.923186955 79.5654629582 86.0904001986 82.5680136724 \
52.5285150975 79.5654629582 -fill $Global(ButtonColor) -outline \
black -smooth 1 -splinesteps 12 -stipple $Global(ButtonStipple2) \
-tags {} -width 1]
set i [$Global(CurrentCanvas) create line 70.307360424 \
52.5436151642 70.3402444446 43.5514838991 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 73.8697960001 \
52.5436151642 73.9039953816 43.5514838991 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
45.3703113917 148.62523802 45.3703113917 148.62523802 \
84.5571027282 151.627788734 123.743894065 148.62523802 \
123.743894065 148.62523802 120.181458489 154.630339448 \
84.5571027282 157.632890163 48.9327469678 154.630339448 \
45.3703113917 148.62523802 -fill white -outline black -smooth 1 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
}}
{JoinButton round {
set i [$Global(CurrentCanvas) create polygon 0.0 0.0 \
25.0 0.0 25.0 0.0 175.073846154 0.0 175.073846154 0.0 \
200.073846154 0.0 200.073846154 25.0 200.073846154 25.0 \
200.073846154 175.073846154 200.073846154 175.073846154 \
200.073846154 200.073846154 175.073846154 200.073846154 \
175.073846154 200.073846154 25.0 200.073846154 25.0 200.073846154 \
0.0 200.073846154 0.0 175.073846154 0.0 175.073846154 0.0 25.0 \
0.0 25.0 -fill {} -outline {} -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 28.0830769234 \
177.083076923 28.0830769234 177.083076923 29.0830769234 \
90.0830769232 28.0830769234 89.0830769232 32.0830769234 \
31.0830769232 90.0830769234 27.0830769232 90.0830769234 \
27.0830769232 178.083076923 27.0830769232 178.083076923 \
27.0830769232 178.083076923 77.0830769232 178.083076923 \
77.0830769232 78.0830769234 77.0830769232 78.0830769234 \
77.0830769232 78.0830769234 177.083076923 78.0830769234 \
177.083076923 28.0830769234 177.083076923 28.0830769234 \
177.083076923 -fill $Global(ButtonColor) -outline black -smooth 1 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create line 52.0184615385 \
185.046153846 52.036923077 135.101538461 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 68.0646153847 \
53.036923077 118.101538462 53.0553846155 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 52.0184615385 \
116.046153846 52.036923077 66.101538461 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 137.064615385 \
53.036923077 187.101538462 53.0553846155 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
}}
{JoinButton bevel {
set i [$Global(CurrentCanvas) create polygon 0.0 0.0 \
25.0 0.0 25.0 0.0 175.073846154 0.0 175.073846154 0.0 \
200.073846154 0.0 200.073846154 25.0 200.073846154 25.0 \
200.073846154 175.073846154 200.073846154 175.073846154 \
200.073846154 200.073846154 175.073846154 200.073846154 \
175.073846154 200.073846154 25.0 200.073846154 25.0 200.073846154 \
0.0 200.073846154 0.0 175.073846154 0.0 175.073846154 0.0 25.0 \
0.0 25.0 -fill {} -outline {} -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 52.0184615385 \
185.046153846 52.036923077 135.101538461 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 68.0646153847 \
53.036923077 118.101538462 53.0553846155 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 52.0184615385 \
116.046153846 52.036923077 66.101538461 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 137.064615385 \
53.036923077 187.101538462 53.0553846155 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 27.0092307692 \
177.009230769 27.0092307692 77.0092307692 77.0092307692 \
27.0092307692 177.009230769 27.0092307692 177.009230769 \
77.0092307692 77.0092307692 77.0092307692 77.0092307692 \
177.009230769 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width \
1]
}}
{JoinButton miter {
set i [$Global(CurrentCanvas) create polygon 0.0 0.0 \
25.0 0.0 25.0 0.0 175.073846154 0.0 175.073846154 0.0 \
200.073846154 0.0 200.073846154 25.0 200.073846154 25.0 \
200.073846154 175.073846154 200.073846154 175.073846154 \
200.073846154 200.073846154 175.073846154 200.073846154 \
175.073846154 200.073846154 25.0 200.073846154 25.0 200.073846154 \
0.0 200.073846154 0.0 175.073846154 0.0 175.073846154 0.0 25.0 \
0.0 25.0 -fill {} -outline {} -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 52.0184615385 \
185.046153846 52.036923077 135.101538461 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 68.0646153847 \
53.036923077 118.101538462 53.0553846155 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 52.0184615385 \
116.046153846 52.036923077 66.101538461 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 137.064615385 \
53.036923077 187.101538462 53.0553846155 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 1 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 27.0092307692 \
177.009230769 27.0092307692 27.0092307692 177.009230769 \
27.0092307692 177.009230769 77.0092307692 77.0092307692 \
77.0092307692 77.0092307692 177.009230769 -fill \
$Global(ButtonColor) -outline black -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
}}
{ArrowButton none {
set i [$Global(CurrentCanvas) create polygon \
-0.852307692096 -0.935384615596 24.1476923079 -0.935384615596 \
24.1476923079 -0.935384615596 174.221538462 -0.935384615596 \
174.221538462 -0.935384615596 199.221538462 -0.935384615596 \
199.221538462 24.0646153844 199.221538462 24.0646153844 \
199.221538462 174.138461538 199.221538462 174.138461538 \
199.221538462 199.138461538 174.221538462 199.138461538 \
174.221538462 199.138461538 24.1476923079 199.138461538 \
24.1476923079 199.138461538 -0.852307692096 199.138461538 \
-0.852307692096 174.138461538 -0.852307692096 174.138461538 \
-0.852307692096 24.0646153844 -0.852307692096 24.0646153844 -fill \
{} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags {} \
-width 1]
set i [$Global(CurrentCanvas) create polygon 184.696113424 \
18.5089433898 182.854879064 19.4099729702 182.854879064 \
19.4099729702 14.3819350668 101.854179608 14.3819350668 \
101.854179608 12.5407007052 102.755209189 13.0984781326 \
103.895015236 13.0984781326 103.895015236 13.3773668463 \
104.46491826 13.3773668463 104.46491826 13.9351442737 \
105.604724307 15.7763786354 104.703694726 15.7763786354 \
104.703694726 184.249322633 22.2594880885 184.249322633 \
22.2594880885 186.090556993 21.3584585081 185.532779566 \
20.2186524607 185.532779566 20.2186524607 185.253890852 \
19.6487494371 185.253890852 19.6487494371 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 6.75368204265 \
110.753682043 37.4077288844 177.011127039 40.1218892818 \
154.978530872 59.1210120639 179.246317955 61.8351724613 \
176.851470545 42.9957061733 152.424026968 65.0283023407 \
154.49956139 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
}}
{ArrowButton first {
set i [$Global(CurrentCanvas) create polygon \
-0.852307692096 -0.935384615596 24.1476923079 -0.935384615596 \
24.1476923079 -0.935384615596 174.221538462 -0.935384615596 \
174.221538462 -0.935384615596 199.221538462 -0.935384615596 \
199.221538462 24.0646153844 199.221538462 24.0646153844 \
199.221538462 174.138461538 199.221538462 174.138461538 \
199.221538462 199.138461538 174.221538462 199.138461538 \
174.221538462 199.138461538 24.1476923079 199.138461538 \
24.1476923079 199.138461538 -0.852307692096 199.138461538 \
-0.852307692096 174.138461538 -0.852307692096 174.138461538 \
-0.852307692096 24.0646153844 -0.852307692096 24.0646153844 -fill \
{} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags {} \
-width 1]
set i [$Global(CurrentCanvas) create polygon 184.696113424 \
18.5089433898 182.854879064 19.4099729702 182.854879064 \
19.4099729702 14.3819350668 101.854179608 14.3819350668 \
101.854179608 12.5407007052 102.755209189 13.0984781326 \
103.895015236 13.0984781326 103.895015236 13.3773668463 \
104.46491826 13.3773668463 104.46491826 13.9351442737 \
105.604724307 15.7763786354 104.703694726 15.7763786354 \
104.703694726 184.249322633 22.2594880885 184.249322633 \
22.2594880885 186.090556993 21.3584585081 185.532779566 \
20.2186524607 185.532779566 20.2186524607 185.253890852 \
19.6487494371 185.253890852 19.6487494371 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 191.713913476 \
17.2134035549 127.751393269 30.8546993336 148.971186702 \
38.1300570825 141.695828954 59.3498505155 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 6.75368204265 \
110.753682043 37.4077288844 177.011127039 40.1218892818 \
154.978530872 59.1210120639 179.246317955 61.8351724613 \
176.851470545 42.9957061733 152.424026968 65.0283023407 \
154.49956139 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
}}
{ArrowButton last {
set i [$Global(CurrentCanvas) create polygon \
-0.852307692097 -0.935384615597 24.1476923079 -0.935384615597 \
24.1476923079 -0.935384615597 174.221538462 -0.935384615597 \
174.221538462 -0.935384615597 199.221538462 -0.935384615597 \
199.221538462 24.0646153844 199.221538462 24.0646153844 \
199.221538462 174.138461538 199.221538462 174.138461538 \
199.221538462 199.138461538 174.221538462 199.138461538 \
174.221538462 199.138461538 24.1476923079 199.138461538 \
24.1476923079 199.138461538 -0.852307692097 199.138461538 \
-0.852307692097 174.138461538 -0.852307692097 174.138461538 \
-0.852307692097 24.0646153844 -0.852307692097 24.0646153844 -fill \
{} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags {} \
-width 1]
set i [$Global(CurrentCanvas) create polygon 184.696113424 \
18.5089433898 182.854879064 19.4099729702 182.854879064 \
19.4099729702 14.3819350668 101.854179608 14.3819350668 \
101.854179608 12.5407007052 102.755209189 13.0984781326 \
103.895015236 13.0984781326 103.895015236 13.3773668463 \
104.46491826 13.3773668463 104.46491826 13.9351442737 \
105.604724307 15.7763786354 104.703694726 15.7763786354 \
104.703694726 184.249322633 22.2594880885 184.249322633 \
22.2594880885 186.090556993 21.3584585081 185.532779566 \
20.2186524607 185.532779566 20.2186524607 185.253890852 \
19.6487494371 185.253890852 19.6487494371 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 5.82513715908 \
108.18025154 55.8432216805 66.0438045788 48.5678639327 \
87.2635980128 69.7876573655 94.5389557608 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 6.75368204266 \
110.753682043 37.4077288844 177.011127039 40.1218892818 \
154.978530872 59.121012064 179.246317955 61.8351724614 \
176.851470545 42.9957061733 152.424026968 65.0283023408 \
154.49956139 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
}}
{ArrowButton both {
set i [$Global(CurrentCanvas) create polygon \
-0.852307692097 -0.935384615597 24.1476923079 -0.935384615597 \
24.1476923079 -0.935384615597 174.221538462 -0.935384615597 \
174.221538462 -0.935384615597 199.221538462 -0.935384615597 \
199.221538462 24.0646153844 199.221538462 24.0646153844 \
199.221538462 174.138461538 199.221538462 174.138461538 \
199.221538462 199.138461538 174.221538462 199.138461538 \
174.221538462 199.138461538 24.1476923079 199.138461538 \
24.1476923079 199.138461538 -0.852307692097 199.138461538 \
-0.852307692097 174.138461538 -0.852307692097 174.138461538 \
-0.852307692097 24.0646153844 -0.852307692097 24.0646153844 -fill \
{} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags {} \
-width 1]
set i [$Global(CurrentCanvas) create polygon 184.696113424 \
18.5089433898 182.854879064 19.4099729702 182.854879064 \
19.4099729702 14.3819350668 101.854179608 14.3819350668 \
101.854179608 12.5407007052 102.755209189 13.0984781326 \
103.895015236 13.0984781326 103.895015236 13.3773668463 \
104.46491826 13.3773668463 104.46491826 13.9351442737 \
105.604724307 15.7763786354 104.703694726 15.7763786354 \
104.703694726 184.249322633 22.2594880885 184.249322633 \
22.2594880885 186.090556993 21.3584585081 185.532779566 \
20.2186524607 185.532779566 20.2186524607 185.253890852 \
19.6487494371 185.253890852 19.6487494371 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 191.713913476 \
17.2134035549 127.751393269 30.8546993336 148.971186702 \
38.1300570825 141.695828954 59.3498505156 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 5.82513715908 \
108.18025154 55.8432216805 66.0438045788 48.5678639327 \
87.2635980128 69.7876573655 94.5389557608 -fill \
$Global(ButtonColor) -outline $Global(ButtonColor) -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon 6.75368204266 \
110.753682043 37.4077288844 177.011127039 40.1218892818 \
154.978530872 59.121012064 179.246317955 61.8351724614 \
176.851470545 42.9957061733 152.424026968 65.0283023408 \
154.49956139 -fill $Global(ButtonColor) -outline black -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
}}
{Button Smooth {
set i [$Global(CurrentCanvas) create polygon \
-0.852307692096 -0.935384615596 24.1476923079 -0.935384615596 \
24.1476923079 -0.935384615596 174.221538462 -0.935384615596 \
174.221538462 -0.935384615596 199.221538462 -0.935384615596 \
199.221538462 24.0646153844 199.221538462 24.0646153844 \
199.221538462 174.138461538 199.221538462 174.138461538 \
199.221538462 199.138461538 174.221538462 199.138461538 \
174.221538462 199.138461538 24.1476923079 199.138461538 \
24.1476923079 199.138461538 -0.852307692096 199.138461538 \
-0.852307692096 174.138461538 -0.852307692096 174.138461538 \
-0.852307692096 24.0646153844 -0.852307692096 24.0646153844 -fill \
{} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags {} \
-width 1]
set i [$Global(CurrentCanvas) create line 86.3401486816 \
100.316868031 115.86971549 100.360304043 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle round -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 145.312185136 \
100.316868031 174.863526234 100.360304043 174.863526234 \
70.9396457192 -arrow none -arrowshape {8 10 3} -capstyle butt \
-fill black -joinstyle round -smooth 0 -splinesteps 12 -stipple \
{} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 174.798203363 \
70.9070687107 174.863526234 70.9396457192 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill $Global(ButtonColor) -joinstyle \
round -smooth 0 -splinesteps 12 -stipple $Global(ButtonStipple2) \
-tags {} -width 1]
set Global(Smooth_Line) [$Global(CurrentCanvas) create line 25.0 \
175.0 25.0092307692 100.036923077 100.036923077 100.036923077 \
175.064615385 100.036923077 175.064615385 25.0092307692 -arrow \
none -arrowshape {8 10 3} -capstyle butt -fill \
$Global(ButtonColor) -joinstyle miter -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple2) -tags {} -width 4]
set i [$Global(CurrentCanvas) create line 25.0 125.0 \
25.0092307692 100.036923077 50.0184615385 100.036923077 -arrow \
none -arrowshape {8 10 3} -capstyle butt -fill black -joinstyle \
miter -smooth 0 -splinesteps 12 -stipple {} -tags {} -width 1]
}}
{Button Rulers {
set i [$Global(CurrentCanvas) create polygon 3.0 3.0 28.0 \
3.0 28.0 3.0 150.0 3.0 150.0 3.0 175.0 3.0 175.0 28.0 175.0 28.0 \
175.0 140.0 175.0 140.0 175.0 165.0 150.0 165.0 150.0 165.0 28.0 \
165.0 28.0 165.0 3.0 165.0 3.0 140.0 3.0 140.0 3.0 28.0 3.0 28.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags \
{} -width 1]
set i [$Global(CurrentCanvas) create polygon \
23.1891100047 21.8326710294 44.4914676605 21.8326710294 \
44.4914676605 21.8326710294 55.1426464886 21.8326710294 \
55.1426464886 21.8326710294 76.4450041446 21.8326710294 \
76.4450041446 36.3892820942 76.4450041446 36.3892820942 \
76.4450041446 134.646406785 76.4450041446 134.646406785 \
76.4450041446 149.203017849 55.1426464886 149.203017849 \
55.1426464886 149.203017849 44.4914676605 149.203017849 \
44.4914676605 149.203017849 23.1891100047 149.203017849 \
23.1891100047 134.646406785 23.1891100047 134.646406785 \
23.1891100047 36.3892820942 23.1891100047 36.3892820942 -fill \
$Global(ButtonColor) -outline black -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
150.149425814 22.2067661339 150.149425814 44.2377862974 \
150.149425814 44.2377862974 150.149425814 55.2532963793 \
150.149425814 55.2532963793 150.149425814 77.2843165428 \
141.662699325 77.2843165428 141.662699325 77.2843165428 \
84.3772955216 77.2843165441 84.3772955216 77.2843165441 \
75.8905690324 77.2843165441 75.8905690324 55.2532963806 \
75.8905690324 55.2532963806 75.8905690324 44.2377862985 \
75.8905690324 44.2377862985 75.8905690324 22.206766135 \
84.3772955216 22.2067661348 84.3772955216 22.2067661348 \
141.662699325 22.2067661341 141.662699325 22.2067661341 -fill \
$Global(ButtonColor) -outline black -smooth 0 -splinesteps 12 \
-stipple $Global(ButtonStipple1) -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 140.131665428 \
77.2080834672 140.121591494 63.5149289413 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 131.037141491 \
77.2080834672 131.023709578 49.7455413384 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 121.942617553 \
77.2080834672 121.925827663 63.5149289413 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 112.848093615 \
77.2080834672 112.827945747 49.7455413384 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 103.753569678 \
77.2080834672 103.730063832 63.5149289413 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 94.65904574 \
77.2080834672 94.632181916 49.7455413384 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 85.5645218024 \
77.2080834672 85.5343 63.5149289413 -arrow none -arrowshape {8 10 \
3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.4699978647 \
77.2080834672 76.436418084 49.7455413384 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.4843170578 \
77.2080834672 76.4253476873 49.7455413384 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
30.9204790109 63.1310306103 30.9305529451 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
40.0150029485 49.8170570746 40.0284348608 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
49.1095268862 63.1310306103 49.1263167766 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
58.2040508238 49.8170570746 58.2241986923 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
67.2985747615 63.1310306103 67.3220806079 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
76.3930986992 49.8170570746 76.4199625237 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
85.4876226368 63.1310306103 85.5178444394 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
94.5821465745 49.8170570746 94.6157263552 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
103.676670512 63.1310306103 103.713608271 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
112.77119445 49.8170570746 112.811490186 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
121.865718387 63.1310306103 121.909372102 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
130.960242325 49.8170570746 131.007254018 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
set i [$Global(CurrentCanvas) create line 76.3712924314 \
140.054766263 63.1310306103 140.105135933 -arrow none -arrowshape \
{8 10 3} -capstyle butt -fill black -joinstyle miter -smooth 0 \
-splinesteps 12 -stipple {} -tags {} -width 1]
}}
{Button Print {
set i [$Global(CurrentCanvas) create polygon 4.0 2.0 29.0 \
2.0 29.0 2.0 153.0 2.0 153.0 2.0 178.0 2.0 178.0 27.0 178.0 27.0 \
178.0 141.0 178.0 141.0 178.0 166.0 153.0 166.0 153.0 166.0 29.0 \
166.0 29.0 166.0 4.0 166.0 4.0 141.0 4.0 141.0 4.0 27.0 4.0 27.0 \
-fill {} -outline {} -smooth 0 -splinesteps 12 -stipple {} -tags \
{} -width 1]
set i [$Global(CurrentCanvas) create polygon 18.112852546 \
78.1413823784 29.689679783 78.1413823784 29.689679783 \
78.1413823784 145.509246403 78.1413823784 145.509246403 \
78.1413823784 157.08607364 78.1413823784 157.08607364 \
92.3229957436 157.08607364 92.3229957436 157.08607364 \
106.520317973 157.08607364 106.520317973 157.08607364 \
120.701931339 145.509246403 120.701931339 145.509246403 \
120.701931339 29.689679783 120.701931339 29.689679783 \
120.701931339 18.112852546 120.701931339 18.112852546 \
106.520317973 18.112852546 106.520317973 18.112852546 \
92.3229957436 18.112852546 92.3229957436 -fill \
$Global(ButtonColor) -outline #000000000000 -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple1) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create polygon \
29.6939543042 121.928678622 34.3263950074 121.928678622 \
34.3263950074 121.928678622 140.872531179 121.928678622 \
140.872531179 121.928678622 145.504971882 121.928678622 \
145.504971882 130.395811007 145.504971882 130.395811007 \
145.504971882 134.629377198 145.504971882 134.629377198 \
145.504971882 143.096509583 140.872531179 143.096509583 \
140.872531179 143.096509583 34.3263950074 143.096509583 \
34.3263950074 143.096509583 29.6939543042 143.096509583 \
29.6939543042 134.629377198 29.6939543042 134.629377198 \
29.6939543042 130.395811007 29.6939543042 130.395811007 -fill \
$Global(ButtonColor) -outline #000000000000 -smooth 0 \
-splinesteps 12 -stipple $Global(ButtonStipple2) -tags {} -width \
1]
set i [$Global(CurrentCanvas) create polygon \
37.0084235148 76.6096100677 37.0084235148 76.6096100677 \
136.511731999 76.6096100677 136.511731999 76.6096100677 \
136.511731999 54.2857931245 148.949645559 31.9619761813 \
148.949645559 31.9619761813 49.4463370753 31.9619761813 \
49.4463370753 31.9619761813 37.0084235148 54.2857931245 \
37.0084235148 76.6096100677 -fill #FFFFFFFFFFFF -outline \
#000000000000 -smooth 1 -splinesteps 12 -stipple \
$Global(ButtonStipple2) -tags {} -width 1]
set i [$Global(CurrentCanvas) create polygon \
148.978487615 31.8672316384 142.932094742 42.6870925685 \
150.25141243 42.6870925685 -fill #FFFFFFFFFFFF -outline black \
-smooth 0 -splinesteps 12 -stipple $Global(ButtonStipple1) -tags \
{} -width 1]
}}
}
if {[info exists embed_args] || [info exists env(PLUGIN)]} {
set Global(Plugin) 1
set Global(ButtonSize) 25
set Global(ButtonOrient) left
set Global(ButtonCount) 10
} else {
set Global(Plugin) 0
}
proc RotateF { r x y args } {
set newshape ""
set count [llength $args]
set c 0
set sr [expr sin($r*3.14159265358979323846/180.0)]
set cr [expr cos($r*3.14159265358979323846/180.0)]
while {$c < $count} {
set xc [lindex $args $c]
set yc [lindex $args [expr $c + 1]]
set c [expr $c + 2]
lappend newshape [expr ($xc - $x) * $cr - ($yc - $y) * $sr + $x] \
[expr ($xc - $x) * $sr + ($yc - $y) * $cr + $y]
}
return $newshape
}
set Global(CornerUL) { 5 5 25 5 25 15 15 15 15 25 5 25 5 5 }
set Global(CornerUR) [eval RotateF 90 20 20 $Global(CornerUL)]
set Global(CornerLR) [eval RotateF 90 20 20 $Global(CornerUR)]
set Global(CornerLL) [eval RotateF 90 20 20 $Global(CornerLR)]
proc setTags {w reqName} {
global windowtag reqtag CjNames
if {[info exists CjNames($w)]} {
set windowtag $CjNames($w)
}
set reqtag "$reqName"
}
proc initRequestor {name w class title trans} {
global reqName
toplevel $w -class $class
tk_bindForTraversal $w
if {$trans != "" && $trans != 0} {
wm transient $w .
}
wm title $w "$title"
wm iconname $w "$name"
set reqName "$name"
}
proc bindEntry {entry type width} {
global CjNames CjWindows CjWidth
set name $CjNames($entry)
set CjWidth($entry) $width
switch [string tolower $type] {
hex {
bind $entry <Key> {
if {[expr [string length [%W get]] + 1] > $CjWidth(%W) &&\
"%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
if {[%W selection present]} {
%W icursor sel.first
%W delete sel.first sel.last
} else {
break
}
}
set a [string toupper "%A"]
if { ("%A" < "0" || "%A" > "9") && ("$a" < "A" || "$a" > "F") } {
if { "%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
if {[%W selection present]} {
%W icursor sel.first
%W delete sel.first sel.last
} else {
break
}
}
}
}
proc set_$name { val } "
$entry delete 0 end
$entry insert 0 \[format \"%0${width}X\" \$val\]
"
proc get_$name {} "
set val \[$entry get\]
scan \${val} %x tvalue
return \$tvalue
"
}
unit {
bind $entry <Key> {
if {[expr [string length [%W get]] + 1] > $CjWidth(%W) &&\
"%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
break
}
if { "%A" < "0" || "%A" > "9" } {
if { "%A" == "." } {
if {[string first "." "[%W get]"] != -1} {
break
}
} elseif { "%A" == "m" } {
if {[string first "m" "[%W get]"] != -1} {
break
}
} elseif { "%A" == "c" } {
if {[string first "c" "[%W get]"] != -1} {
break
}
} elseif { "%A" == "i" } {
if {[string first "i" "[%W get]"] != -1} {
break
}
} elseif { "%A" == "p" } {
if {[string first "p" "[%W get]"] != -1} {
break
}
} elseif { "%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
break
}
}
}
proc set_$name { val } "
$entry delete 0 end
$entry insert 0 \[format \$val]
"
proc get_$name {} "
set val \[$entry get\]
return \$val
"
}
float {
bind $entry <Key> {
if {[expr [string length [%W get]] + 1] > $CjWidth(%W) &&\
"%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
break
}
if { "%A" < "0" || "%A" > "9" } {
if { "%A" == "." } {
if {[string first "." "[%W get]"] != -1} {
break
}
} elseif { "%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
break
}
}
}
proc set_$name { val } "
$entry delete 0 end
$entry insert 0 \[format \$val]
"
proc get_$name {} "
set val \[$entry get\]
return \$val
"
}
int {
bind $entry <Key> {
if {[expr [string length [%W get]] + 1] > $CjWidth(%W) &&\
"%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
break
}
if { "%A" < "0" || "%A" > "9" } {
if { "%A" != "{}" && "%A" >= " " && "%A" <= "~" } {
break
}
}
}
proc set_$name { val } "
$entry delete 0 end
$entry insert 0 \$val
"
proc get_$name {} "
set val \[$entry get\]
return \$val
"
}
text -
default {
proc set_$name { val } "
$entry delete 0 end
$entry insert 0 \$val
"
proc get_$name {} "
set val \[$entry get\]
return \$val
"
}
}
}
proc createEntry {w name type width args} {
global CjNames CjWindows
set e [eval entry $w.${name}_e $args]
set CjNames($e) $name
set CjWindows($name) $e
bindEntry $w.${name}_e $type $width
return $e
}
proc createScale {w name args} {
global CjNames CjWindows
set s [eval scale $w.${name}_sc $args]
set CjNames($s) $name
set CjWindows($name) $s
return $s
}
proc createComboScale {w name label scale entry} {
global CjNames CjWindows
frame $w.${name}_f -highlightthickness 0
frame $w.${name}_f.top -highlightthickness 0
frame $w.${name}_f.bottom -highlightthickness 0
set l [label $w.${name}_l -text "$label" -highlightthickness 0]
raise $scale
raise $entry
pack $l -in $w.${name}_f.top -anchor sw -side left
pack $scale -in $w.${name}_f.bottom -anchor nw -side left \
-fill x -expand true
pack $entry -in $w.${name}_f.bottom -padx 2m -anchor sw -side right
pack $w.${name}_f.top $w.${name}_f.bottom -in $w.${name}_f -side top \
-padx 2m -fill x -expand true
set ename $CjNames($entry)
$scale configure -command set_${ename}
bind $entry <Key-Return> "
set_${ename} \[get_${ename}\]
$scale set \[get_${ename}\]
"
bind $entry <FocusOut> "
if {\[$entry get\] == \"\"} {
set_${ename} \[$scale get\]
} else {
set_${ename} \[get_${ename}\]
$scale set \[get_${ename}\]
}
"
set CjNames($w.${name}_f) $name
set CjWindows($name) $w.${name}_f
return $w.${name}_f
}
proc createButton {w name default args} {
global CjNames CjWindows
set b [eval button $w.${name}_b $args]
if {"$default" == 1} {
bind $b <Key-Return> {
%W invoke
}
focus $b
}
set CjNames($b) $name
set CjWindows($name) $b
return $b
}
proc deleteComboBox {combobox} {
global CjNames CjWindows
eval .$CjNames($combobox)_tflb.lb delete 0 end
}
proc insertComboBox {combobox pos args} {
global CjNames CjWindows
eval .$CjNames($combobox)_tflb.lb insert $pos $args
}
proc createComboBox {w name label entry button height} {
global CjNames CjWindows
frame $w.${name}_fcb -highlightthickness 0
frame $w.${name}_fcbe -highlightthickness 0
frame $w.${name}_dummy -highlightthickness 0
set d $w.${name}_dummy
if { "$label" != "" } {
set l [label $w.${name}_l -text "$label" -highlightthickness 0]
pack $l -in $w.${name}_fcb -side top -anchor w
}
$button configure -command "
set rhght \[winfo reqheight .${name}_tflb.lb\]
set rwdth \[expr \[winfo reqwidth .${name}_tflb.lb\] + \
\[winfo reqwidth $button\]\]
raise .${name}_tflb
wm geometry .${name}_tflb \
\${rwdth}x\${rhght}+\[winfo rootx $d\]\+\[winfo rooty $d\]
wm deiconify .${name}_tflb
focus .${name}_tflb.lb
set CjPriv(background) \[.${name}_tflb.lb cget -selectbackground\]
"
pack $entry -in $w.${name}_fcbe -side left -fill x -expand true -anchor w
pack $button -in $w.${name}_fcbe -side right -fill both -anchor w -padx .05c
pack $w.${name}_fcbe $d -in $w.${name}_fcb -side top -anchor w
raise $entry
raise $button
toplevel .${name}_tflb -bd 1 -relief raised -class ComboBox \
-highlightthickness 0
wm overrideredirect .${name}_tflb 1
listbox .${name}_tflb.lb -height $height -width [$entry cget -width] \
-yscrollcommand ".${name}_tflb.sb set" -relief flat
scrollbar .${name}_tflb.sb -command ".${name}_tflb.lb yview" -relief ridge
pack .${name}_tflb.lb -in .${name}_tflb -side left -pady 2 -ipadx 1
pack .${name}_tflb.sb -in .${name}_tflb -side right -fill y -pady 2
wm withdraw .${name}_tflb
bind .${name}_tflb <Key-Escape> "
grab release \[grab current\]
.${name}_tflb.lb configure -selectbackground \$CjPriv(background)
wm withdraw .${name}_tflb
if {\[info exists tkPriv(relief)\]} {
$button configure -relief \$tkPriv(relief)
}
$button configure -state normal
if {\"$w\" != \"\"} {
focus -lastfor $w
} else {
focus [focus -lastfor .]
}
set tkPriv(buttonWindow) \"\"
tkCancelRepeat
focus [focus -lastfor $w]
"
bind .${name}_tflb.lb <Key-Return> "
set ${name}_e_val [$entry cget -textvariable]
set current \[.${name}_tflb.lb curselection\]
if {\"\$current\" != \"\"} {
set \$${name}_e_val \[.${name}_tflb.lb get \
\$current\]
}
eval \[bind .${name}_tflb <Key-Escape>\]
"
bind .${name}_tflb <ButtonRelease-1> "
if {\"%W\" != \".${name}_tflb.sb\"} {
eval \[bind .${name}_tflb <Key-Escape>\]
focus [focus -lastfor $w]
break
}
"
bind .${name}_tflb.lb <ButtonRelease-1> "
eval \[bind .${name}_tflb.lb <Key-Return>\]
set tkPriv(buttonWindow) \"\"
"
bind .${name}_tflb.lb <Leave> "
if {\$tkPriv(buttonWindow) != \"\"} {
.${name}_tflb.lb configure -selectbackground \
\[.${name}_tflb.lb cget -background\]
}
focus .${name}_tflb
"
bind .${name}_tflb.lb <Enter> "
.${name}_tflb.lb configure -selectbackground \
\$CjPriv(background)
"
bind .${name}_tflb.lb <Any-Key> "
.${name}_tflb.lb configure -selectbackground \$CjPriv(background)
"
bind $button <Key-Return> "
tkButtonUp %W
%W invoke
focus .${name}_tflb.lb
grab -global .${name}_tflb
update
"
bind $button <ButtonRelease-1> {
break
}
bind $button <Button-1> {
tkButtonUp %W
%W invoke
}
bind $button <Leave> "
if {\[wm state .${name}_tflb\] == \"normal\"} {
focus .${name}_tflb
grab -global .${name}_tflb
update
break
}
"
set CjNames($w.${name}_fcb) $name
set CjNames(.${name}_tflb.lb) $name
set CjNames(.${name}_tflb) $name
set CjWindows($name) $w.${name}_fcb
return $w.${name}_fcb
}
proc checkUnit {entry} {
set value [$entry get]
if {[regexp {^[.0-9][.0-9]*[ipcm]$} $value]} {
if {[regexp {^[^.]*[.][^.]*[.].*$} $value]} {
return 0
} else {
return 1
}
} else {
return 0
}
}
proc labeledEntry { pathname label type args} {
frame ${pathname}_f
label ${pathname}_l -text "$label"
eval entry ${pathname} $args
pack ${pathname}_l -side left -in ${pathname}_f -fill x
pack ${pathname} -side right -in ${pathname}_f -fill x
return ${pathname}_f
}
proc textLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(TextReplace)] -fill both -expand true
} else {
wm withdraw $w
}
}
proc propLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(PropReplace)] -fill both -expand true
} else {
wm withdraw $w
}
}
proc slideLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(SlideReplace)] -fill both -expand true
} else {
wm withdraw $w
}
set Global(colortype) $Global(colortypeSave)
}
proc printLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(PrintReplace)] -fill both -expand true
} else {
wm withdraw $w
}
}
proc gridLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(GridReplace)] -fill both -expand true
} else {
wm withdraw $w
}
}
proc msgLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(MsgReplace)] -fill both -expand true
} else {
wm withdraw $w
}
}
proc msgRequestor {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.textbottom -relief raised -bd 1
label $w.message
button $w.ok -text "Dismiss" -command "msgLower $w"
pack $w.message -in $w.texttop -fill both -expand true
pack $w.ok -in $w.textbottom -side left -padx 2m -pady 2m
pack $w.texttop $w.textbottom -anchor sw -in $w -fill x -expand true
pack $w.f -in $w
if { !$Global(Plugin) } {
wm withdraw $w
}
}
proc msgRaise {name message} {
global Global
set w ${name}
set Global(MsgReplace) $Global(CurrentCanvas)
if {![winfo exists $name]} {
msgRequestor $name
}
$w.message configure -text "$message"
if { $Global(Plugin) } {
pack forget [winfo parent $Global(MsgReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
focus $w
}
}
proc textRaise {name} {
global Global
set w ${name}
set Global(TextReplace) $Global(CurrentCanvas)
if {![winfo exists $name]} {
textRequestor $name
}
if { $Global(Plugin) } {
pack forget [winfo parent $Global(TextReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
$w.text delete 1.0 end
}
proc propDisplay {name item} {
global Global concmd
if {[winfo exists $name.p.p]} {
eval destroy [pack slaves $name.p.p]
} else {
frame $name.p.p
}
$Global(CurrentCanvas) dtag current
set props [$Global(CurrentCanvas) itemconfigure $item]
set type [$Global(CurrentCanvas) type $item]
set i 0
set concmd ""
foreach prop $props {
set propname [string range [lindex $prop 0] 1 end]
global var${propname}
set var${propname} [lindex $prop 4]
frame $name.p.p.f$i
label $name.p.p.f$i.l${propname} -text "$propname"
if {"$type" == "text" && "$propname" == "text"} {
text $name.p.p.f$i.e${propname} -width 20 -height 2
$name.p.p.f$i.e${propname} insert 0.0 [lindex $prop 4]
set textwidget $name.p.p.f$i.e${propname}
} else {
entry $name.p.p.f$i.e${propname} -textvariable var${propname} \
-width 20
}
pack $name.p.p.f$i.l${propname} -in $name.p.p.f$i -side left -fill x
pack $name.p.p.f$i.e${propname} -in $name.p.p.f$i -side right
pack $name.p.p.f$i -in $name.p.p -side top -fill x -expand true
incr i
if {"$type" == "text" && "$propname" == "text"} {
append concmd " -${propname} \"\[${textwidget} get 0.0 end\]\""
} else {
append concmd " -${propname} \"\$var${propname}\""
}
}
button $name.p.p.b -text "Apply" \
-command "eval \$Global(CurrentCanvas) itemconfigure $item \$concmd;
"
pack $name.p.p.b -in $name.p.p
pack $name.p.p -in $name.p
}
proc propDraw {name sc or items index} {
global Global
set w ${name}
set Global(PropDraw) ""
eval $w.c delete [$w.c find withtag all]
set item [lindex $items [expr $index - 1]]
set props [getProperties $Global(CurrentCanvas) $item Esc 0]
$w.l configure -text "Object $index of [llength $items]"
set coords [$Global(CurrentCanvas) coords $item]
set type [$Global(CurrentCanvas) type $item]
append Global(PropDraw) \
"set i \[eval $w.c create $type $coords $props -tags this\]
eval $w.c scale this 0 0 $sc $sc;"
if {"$type" == "text"} {
append Global(PropDraw) \
"set fn \[$w.c itemcget \$i -font\];
regexp {(\[-\]\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-)(\[^-\]*)(-.*)} \$fn dummy d1 size d2;
if {\$dummy != \"\"} {
set nsize \[expr round(\$size * $sc\)];
if { \$nsize < 20 } {
set nsize 20
}
$w.c itemconfigure \$i -font \${d1}\${nsize}\${d2};
set fnn \[$w.c itemcget \$i -font\];
regexp {(\[-\]\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-\[^-\]*-)(\[^-\]*)(-.*)} \$fnn dummy d1 nsize d2;
if {(\$sc < 1 && \$nsize < \$size) || \
(\$sc > 1 && \$nsize > \$size)} {
$w.c itemconfigure \$i -width \[expr \[$w.c itemcget \$i \
-width\] * $sc\];
} else {
$w.c itemconfigure \$i -font \$fn;
}
}"
}
if {"$type" != ""} {
eval $Global(PropDraw)
propDisplay $name $item
}
}
proc propRaise {name items} {
global Global
set w ${name}
set Global(PropReplace) $Global(CurrentCanvas)
if {![winfo exists ${name}]} {
propRequestor $name
}
set ph [winfo fpixels $Global(CurrentCanvas) $Global(PageHeight)]
set pw [winfo fpixels $Global(CurrentCanvas) $Global(PageWidth)]
if {$ph > $pw} {
set pix [expr 200.0 / $ph]
} else {
set pix [expr 200.0 / $pw]
}
set ch [expr $pix * $ph]
set cw [expr $pix * $pw]
set sc $pix
$w.c configure -width $cw -height $ch
set or [getOrigin "$items"]
$w.s configure -to [expr [llength $items]] \
-command "propDraw $w $sc {$or} {$items}"
$w.s set 1
propDraw $w $sc "$or" "$items" 1
if { $Global(Plugin) } {
pack forget [winfo parent $Global(PropReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
}
proc slideRaise {name} {
global Global
set w ${name}
if {![winfo exists ${name}]} {
slideRequestor $name
}
set Global(F_SlideBG) $w
if { $Global(Plugin) } {
set Global(colortypeSave) $Global(colortype)
set Global(colortype) SlideBG
pack forget [winfo parent $Global(SlideReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
}
proc printRaise {name} {
global Global
set w ${name}
if {![winfo exists ${name}]} {
printRequestor $name
}
if { $Global(Plugin) } {
pack forget [winfo parent $Global(PrintReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
}
proc gridRaise {name} {
global Global
set w ${name}
set Global(GridReplace) $Global(CurrentCanvas)
if {![winfo exists ${name}]} {
gridRequestor $name
}
if { $Global(Plugin) } {
pack forget [winfo parent $Global(GridReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
}
proc gridCheck {name} {
global Global
set w ${name}
if {$Global(Grid)} {
$w.gridx configure -state normal
$w.gridy configure -state normal
$w.gridx configure -relief sunken -bg white
$w.gridy configure -relief sunken -bg white
} else {
$w.gridx configure -state disabled
$w.gridy configure -state disabled
$w.gridx configure -relief flat -bg [$w cget -bg]
$w.gridy configure -relief flat -bg [$w cget -bg]
}
}
proc fontSel {fontl} {
global Global
set fsel ""
catch {set fsel [exec tkxfontsel.tcl]}
if { "$fsel" != "" } {
$fontl insert end $fsel
}
}
proc textRequestor {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.top -width 5i -height 4i -borderwidth 0 -highlightthickness 0
frame $w.topr
frame $w.bottom -borderwidth 0 -highlightthickness 0
listbox $w.fonts -relief sunken -height 3 -selectmode single \
-yscrollcommand "$w.sb set" -relief flat
scrollbar $w.sb -orient v -command "$w.fonts yview"
foreach font $Global(FontList) {
$w.fonts insert end $font
}
text $w.text -height 1 -width 20
bind $w.fonts <Button-1> "
set Global(Font) \[%W get \[%W nearest %y\]\]
$w.text configure -font \$Global(Font)
"
if { !$Global(Plugin) } {
button $w.addfont -text "Add Fonts..." -command "fontSel $w.fonts"
}
button $w.ok -text "Ok" -command "
regsub -all {(\[^
\])
(\[^
\])} \[$w.text get 1.0 end\] {\\1 \\2} match
\$Global(CurrentCanvas) itemconfigure \$Global(Text) \
-text \$match -font \$Global(Font);textLower $w"
button $w.cancel -text "Cancel" -command "textLower $w"
bind $w <Key-Escape> "textLower $w"
bind $w <Key-Escape> "textLower $w"
if { !$Global(Plugin) } {
button $w.open -text "Open" -command "
if { \[openFile \"\"\ \"\"] != \"\" } {
set f \[open \$Global(OpenFile) r\]
set in \[read -nonewline \$f\]
$w.text insert 0.0 \$in
}"
}
pack $w.sb -in $w.topr -side right -fill y
pack $w.fonts -in $w.topr -side left -expand true -fill both
pack $w.topr -in $w.top -expand true -side top -fill both
pack $w.text -in $w.top -expand true -fill both
if { !$Global(Plugin) } {
pack $w.addfont -in $w.bottom -side left -padx 1m -pady 1m
}
pack $w.ok $w.cancel -in $w.bottom -side left -padx 1m -pady 1m
if { !$Global(Plugin) } {
pack $w.open -in $w.bottom -side right -padx 1m -pady 1m
}
pack $w.top -side top -expand true -fill both -in $w.f
pack $w.bottom -side top -fill x -in $w.f
pack $w.f -in $w -fill both -expand true
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc propRequestor {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.p
frame $w.fsel -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.textbottom -relief raised -bd 1
canvas $w.c -width 1.5i -height 1.5i -relief sunken -bd 1 -bg white
label $w.l
scale $w.s -orient horiz -resolution 1 -from 1 -to 1 \
-variable Global(PropItem) -bd 2 -relief raised -highlightthickness 0 \
-width 8 -showvalue true
button $w.ok -text "Ok" -command "propLower $w"
button $w.cancel -text "Cancel" -command "propLower $w"
bind $w <Key-Escape> "propLower $w"
pack $w.c -in $w.texttop
pack $w.l -in $w.texttop -fill x
pack $w.s -in $w.texttop -fill x
pack $w.ok $w.cancel -in $w.textbottom -side left -padx 1m -pady 1m
pack $w.texttop -anchor sw -in $w.fsel
pack $w.fsel $w.textbottom -anchor sw -in $w.f -fill x
pack $w.f $w.p -in $w -anchor sw -side left
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc gridRequestor {name} {
global Global GridX GridY
set w ${name}
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.textleft -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.gridgravf -bd 1 -relief raised
frame $w.textbottom -relief raised -bd 1
set gridB [checkbutton $w.gridb -variable Global(Grid) -text "Grid On"\
-command "gridCheck $w"]
set gridX [labeledEntry $w.gridx "Grid X:" unit \
-textvariable GridX -width 5 -bg #FF00FF00FF00 ]
set gridY [labeledEntry $w.gridy "Grid Y:" unit \
-textvariable GridY -width 5 -bg #FF00FF00FF00 ]
gridCheck $w
label $w.gridgravl -text "Gravity Strength"
scale $w.gridgrav -variable Global(GravityVal) -from 0 -to 50 \
-showvalue true -resolution 1 -orient horiz -width 2m
button $w.ok -text "Ok" -command \
"if {\[checkUnit $w.gridx\]} {
set Global(GridX) \$GridX
set Global(GridY) \$GridY
gridLower $w
} else {
msgRaise .diagmsg \"Wrong Format: should be number followed by:
m-(millimeters)
c-(centimeters)
i-(inches) or
p-(points)\"
if {!$Global(Plugin)} {
wm deiconify $w
}
raise $w
focus $w
}"
button $w.cancel -text "Cancel" -command "gridLower $w"
bind $w <Key-Escape> "gridLower $w"
pack $gridB $gridX $gridY -in $w.textleft -side top -padx 1m -pady 1m
pack $w.gridgravl $w.gridgrav -in $w.gridgravf -side top -fill x
pack $w.textleft $w.gridgravf -in $w.texttop -side top
pack $w.ok $w.cancel -in $w.textbottom -side left -padx 1m -pady 1m
pack $w.texttop $w.textbottom -anchor sw -in $w -fill x -expand true
pack $w.f -in $w
set GridX $Global(GridX)
set GridY $Global(GridY)
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc pagePropOpenLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(PagePropReplace)] -fill both -expand true
} else {
wm withdraw $w
}
}
proc pagePropLower {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
pack forget $w
pack [winfo parent $Global(PagePropReplace)] -fill both -expand true
} else {
wm withdraw $w
}
set Global(colortype) $Global(colortypeSave)
}
proc pagePropRaise {name} {
global Global pageHeight pageWidth
set w ${name}
set pageWidth $Global(PageWidth)
set pageHeight $Global(PageHeight)
set Global(PagePropReplace) $Global(CurrentCanvas)
if {![winfo exists ${name}]} {
pagePropRequestor $name
}
set Global(F_SlideBG) $w
if { $Global(Plugin) } {
set Global(colortypeSave) $Global(colortype)
set Global(colortype) SlideBG
pack forget [winfo parent $Global(PagePropReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
}
proc pagePropOpenRaise {name} {
global Global
set w ${name}
set Global(URL) ""
if {![winfo exists ${name}]} {
pagePropOpenRequestor $name
}
if { $Global(Plugin) } {
pack forget [winfo parent $Global(PagePropReplace)]
pack $w -fill both -expand true
} else {
wm deiconify $w
raise $w
focus $w
}
}
proc pagePropOpenRequestor {name} {
global Global
set w ${name}
set Global(PagePropReplace) $Global(CurrentCanvas)
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.textleft -borderwidth 0 -highlightthickness 0
frame $w.textright -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.textbottom -relief raised -bd 1
set url [labeledEntry $w.url "URL:" unit -textvariable Global(URL) \
-width 50 -bg #FF00FF00FF00 ]
set tout [scale $w.tout -from 1000 -to 900000 -resolution 1000 -bd 1 \
-orient h -showvalue true -variable Global(Timeout) \
-label "Timeout in milliseconds"]
button $w.ok -text "Ok" -command "pagePropOpenLower $w;openURL"
button $w.cancel -text "Cancel" -command "pagePropOpenLower $w"
bind $w <Key-Escape> "pagePropOpenLower $w"
pack $url $tout -in $w.textleft -side top -fill x -padx 1m -pady 1m
pack $w.textleft -in $w.texttop -side top
pack $w.ok $w.cancel -in $w.textbottom -side left -padx 1m -pady 1m
pack $w.texttop $w.textbottom -anchor sw -in $w -fill x -expand true
pack $w.f -in $w
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc pagePropRequestor {name} {
global Global
set w ${name}
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.textleft -borderwidth 0 -highlightthickness 0
frame $w.textright -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.textbottom -relief raised -bd 1
set landscapeB [checkbutton $w.landscapeb -variable Global(Landscape) \
-text "Landscape"]
set pageW [labeledEntry $w.pagewidth "Page Width:" unit \
-textvariable pageWidth -width 5 -bg #FF00FF00FF00 ]
set pageH [labeledEntry $w.pageheight "Page Height:" unit \
-textvariable pageHeight -width 5 -bg #FF00FF00FF00 ]
button $w.ok -text "Ok" -command \
"if {\[checkUnit $w.pagewidth\]} {
set Global(PageWidth) \$pageWidth
set Global(PageHeight) \$pageHeight
changePageProp \$Global(PageWidth) \$Global(PageHeight) \
\$Global(Landscape)
pagePropLower $w
} else {
msgRaise .diagmsg \"Wrong Format: should be number followed by:
m-(millimeters)
c-(centimeters)
i-(inches) or
p-(points)\"
if {!$Global(Plugin)} {
wm deiconify $w
}
raise $w
focus $w
}"
button $w.cancel -text "Cancel" -command "pagePropLower $w"
bind $w <Key-Escape> "pagePropLower $w"
if {$Global(Plugin)} "
button $w.new -text {New} -anchor w\
-command {pagePropLower $w;clearAll}
button $w.open -text {Open...} -anchor w\
-command {pagePropLower $w;pagePropOpenRaise .pagePropOpen}
button $w.save -text {Save As...} -anchor w\
-command {pagePropLower $w;saveToPlugin _parent}
frame $w.sbgf
pack $w.new $w.open $w.save $w.sbgf -in $w.textleft -side top -expand 1 -fill x
"
pack $landscapeB $pageW $pageH -in $w.textright -side top -padx 1m -pady 1m
pack $w.textleft $w.textright -in $w.texttop -side left -expand 1
pack $w.ok $w.cancel -in $w.textbottom -side left -padx 1m -pady 1m
pack $w.texttop $w.textbottom -anchor sw -in $w -fill x -expand true
pack $w.f -in $w
set pageHeight $Global(PageHeight)
set pageWidth $Global(PageWidth)
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc slideRequestor {name} {
global Global
set w ${name}
set Global(SlideReplace) $Global(CurrentCanvas)
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.textbottom -relief raised -bd 1
frame $w.sbgf
set slideBG [radiobutton $w.sbg -value SlideBG -text "Background Color" \
-variable Global(colortype) \
-pady 1m -anchor sw -indicatoron false -selectcolor ""]
set slideCirc [checkbutton $w.scirc -text "Circulate" \
-variable Global(Circulate)]
bind $slideBG <Double-Button-1> "
colorPaletteReq .colorpalette \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
.colorsp"
set slideBGC [frame $w.f_SlideBG -bg $Global(SlideBG) -relief sunken -bd 1 -width 5m -height 5m]
button $w.dismiss -text "Dismiss" -command "slideLower $w"
bind $w <Key-Escape> "slideLower $w"
pack $slideBGC $slideBG -side left -in $w.sbgf -fill x -expand true
pack $w.sbgf $slideCirc -in $w.texttop -fill both -expand true
pack $w.dismiss -in $w.textbottom -side left -padx 1m -pady 1m
pack $w.texttop -in $w -fill x -expand true
pack $w.textbottom -anchor sw -in $w -fill x -expand true
pack $w.f -in $w
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc printRequestor {name} {
global Global
set w ${name}
set Global(PrintReplace) $Global(CurrentCanvas)
if { $Global(Plugin) } {
frame $w -borderwidth 0
} else {
toplevel $w
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
}
frame $w.f -borderwidth 0 -highlightthickness 0
frame $w.texttop -borderwidth 0 -highlightthickness 0
frame $w.textbottom -relief raised -bd 1
set e [labeledEntry $w.e "Print Cmd:" unit -width 30 -textvariable Global(PrintCmd)]
set landscapeB [checkbutton $w.landscapeb -variable Global(Landscape) \
-text "Landscape"]
set printToFileB [checkbutton $w.ptf -variable Global(ToFile) \
-text "Print To File"]
set printColor [radiobutton $w.pc -variable Global(PSColor) \
-text "Color" -value {color}]
set printGrayScale [radiobutton $w.pg -variable Global(PSColor) \
-text "Gray Scale" -value {gray}]
button $w.ok -text "Ok" -command "printCanvas \$Global(PrintCmd);printLower $w"
button $w.cancel -text "Cancel" -command "printLower $w"
bind $w <Key-Escape> "printLower $w"
pack $e -in $w.texttop -fill both -expand true
pack $landscapeB $printToFileB $printColor $printGrayScale -anchor w -in $w.texttop -expand true
pack $w.ok $w.cancel -in $w.textbottom -side left -padx 1m -pady 1m
pack $w.texttop -in $w -fill x -expand true
pack $w.textbottom -anchor sw -in $w -fill x -expand true
pack $w.f -in $w
if { !$Global(Plugin) } {
wm withdraw $w
}
return $w
}
proc printCanvas {cmd} {
global Global
if {$Global(ToFile)} {
printToFile
} else {
printToStream
}
}
proc printToFile {} {
global Global
set filename [tk_getSaveFile \
-filetypes {{{Postscript} {.ps .eps}}} \
-parent .]
set saveit $Global(CurrentCanvas)
if {"$filename" != ""} {
set f [open $filename w]
for {set page 1} {[winfo exists .can.c${page}]} {incr page} {
set Global(CurrentCanvas) .can.c${page}
set out [doPostscript]
regsub -all {%%Page: [0-9][0-9]* [0-9][0-9]*} $out \
"%%Page: $page $page" newout
regsub -all {%%EOF} $newout {%%} newout
if { ! [info exists f] } {
msgRaise .diagmsg "ERROR: Cannot open $filename for writing."
set $Global(CurrentCanvas) $saveit
return
} else {
puts $f $newout
}
}
close $f
set $Global(CurrentCanvas) $saveit
}
}
proc printToStream {} {
global Global
set saveit $Global(CurrentCanvas)
if {"$Global(PrintCmd)" != ""} {
set f [open "|$Global(PrintCmd)" "w"]
for {set page 1} {[winfo exists .can.c${page}]} {incr page} {
set Global(CurrentCanvas) .can.c${page}
set out [doPostscript]
regsub -all {%%Page: [0-9][0-9]* [0-9][0-9]*} $out \
"%%Page: $page $page" newout
regsub -all {%%EOF} $newout {%%} newout
if { ! [info exists f] } {
msgRaise .diagmsg "ERROR: Cannot open stream for writing."
set $Global(CurrentCanvas) $saveit
return
} else {
append newout2 "$newout"
}
}
regsub -all {%%Pages: [0-9][0-9]*} $newout2 \
"%%Pages: [expr $page - 1]" newout3
puts $f $newout3
close $f
set $Global(CurrentCanvas) $saveit
}
}
proc saveAsFile {} {
global Global
set filename [tk_getSaveFile \
-filetypes {{{Tcl} {.tcl .tk}} {{ImPress} {.tki}}} \
-parent .]
if {"$filename" != ""} {
set out [saveAll]
set f [open $filename w]
if { ! [info exists f] } {
msgRaise .diagmsg "ERROR: Cannot open $filename for writing."
} else {
puts $f "$out"
close $f
}
}
}
proc openfile {cmd filename} {
global Global Group
if {"$filename" != ""} {
if {[file readable "$filename"]} {
set Global(OpenFile) "$filename"
if {"$cmd" != ""} {
. configure -cursor watch
update idletasks
eval $cmd "$filename"
update idletasks
. configure -cursor ""
update idletasks
}
return $Global(OpenFile)
} else {
set filename ""
msgRaise .diagmsg "ERROR: Cannot open file: $filename"
return ""
}
}
}
proc openFile {cmd type} {
global Global Group
if {"$type" == "Tk"} {
set ftype {{{Tcl} {.tcl .tk}} {{ImPress} {.tki}}} \
} else {
set ftype "$type"
}
set filename [tk_getOpenFile \
-filetypes "$ftype" \
-parent .]
return [openfile $cmd "$filename"]
}
proc explodeList {menu list parentmenu} {
global menu_buttons Global
set menuname [lindex $list 0]
set menutitle [lindex $list 1]
set menuopts [lindex $list 2]
set menucmd [lindex $list 3]
set newlist [lindex $list 4]
# Menubutton
if {"${parentmenu}" == "${menu}"} {
menubutton ${parentmenu}.${menuname}_b -text "$menutitle" \
-menu ${parentmenu}.${menuname}_b.${menuname} -padx 4m
if { "$menuopts" != ""} {
eval ${parentmenu}.${menuname}_b configure $menuopts
}
pack ${parentmenu}.${menuname}_b -side left -fill x
menu ${parentmenu}.${menuname}_b.${menuname}
lappend menu_buttons ${parentmenu}.${menuname}_b
set menuname ${menuname}_b.${menuname}
# MenuItem
} elseif {"$newlist" == ""} {
if {"${menutitle}" == ""} {
eval ${parentmenu} add separator ${menuopts}
} else {
eval ${parentmenu} add command -label \"${menutitle}\" \
-command \"${menucmd}\" ${menuopts}
}
# MenuCascade (subMenu)
} else {
eval ${parentmenu} add cascade -label \"$menutitle\" \
-menu ${parentmenu}.${menuname} ${menuopts}
menu ${parentmenu}.${menuname}
}
set len [llength "$newlist"]
if {$len} {
for {set i 0} {$i < $len} {incr i} {
set l [lindex "$newlist" $i]
explodeList "$menu" "$l" "${parentmenu}.${menuname}"
}
}
return $menu_buttons
}
proc createMenu {w name menulist} {
global Global
frame $w.${name}_frame
pack $w.${name}_frame -fill x
set newlist [lindex $menulist 4]
set len [llength "$newlist"]
for {set i 0} {$i < $len} {incr i} {
set l [lindex "$newlist" $i]
set menu_buttons \
[explodeList "$w.${name}_frame" "$l" "$w.${name}_frame"]
}
bind . <Any-FocusIn> "
if {(\"%d\" == \"NotifyVirtual\") && (\"%m\" == \"NotifyNormal\")} {
focus $w.${name}_frame
}
"
return "$w.${name}_frame $menu_buttons"
}
proc handleOrigin { handle } {
global Global
set bbox [ $Global(CurrentCanvas) bbox \
[ $Global(CurrentCanvas) find withtag $handle ] ]
if { "$bbox" != "" } {
set x1 [lindex $bbox 0]
set y1 [lindex $bbox 1]
set x2 [lindex $bbox 2]
set y2 [lindex $bbox 3]
switch "$handle" {
"top_left_corner" {
return "$x2 $y2"
}
"top_side" {
return "[expr $x1 + 5] $y2"
}
"top_right_corner" {
return "$x1 $y2"
}
"right_side" {
return "$x1 [expr $y1 + 5]"
}
"bottom_right_corner" {
return "$x1 $y1"
}
"bottom_side" {
return "[expr $x1 + 5] $y1"
}
"bottom_left_corner" {
return "$x2 $y1"
}
"left_side" {
return "$x2 [expr $y1 + 5]"
}
}
}
}
proc disableButton { name } {
global Global
$name create rectangle 0 0 $Global(ButtonSize) $Global(ButtonSize) \
-fill $Global(Background) -stipple gray50 -outline {} -tags disabled
}
proc enableButton { name } {
$name delete disabled
}
proc disablePaste {} {
global Global
if {$Global(Cut) == ""} {
disableButton .buttons.b_Paste
}
}
proc enablePaste {} {
.buttons.b_Paste delete disabled
}
proc enableSelectionButtons {} {
enableButton .buttons.b_Rotate
enableButton .buttons.b_Cut
enableButton .buttons.b_Duplicate
enableButton .buttons.b_Raise
enableButton .buttons.b_Lower
enableButton .buttons.b_Group
enableButton .buttons.b_UnGroup
enableButton .buttons.b_Flip_Vert
enableButton .buttons.b_Flip_Horiz
}
proc disableSelectionButtons {} {
disableButton .buttons.b_Rotate
disableButton .buttons.b_Cut
disableButton .buttons.b_Duplicate
disableButton .buttons.b_Raise
disableButton .buttons.b_Lower
disableButton .buttons.b_Group
disableButton .buttons.b_UnGroup
disableButton .buttons.b_Flip_Vert
disableButton .buttons.b_Flip_Horiz
}
proc setCursor { value } {
global Global
set Global(Cursor) $value
setRadioButton Global(Cursor) $value
}
proc handleBindings {} {
global Global
$Global(CurrentCanvas) bind top_side <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor top_side
set Global(Message) Scale
}
$Global(CurrentCanvas) bind top_side <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind right_side <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor right_side
set Global(Message) Scale
}
$Global(CurrentCanvas) bind right_side <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind left_side <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor left_side
set Global(Message) Scale
}
$Global(CurrentCanvas) bind left_side <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind bottom_side <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor bottom_side
set Global(Message) Scale
}
$Global(CurrentCanvas) bind bottom_side <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind top_left_corner <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor top_left_corner
set Global(Message) Scale
}
$Global(CurrentCanvas) bind top_left_corner <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind top_right_corner <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor top_right_corner
set Global(Message) Scale
}
$Global(CurrentCanvas) bind top_right_corner <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind bottom_right_corner <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor bottom_right_corner
set Global(Message) Scale
}
$Global(CurrentCanvas) bind bottom_right_corner <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
$Global(CurrentCanvas) bind bottom_left_corner <Enter> {
set Global(CursorSave) $Global(Cursor)
setCursor Scale
%W configure -cursor bottom_left_corner
set Global(Message) Scale
}
$Global(CurrentCanvas) bind bottom_left_corner <Leave> {
setCursor $Global(CursorSave)
%W configure -cursor ""
set Global(Message) $Global(CursorSave)
}
}
proc unHandleBindings {} {
$Global(CurrentCanvas) bind top_side <Enter> {}
$Global(CurrentCanvas) bind top_side <Leave> {}
$Global(CurrentCanvas) bind right_side <Enter> {}
$Global(CurrentCanvas) bind right_side <Leave> {}
$Global(CurrentCanvas) bind left_side <Enter> {}
$Global(CurrentCanvas) bind left_side <Leave> {}
$Global(CurrentCanvas) bind bottom_side <Enter> {}
$Global(CurrentCanvas) bind bottom_side <Leave> {}
$Global(CurrentCanvas) bind top_left_corner <Enter> {}
$Global(CurrentCanvas) bind top_left_corner <Leave> {}
$Global(CurrentCanvas) bind top_right_corner <Enter> {}
$Global(CurrentCanvas) bind top_right_corner <Leave> {}
$Global(CurrentCanvas) bind bottom_right_corner <Enter> {}
$Global(CurrentCanvas) bind bottom_right_corner <Leave> {}
$Global(CurrentCanvas) bind bottom_left_corner <Enter> {}
$Global(CurrentCanvas) bind bottom_left_corner <Leave> {}
}
proc bboxToCorners { coords } {
return "[lindex $coords 0] [lindex $coords 1] [lindex $coords 2] [lindex $coords 1] [lindex $coords 2] [lindex $coords 3] [lindex $coords 0] [lindex $coords 3]"
}
proc createHandles {} {
global Global
$Global(CurrentCanvas) delete handles
set bb [$Global(CurrentCanvas) bbox Imp_Selected]
if {"$bb" != ""} {
set bboxcoords [bboxToCorners $bb]
set x2_1 [lindex $bboxcoords 0]
set y2_1 [lindex $bboxcoords 1]
set x1_1 [eval expr $x2_1 - 10]
set y1_1 [eval expr $y2_1 - 10]
set tlc [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_1 $y1_1 $x2_1 $y2_1"] \
-tags \"selectorbox handles disabled Imp_Selected top_left_corner\" \
-stipple gray50 \
-outline white -fill black]
set x2_2 [eval expr ([lindex $bboxcoords 2] - $x2_1)/2 + $x2_1 + 5]
set y2_2 $y2_1
set x1_2 [eval expr $x2_2 - 10]
set y1_2 [eval expr $y2_2 - 10]
set ts [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_2 $y1_2 $x2_2 $y2_2"] \
-tags \"selectorbox handles disabled Imp_Selected top_side\" \
-stipple gray50 \
-outline white -fill black]
set x2_3 [eval expr [lindex $bboxcoords 2] + 10]
set y2_3 $y2_1
set x1_3 [eval expr $x2_3 - 10]
set y1_3 [eval expr $y2_3 - 10]
set trc [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_3 $y1_3 $x2_3 $y2_3"] \
-tags \"selectorbox handles disabled Imp_Selected top_right_corner\" \
-stipple gray50 \
-outline white -fill black]
set x2_4 [eval expr $x1_3 + 10]
set y2_4 [eval expr ([lindex $bboxcoords 5] - $y2_3)/2 + $y2_3 + 5]
set x1_4 $x1_3
set y1_4 [eval expr $y2_4 - 10]
set rs [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_4 $y1_4 $x2_4 $y2_4"] \
-tags \"selectorbox handles disabled Imp_Selected right_side\" \
-stipple gray50 \
-outline white -fill black]
set x1_5 [lindex $bboxcoords 4]
set y1_5 [lindex $bboxcoords 5]
set x2_5 [eval expr $x1_5 + 10]
set y2_5 [eval expr $y1_5 + 10]
set brc [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_5 $y1_5 $x2_5 $y2_5"] \
-tags \"selectorbox handles disabled Imp_Selected bottom_right_corner\" \
-stipple gray50 \
-outline white -fill black]
set x2_6 $x1_2
set y2_6 [eval expr $y1_5 + 10]
set x1_6 [eval expr $x2_6 + 10]
set y1_6 $y1_5
set bs [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_6 $y1_6 $x2_6 $y2_6"] \
-tags \"selectorbox handles disabled Imp_Selected bottom_side\" \
-stipple gray50 \
-outline white -fill black]
set x1_7 $x1_1
set y1_7 $y1_6
set x2_7 [eval expr $x1_7 + 10]
set y2_7 [eval expr $y1_7 + 10]
set blc [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_7 $y1_7 $x2_7 $y2_7"] \
-tags \"selectorbox handles disabled Imp_Selected bottom_left_corner\" \
-stipple gray50 \
-outline white -fill black]
set x1_8 $x1_1
set y1_8 $y1_4
set x2_8 [eval expr $x1_8 + 10]
set y2_8 [eval expr $y1_8 + 10]
set ls [eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "$x1_8 $y1_8 $x2_8 $y2_8"] \
-tags \"selectorbox handles disabled Imp_Selected left_side\" \
-stipple gray50 \
-outline white -fill black]
handleBindings
}
}
proc doRuler { ruler len th m1 m2 step orient mark_list mastertemplate} {
# ruler is a canvase for the ruler to reside in.
# m1 (margin left, top)
# m2 (margin right, bottom) define margin sizes on each end of the ruler.
# len is the length of the ruler.
# th is the thickness (width) of the ruler.
# step numerical entry at every increment of step units (e.g. 1 for every 1i).
# orient h=horizontal, v=vertical.
# mark_list specifies the breakdown of ruler (max 4).
# (e.g. {.0625, .125, .25, .5})
# mastertemplate specifies (optional) a list of values indicating the length
# of the hash mark at each breaddown in mark_list (percentage of th).
# defaults to $th * .1, $th * .2, $th * .5
regexp {(.*)(.)$} "$len" match len unit
regexp {(.*).$} "$th" match th
if {"$mark_list" == ""} {
switch "$unit" {
i {
set mark_list {.0625 .125 .25 .5}
}
c {
set mark_list {.1 .5 1}
}
m {
set mark_list {5 20}
}
p {
set mark_list {50 100 200}
}
}
}
# Clear ruler
eval $ruler delete all
# Put down the base of ruler for size.
if {$mastertemplate == ""} {
# define lengths for divisions in units
set mastertemplate \
"[expr $th * .2] [expr $th * .3] [expr $th * .5] [expr $th * .8]"
}
set template [lrange $mastertemplate [expr 4 - [llength $mark_list]] end]
set largest [lindex $mastertemplate 3]
set ti 0
foreach b $mark_list {
if {"$b" == ""} {
incr ti
continue
}
set mlength [lindex $template $ti]
for {set i 0} {$i <= $len} {set i [expr $i + $b]} {
if {"$orient" == "h"} {
$ruler create line ${i}${unit} [expr $th - ${mlength}]i \
${i}${unit} ${th}i
if {$i == [expr int($i)]} {
$ruler create text ${i}${unit} [expr $th - ${largest} - \
.05]i \
-anchor ne -text [expr int($i)]
}
} else {
$ruler create line [expr $th - ${mlength}]i ${i}${unit} ${th}i \
${i}${unit}
if {$i == [expr int($i)]} {
$ruler create text [expr $th - ${largest} - \
.05]i ${i}${unit} \
-anchor sw -text [expr int($i)]
}
}
}
incr ti
}
if {$orient == "h"} {
$ruler configure -scrollregion \
"${m1}${unit} 0i [expr ${len} - ${m2}]${unit} ${th}i"
$ruler configure -xscrollincrement 1
$ruler create line 0 ${th}i 0 0 -tags h -fill red
} else {
$ruler configure -scrollregion \
"0i ${m1}${unit} ${th}i [expr ${len} - ${m2}]${unit}"
$ruler configure -yscrollincrement 1
$ruler create line 0 0 ${th}i 0 -tags v -fill red
}
}
proc trans { x y shape } {
set newshape ""
set count [llength $shape]
set c 0
while {$c < $count} {
set xc [lindex $shape $c]
set yc [lindex $shape [expr $c + 1]]
set c [expr $c + 2]
lappend newshape [expr $xc + $x] [expr $yc + $y]
}
return $newshape
}
proc doPostscript {args} {
global Global
deselectAll
if { "$args" == "" } {
set ps [$Global(CurrentCanvas) postscript -x -0i -y -0i\
-width $Global(PageWidth) -colormode $Global(PSColor) \
-height $Global(PageHeight) -rotate $Global(Landscape)]
} else {
set ps [$Global(CurrentCanvas) postscript -channel $args -x -0i -y -0i\
-width $Global(PageWidth) -colormode $Global(PSColor) \
-height $Global(PageHeight) -rotate $Global(Landscape)]
}
return $ps
}
proc display {topname args} {
catch {
set f [browser::openStream $topname application/postscript]
set out [doPostscript]
browser::writeToStream $f $out
browser::closeStream $f
}
}
proc saveToPlugin {topname} {
global Global
if {[catch {policy javascript} errMsg]} {
$Global(CurrentCanvas) create text 20 100 -text "$errMsg
Could not activate javascript policy.
Check tclplug config/plugin.cfg." \
-anchor sw -tags Imp_Text -fill red \
-font {-adobe-helvetica-bold-r-normal--*-240-72-72-p-0-iso8859-1}
update
} else {
catch {
set f [browser::openStream $topname application/impress]
set out [saveAll]
browser::writeToStream $f $out
browser::closeStream $f
}
}
}
proc printToPlugin {topname} {
global Global
set saveit $Global(CurrentCanvas)
if {"$Global(PrintCmd)" != ""} {
catch {
set f [browser::openStream $topname application/postscript]
for {set page 1} {[winfo exists .can.c${page}]} {incr page} {
set Global(CurrentCanvas) .can.c${page}
set out [doPostscript]
regsub -all {%%Page: [0-9][0-9]* [0-9][0-9]*} $out \
"%%Page: $page $page" newout
regsub -all {%%EOF} $newout {%%} newout
if { ! [info exists f] } {
msgRaise .diagmsg "ERROR: Cannot open stream for writing."
set $Global(CurrentCanvas) $saveit
return
} else {
browser::writeToStream $f $newout
}
}
browser::closeStream $f
}
set $Global(CurrentCanvas) $saveit
}
}
proc newOne {url mimetype lastmodified size} {
global Global
set Global(MessageSave) $Global(Message)
set Global(Total) $size
set Global(TotalSize) 0
set Global(Message) "Loading: $Global(Total) of $Global(TotalSize)"
update idletasks
}
proc writeOne {size data} {
global Global
set Global(TotalSize) [expr $Global(TotalSize) + $size]
set Global(Message) "Loading: $Global(Total) of $Global(TotalSize)"
update idletasks
}
proc openURL {} {
global Global
if {"$Global(URL)" != ""} {
if {[catch {policy javascript} errMsg]} {
$Global(CurrentCanvas) create text 20 100 -text "$errMsg
Could not activate javascript policy.
Check tclplug config/plugin.cfg." \
-anchor sw -tags Imp_Text -fill red \
-font {-adobe-helvetica-bold-r-normal--*-240-72-72-p-0-iso8859-1}
update
} else {
if {![regexp {[^/:][^/:]*:/.*} $Global(URL) m]} {
set Global(URL) "[getattr originHomeDirURL]$Global(URL)"
}
. configure -cursor watch
update idletasks
set Global(MessageSave) $Global(Message)
catch {
set url_in [browser::getURL $Global(URL) $Global(Timeout) newOne writeOne]
set t 0
} errcode
if {$errcode != 0} {
. configure -cursor {}
set Global(Message) "URL error: $errcode"
update idletasks
} else {
set Global(Message) "Rendering"
update idletasks
after idle "
$url_in
. configure -cursor {}
set Global(Message) $Global(MessageSave)
update idletasks"
}
}
}
}
proc printPlugin {} {
global Global
if {[catch {policy javascript} errMsg]} {
$Global(CurrentCanvas) create text 20 100 -text "$errMsg
Could not activate javascript policy.
Check tclplug config/plugin.cfg." \
-anchor sw -tags Imp_Text -fill red \
-font {-adobe-helvetica-bold-r-normal--*-240-72-72-p-0-iso8859-1}
update
} else {
printToPlugin "_parent"
}
}
proc popupCanvasSet { type } {
global Global
setCursor "$type"
switch "$Global(Cursor)" {
Rotate {
if {[$Global(CurrentCanvas) find withtag selectorbox] != ""} {
set Global(Message) Rotate
$Global(CurrentCanvas) delete selectorbox
$Global(CurrentCanvas) configure -closeenough 0.0
eval $Global(CurrentCanvas) create polygon \
[bboxToCorners [$Global(CurrentCanvas) bbox Imp_Selected]] \
-tags selectorbox -stipple gray25 -outline \"\" -fill black
} else {
setCursor Select
set Global(Message) Select
enableSelectionButtons
}
}
Group {
set Global(Message) Group
setGroup "[$Global(CurrentCanvas) find withtag Imp_selected]"
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
UnGroup {
set Global(Message) UnGroup
unGroup "[$Global(CurrentCanvas) find withtag Imp_selected]"
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
focus $Global(CurrentCanvas)
}
Grid {
set Global(Message) Grid
gridRaise .grid
}
PageProp {
set Global(Message) PageProp
pagePropRaise .pageProp
deselectAll
setCursor "Select"
set Global(Message) $Global(Cursor)
enableSelectionButtons
}
Raise {
set Global(Message) Raise
$Global(CurrentCanvas) raise Imp_selected
$Global(CurrentCanvas) raise selectorbox
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Lower {
set Global(Message) Lower
$Global(CurrentCanvas) lower Imp_selected
catch "$Global(CurrentCanvas) raise Imp_selected Disabled"
$Global(CurrentCanvas) raise selectorbox
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Rulers {
if { [$Global(CurrentCanvas) find withtag $Global(RulerX)] == "" } {
set Global(RulerX) [$Global(CurrentCanvas) create window \
0i .25i -anchor sw \
-window $Global(CurrentCanvas).rulerx -tags {rulerx disabled}]
set Global(RulerY) [$Global(CurrentCanvas) create window \
0i 0i -anchor nw \
-window $Global(CurrentCanvas).rulery -tags {rulery disabled}]
}
set Global(Message) Rulers
$Global(CurrentCanvas) coords rulerx 0i \
[expr [lindex [$Global(CurrentCanvas) yview] 0] * \
[winfo fpixels $Global(CurrentCanvas) $Global(PageHeight)] + \
[winfo fpixels $Global(CurrentCanvas) .25i] - 2]
$Global(CurrentCanvas) coords rulery \
[expr [lindex [$Global(CurrentCanvas) xview] 0] * \
[winfo fpixels $Global(CurrentCanvas) $Global(PageWidth)] - 2] \
0i
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Cut {
set Global(Message) Cut
cutCopySelected Cut Imp_Selected 1
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Paste {
if {$Global(Cut) == ""} {
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
}
Duplicate {
set Global(Message) Duplicate
duplicateSelected
createHandles
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Flip_Horiz {
flip Imp_Selected h
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Flip_Vert {
flip Imp_Selected v
setCursor "Select"
set Global(Message) Select
enableSelectionButtons
}
Smooth {
if {$Global(Smooth)} {
set Global(Msg_Smooth) "Switch to Smooth Lines"
} else {
set Global(Msg_Smooth) "Switch to Straight Lines"
}
set Global(Message) $Global(Msg_Smooth)
set Global(Smooth) [expr ! $Global(Smooth)]
.buttons.b_Smooth itemconfigure $Global(Smooth_Line) \
-smooth $Global(Smooth)
setCursor Select
}
Line -
Oval -
Rectangle -
Rounded_Rectangle -
Polygon -
Text -
Draw {
set Global(Sub-Cursor) ""
$Global(CurrentCanvas) delete Global(curline)
$Global(CurrentCanvas) delete selector
set Global(Message) $Global(Cursor)
deselectAll
disableSelectionButtons
}
Select {
set Global(Message) $Global(Cursor)
deselectAll
enableSelectionButtons
}
Printt {
.text delete 0.0 end
set out [saveAll]
.text insert 0.0 $out
pack forget [winfo parent $Global(CurrentCanvas)]
pack .textframe -fill both -expand true
focus .text
}
Print {
if {$Global(Plugin)} {
printPlugin
} else {
printRaise .print
}
return
}
}
focus $Global(CurrentCanvas)
}
proc setGroup { items } {
global Group GroupNo Global
if { "$items" != "" } {
set itemList [getGroupItems "$items"]
foreach item $itemList {
if {![info exists done($item)]} {
$Global(CurrentCanvas) addtag Group${GroupNo} withtag $item
if {[info exists Group($Global(CurrentCanvas),$item)]} {
set Group($Global(CurrentCanvas),$item) "Group${GroupNo} $Group($Global(CurrentCanvas),$item)"
} else {
set Group($Global(CurrentCanvas),$item) Group${GroupNo}
}
set done($item) 1
}
}
set GroupNo [clock clicks]
}
}
proc unGroup { items } {
global Group PrevGroup Global
if { "$items" != "" } {
. configure -cursor watch
update idletasks
# set itemList [getGroupItems "$items"]
set itemList "$items"
foreach item $itemList {
if {![info exists done($item)]} {
if {[info exists Group($Global(CurrentCanvas),$item)]} {
$Global(CurrentCanvas) dtag $Group($Global(CurrentCanvas),$item)
if {[lrange $Group($Global(CurrentCanvas),$item) 1 end] != ""} {
set Group($Global(CurrentCanvas),$item) [lrange $Group($Global(CurrentCanvas),$item) 1 end]
} else {
unset Group($Global(CurrentCanvas),$item)
}
}
set done($item) 1
}
}
deselectAll
update idletasks
. configure -cursor ""
update idletasks
}
}
proc tkScrollByUnits {w orient amount} {
set cmd [$w cget -command]
if {[string equal $cmd ""] || ([string first \
[string index [$w cget -orient] 0] $orient] < 0)} {
return
}
set info [$w get]
if {[llength $info] == 2} {
uplevel #0 $cmd scroll $amount units
} else {
uplevel #0 $cmd [expr {[lindex $info 2] + $amount}]
}
}
proc repositionWindow { X Y } {
global Global
set contain [winfo containing $X $Y]
set parent ""
catch {set parent [winfo parent $contain]}
switch "$contain" {
.can.scrolly {
set Global(ScrollDir) ".can.scrollx h 1"
eval tkScrollByUnits $Global(ScrollDir)
}
.can.scrollx {
set Global(ScrollDir) ".can.scrolly v 1"
eval tkScrollByUnits $Global(ScrollDir)
}
.msg {
set Global(ScrollDir) ".can.scrolly v -1"
eval tkScrollByUnits $Global(ScrollDir)
}
default {
if {"$parent" == "." && "$contain" != ".can"} {
set Global(ScrollDir) ".can.scrolly v -1"
}
if {"$parent" == ".can" || \
"$parent" == $Global(CurrentCanvas)} {
set Global(ScrollDir) ""
} elseif {$Global(ScrollDir) == ""} {
set Global(ScrollDir) ".can.scrollx h -1"
eval tkScrollByUnits $Global(ScrollDir)
} else {
eval tkScrollByUnits $Global(ScrollDir)
}
}
}
}
proc scaleSelected { handle1 x y X Y} {
global Global
repositionWindow $X $Y
set nofontscale 0
if { "$Global(LastSX)" == ""} {
set last [handleOrigin $handle1]
set Global(LastSX) [lindex "$last" 0]
set Global(LastSY) [lindex "$last" 1]
set origin \
[handleOrigin $Global($handle1)]
set Global(originx) [lindex "$origin" 0]
set Global(originy) [lindex "$origin" 1]
}
if { "$handle1" == "top_side" || "$handle1" == "bottom_side" } {
set scalex 1
set nofontscale 1
} else {
set e [expr $Global(originx) - $Global(LastSX)]
if {$e} {
set scalex [expr ($Global(originx) - $x) / \
$e]
}
}
if { "$handle1" == "right_side" || "$handle1" == "left_side" } {
set scaley 1
set nofontscale 1
} else {
set e [expr $Global(originy) - $Global(LastSY)]
if {$e} {
set scaley [expr ($Global(originy) - $y) / \
$e]
if { "$handle1" != "top_side" && "$handle1" != "bottom_side" \
&& $Global(FixedAspect) != ""} {
set scalex $scaley
}
}
}
set next {set Global(LastSX) $x;set Global(LastSY) $y}
if {$scalex > 0 && $scaley > 0} {
$Global(CurrentCanvas) scale Imp_Selected \
$Global(originx) $Global(originy) $scalex $scaley
eval $next
foreach i [$Global(CurrentCanvas) find withtag Imp_SelectedText] {
if {$Global(FontScale) && !$nofontscale} {
set fn [$Global(CurrentCanvas) itemcget $i -font]
regexp \
{([-][^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-)([^-]*)(-.*)}\
$fn dummy d1 size d2;
if {"$dummy" != ""} {
set nsize [expr round($size * $scalex)]
if {$nsize < 20} {
set nsize 20
}
$Global(CurrentCanvas) itemconfigure $i \
-font ${d1}${nsize}${d2}
set fnn [$Global(CurrentCanvas) itemcget $i -font]
regexp \
{([-][^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-)([^-]*)(-.*)}\
$fnn dummy d1 nsize d2;
if { ($scalex < 1 && $nsize < $size ) || \
($scalex > 1 && $nsize > $size) } {
$Global(CurrentCanvas) itemconfigure $i \
-width [expr [$Global(CurrentCanvas) itemcget $i \
-width] * $scalex]
} else {
$Global(CurrentCanvas) itemconfigure $i \
-font $fn
}
}
} else {
$Global(CurrentCanvas) itemconfigure $i \
-width [expr [$Global(CurrentCanvas) itemcget $i \
-width] * $scalex]
}
}
$Global(CurrentCanvas) delete handles
createHandles
}
}
proc deselectAll {} {
global Global
$Global(CurrentCanvas) delete selector
$Global(CurrentCanvas) delete selectorbox
$Global(CurrentCanvas) dtag Imp_selected
$Global(CurrentCanvas) dtag Imp_Selected
$Global(CurrentCanvas) dtag Imp_SelectedText
$Global(CurrentCanvas) dtag Imp_SelectedPhoto
$Global(CurrentCanvas) dtag currentImp_Selected
}
proc markSpot {x y} {
global Global
if {$Global(Grid)} {
set Global(LastX) [$Global(CurrentCanvas) canvasx $x \
$Global(GridX)]
} else {
set Global(LastX) [$Global(CurrentCanvas) canvasx $x \
1]
}
if {$Global(Grid)} {
set Global(LastY) [$Global(CurrentCanvas) canvasy $y \
$Global(GridY)]
} else {
set Global(LastY) [$Global(CurrentCanvas) canvasy $y \
1]
}
set Global(LastSX) ""
set Global(LastSY) ""
set Global(LastRotX) $Global(LastX)
set Global(LastRotY) $Global(LastY)
set Global(LastAngle) 0.0
}
proc findItemUnderCursor {} {
global Global
return [$Global(CurrentCanvas) find withtag current]
}
proc shadeCurrentSelected {} {
global Global
set bb [$Global(CurrentCanvas) bbox currentImp_Selected]
if {"$bb" != "" && \
[$Global(CurrentCanvas) type currentImp_Selected] != "text"} {
eval $Global(CurrentCanvas) create polygon [bboxToCorners $bb] \
-tags {"selectorbox Imp_Selected"} \
-stipple gray25 -outline {""} -fill black
}
}
proc selectAll {} {
global Global
popupCanvasSet Select
. configure -cursor watch
update idletasks
set itemList [eval $Global(CurrentCanvas) find withtag all]
if {[llength $itemList] > 500} {
$Global(CurrentCanvas) addtag Imp_selected withtag all
$Global(CurrentCanvas) addtag Imp_Selected withtag all
$Global(CurrentCanvas) addtag currentImp_Selected withtag all
$Global(CurrentCanvas) addtag Imp_SelectedText withtag Imp_Text
$Global(CurrentCanvas) addtag Imp_SelectedPhoto withtag Imp_Photo
$Global(CurrentCanvas) dtag currentImp_Selected disabled
$Global(CurrentCanvas) dtag Imp_Selected disabled
$Global(CurrentCanvas) dtag Imp_SelectedText disabled
$Global(CurrentCanvas) dtag Imp_SelectedPhoto disabled
shadeCurrentSelected
$Global(CurrentCanvas) dtag currentImp_Selected
} else {
foreach i $itemList {
set tags [$Global(CurrentCanvas) gettags $i]
selectItem $i $tags All
}
}
createHandles
update idletasks
. configure -cursor ""
update idletasks
}
proc selectItem {item tags type} {
global Global
if {"$item" != "" && [lsearch -exact "$tags" "disabled"] == -1} {
if {[lsearch -exact "$tags" "Imp_Selected"] == -1 && \
[lsearch -exact "$tags" "Imp_SelectedText"] == -1 &&
[lsearch -exact "$tags" "Imp_SelectedPhoto"] == -1} {
switch $type {
New {
deselectAll
}
}
set itemList [getGroupItems $item]
foreach i $itemList {
$Global(CurrentCanvas) addtag Imp_selected withtag $i
$Global(CurrentCanvas) addtag currentImp_Selected withtag $i
set t [$Global(CurrentCanvas) type $i]
if {$t == "text"} {
$Global(CurrentCanvas) addtag Imp_SelectedText withtag $i
} elseif {$t == "image"} {
$Global(CurrentCanvas) addtag Imp_SelectedPhoto withtag $i
}
}
shadeCurrentSelected
$Global(CurrentCanvas) addtag Imp_Selected withtag currentImp_Selected
$Global(CurrentCanvas) dtag currentImp_Selected
} elseif {"$type" == "Add" && \
[lsearch -exact "$tags" "selectorbox"] != -1} {
set itemList [eval $Global(CurrentCanvas) find enclosed \
[$Global(CurrentCanvas) bbox $item]]
foreach i $itemList {
$Global(CurrentCanvas) dtag $i Imp_selected
$Global(CurrentCanvas) dtag $i Imp_Selected
$Global(CurrentCanvas) dtag $i Imp_SelectedText
$Global(CurrentCanvas) dtag $i Imp_SelectedPhoto
if {[lsearch -exact [$Global(CurrentCanvas) gettags $i] \
"selectorbox"] != -1} {
$Global(CurrentCanvas) delete $i
}
}
$Global(CurrentCanvas) delete $item
}
} elseif {"$type" == "New"} {
deselectAll
}
}
proc selectBoundedItems {bb type} {
global Global
. configure -cursor watch
update idletasks
set itemList [eval $Global(CurrentCanvas) find enclosed $bb]
if {[llength $itemList] > 500} {
eval $Global(CurrentCanvas) addtag Imp_selected enclosed $bb
eval $Global(CurrentCanvas) addtag currentImp_Selected enclosed $bb
shadeCurrentSelected
$Global(CurrentCanvas) addtag Imp_Selected withtag currentImp_Selected
$Global(CurrentCanvas) dtag currentImp_Selected
} else {
foreach i $itemList {
set tags [$Global(CurrentCanvas) gettags $i]
selectItem $i $tags $type
}
}
update idletasks
. configure -cursor ""
update idletasks
}
proc dragBoxOrMove {item tags x y X Y} {
global Global
# If we don't update the tags here, we won't see the
# potential new selection we just made.
set tags [$Global(CurrentCanvas) gettags $item]
if {[lsearch -exact "$tags" "Imp_Selected"] == -1 && \
[lsearch -exact "$tags" "Imp_SelectedText"] == -1 && \
[lsearch -exact "$tags" "Imp_SelectedPhoto"] == -1} {
# Drag a selection box if there is no evidence of
# being on a Imp_Selected item.
$Global(CurrentCanvas) delete selector
repositionWindow $X $Y
$Global(CurrentCanvas) create rectangle \
$Global(LastX) $Global(LastY) $x $y \
-tags selector -fill "" -outline black
} else {
# Move Imp_Selected items if we are dragging on a
# Imp_Selected item.
set cursor [lindex [$Global(CurrentCanvas) configure -cursor] 4]
if { "$cursor" == "" || "$cursor" == "crosshair" } {
repositionWindow $X $Y
set possibles [$Global(CurrentCanvas) find enclosed \
[expr $x - $Global(GravityVal)] \
[expr $y - $Global(GravityVal)] \
[expr $x + $Global(GravityVal)] \
[expr $y + $Global(GravityVal)]]
set hs [$Global(CurrentCanvas) find withtag handles]
set tiend ""
foreach possible $possibles {
if {"$tiend" != ""} {
break
}
foreach h $hs {
if {$possible == $h} {
set tiend $h
break
}
}
}
set ho [handleOrigin [lindex \
[$Global(CurrentCanvas) itemcget $tiend -tags] end]]
if { $Global(Gravity) && "$ho" != "" && !$Global(AnchorChosen)} {
$Global(CurrentCanvas) move Imp_Selected \
[expr $x - [lindex $ho 0]] \
[expr $y - [lindex $ho 1]]
set Global(AnchorChosen) 1
} else {
$Global(CurrentCanvas) move Imp_Selected \
[expr $x - $Global(LastX)] \
[expr $y - $Global(LastY)]
set Global(AnchorChosen) 1
}
set Global(LastX) $x
set Global(LastY) $y
}
}
}
proc rotateSelected {} {
global Global Group
. configure -cursor watch
update
set items [$Global(CurrentCanvas) find withtag Imp_Selected]
foreach item $items {
set gsave ""
if {[info exists Group($Global(CurrentCanvas),$item)]} {
set gsave $Group($Global(CurrentCanvas),$item)
unset Group($Global(CurrentCanvas),$item)
}
set coords [$Global(CurrentCanvas) coords $item]
set tags [$Global(CurrentCanvas) gettags $item]
set props [getProperties $Global(CurrentCanvas) $item none 0]
set type [$Global(CurrentCanvas) type $item]
$Global(CurrentCanvas) delete $item
set i [eval $Global(CurrentCanvas) create $type \
[eval RotateF $Global(LastAngle) $Global(LastX) $Global(LastY) \
"$coords"] \
$props]
if {$gsave != ""} {
set Group($Global(CurrentCanvas),$i) "$gsave"
}
}
update idletasks
. configure -cursor ""
update idletasks
}
proc pasteCutCopy { x y pastetype cuttype doselect} {
global Global Group
. configure -cursor watch
update idletasks
set pastebuf $Global($cuttype)
if {"$pastebuf" != ""} {
switch "$pastetype" {
relative {
append pastebuf "
\$Global(CurrentCanvas) move Imp_Buffer $x $y;
"
}
absolute {
append pastebuf "
originObject Imp_Buffer;
\$Global(CurrentCanvas) move Imp_Buffer $x $y;
"
}
}
append pastebuf "
set itemList \[\$Global(CurrentCanvas) find withtag Imp_Buffer\];
\$Global(CurrentCanvas) dtag Imp_Buffer;
deselectAll;"
if {$doselect} {
append pastebuf "
foreach item \$itemList {
set tags \[\$Global(CurrentCanvas) gettags \$item\]
selectItem \$item \"\$tags\" Add
}
createHandles
"
}
after idle $pastebuf
}
update idletasks
. configure -cursor ""
update idletasks
}
proc OpasteCutCopy { x y cuttype lve mx my } {
global Global Group
. configure -cursor watch
update idletasks
deselectAll
if {"$Global($cuttype)" != ""} {
if { $lve } {
append Global($cuttype) "
set itemList \[\$Global(CurrentCanvas) find withtag cutImp_selected\]
foreach item \$itemList {
set tags \[\$Global(CurrentCanvas) gettags \$item\]
selectItem \$item \"\$tags\" Add
}
moveObject cutImp_selected $mx $my
\$Global(CurrentCanvas) dtag cutImp_selected
createHandles
"
after idle $Global($cuttype)
} else {
append Global($cuttype) "
moveObject cutImp_selected $mx $my
\$Global(CurrentCanvas) dtag cutImp_selected
"
after idle $Global($cuttype)
}
}
set Global($cuttype) ""
if {"$cuttype" == "Cut"} {
disablePaste
}
update idletasks
. configure -cursor ""
update idletasks
}
proc clearAll {} {
global Global
if {$Global(Plugin)} {
. configure -cursor watch
for {set page 1} {[winfo exists .can.c$page]} {incr page} {
destroy .can.c$page
}
set Global(CurrentPageId) 1
newCanvas .can c$Global(CurrentPageId)
. configure -cursor ""
} elseif {! [tk_dialog .clearAll "New?" \
"Selecting New will erase everything?" "" "0" "Yes" "No"] } {
. configure -cursor watch
for {set page 1} {[winfo exists .can.c$page]} {incr page} {
destroy .can.c$page
}
set Global(CurrentPageId) 1
newCanvas .can c$Global(CurrentPageId)
. configure -cursor ""
}
}
proc saveAll {} {
global Global Group
append nativeOut {#!/bin/sh
# restart trick }
append nativeOut "\\"
append nativeOut {
exec wish "$0" "$@"
if {![info exists Global(CurrentCanvas)]} {
proc nextPage {} {
global Global
set Global(CurrentPageId) [expr $Global(CurrentPageId) + 1]
if {![winfo exists .can.c$Global(CurrentPageId)]} {
if {$Global(Circulate)} {
set Global(CurrentPageId) 1
} else {
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
}
}
newCanvas .can c$Global(CurrentPageId)
update idletasks
}
proc prevPage {} {
global Global
if {$Global(CurrentPageId) > 1} {
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
newCanvas .can c$Global(CurrentPageId)
update idletasks
}
}
proc newCanvas { cf name } {
global Global
if {[winfo exists $Global(CurrentCanvas)]} {
pack forget $Global(CurrentCanvas)
}
set Global(CurrentCanvas) $cf.$name
if {[winfo exists $Global(CurrentCanvas)]} {
pack $Global(CurrentCanvas) -in $cf.top -side left -fill both \
-expand true
update idletasks
if {$Global(Fit)} {
scaleObject all "" \
[winfo width $Global(CurrentCanvas)] \
[winfo height $Global(CurrentCanvas)]
}
} else {
if {!$Global(Plugin)} {
wm maxsize . [winfo pixels . $Global(PageWidth)] \
[winfo pixels . $Global(PageHeight)]
}
canvas $Global(CurrentCanvas) -bg white \
-scrollregion "0i 0i $Global(PageWidth) $Global(PageHeight)" \
-xscrollcommand "$cf.scrollx set" \
-yscrollcommand "$cf.scrolly set"
bind $Global(CurrentCanvas) <2> {%W scan mark %x %y}
bind $Global(CurrentCanvas) <B2-Motion> {%W scan dragto %x %y}
bind . <Key-Next> {nextPage}
bind . <Key-Prior> {prevPage}
pack $Global(CurrentCanvas) -in $cf.top -side left -fill both \
-expand true
}
}
set Global(Circulate) 0
set Global(Fit) 0
set Global(PointsInch) [winfo fpixels . 1i]
if {[info exists embed_args]} {
set Global(Plugin) 1
} else {
set Global(Plugin) 0
}
frame .can
frame .can.top
frame .can.bottom
frame .can.buttons
button .can.origin -text Origin -command \
{originObject $Global(CurrentCanvas) all}
checkbutton .can.fit -text Fit -variable Global(Fit)
checkbutton .can.circ -text Circulate -variable Global(Circulate)
button .can.next -text Next -command {nextPage}
button .can.prev -text Prev -command {prevPage}
button .can.dismiss -text Dismiss -command "exit"
scrollbar .can.scrolly -bd 2 -width 15 \
-command {$Global(CurrentCanvas) yview}
scrollbar .can.scrollx -orient h -bd 2 -width 15 \
-command {$Global(CurrentCanvas) xview}
frame .can.corner -height 15 -width 15 -bd 2
if {!$Global(Plugin)} {
wm maxsize . [winfo pixels . 8.5i] [winfo pixels . 11i]
}
pack .can.scrolly -in .can.top -anchor se -side right -fill y
pack .can.scrollx -in .can.bottom -anchor se -side left -expand true -fill x
pack .can.corner -in .can.bottom -anchor ne -in .can.bottom \
-side right -fill both
pack .can.prev .can.next .can.origin .can.fit .can.circ -side left \
-in .can.buttons
pack .can.top -side top -in .can -expand true -fill both
pack .can.bottom -side top -in .can -anchor sw -fill x
pack .can.buttons -side top -in .can -anchor sw -fill x
pack .can -fill both -expand true
proc scaleObject {name ratio width height} {
global Global
set c $Global(CurrentCanvas)
set bb [$c bbox $name]
if {"$bb" == ""} {
return
}
set x [lindex $bb 2]
set y [lindex $bb 3]
if {$ratio != ""} {
set scale $ratio
} else {
if {$x > $y} {
set scale [expr ( $width + 0.0 ) / $x]
} else {
set scale [expr ( $height + 0.0 ) / $y]
}
}
$c scale $name 0 0 $scale $scale
foreach i [$c find withtag all] {
set type [$c type $i]
if {"$type" != "text"} {
continue
}
if {1} {
set fn [$c itemcget $i -font]
regexp \
{([-][^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-)([^-]*)(-.*)}\
$fn dummy d1 size d2;
if {"$dummy" != ""} {
set nsize [expr round($size * $scale)]
if {$nsize < 20} {
set nsize 20
}
$c itemconfigure $i \
-font ${d1}${nsize}${d2}
set fnn [$c itemcget $i -font]
regexp \
{([-][^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-)([^-]*)(-.*)}\
$fnn dummy d1 nsize d2;
if { ($scale < 1 && $nsize < $size ) || \
($scale > 1 && $nsize > $size) } {
$c itemconfigure $i \
-width [expr [$c itemcget $i \
-width] * $scale]
} else {
$c itemconfigure $i \
-font $fn
}
}
} else {
$c itemconfigure $i \
-width [expr [$c itemcget $i -width] \
}
}
}
proc originObject { c name } {
set bb [$c bbox $name]
set x [lindex $bb 0]
set y [lindex $bb 1]
if {$x > 0} {
set nx -$x
} else {
set nx [expr abs($x)]
}
if {$y > 0} {
set ny -$y
} else {
set ny [expr abs($y)]
}
$c move $name $nx $ny
}
}
if {[info exists Global(EmbedPage)]} {
if {!$Global(EmbedPage)} {
set Global(CurrentPageId) 0
set Global(CurrentCanvas) ""
} elseif {[info exists Global(CurrentPageId)]} {
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
}
} else {
set Global(CurrentPageId) 0
set Global(CurrentCanvas) ""
}
set Global(LoadPageId) [expr $Global(CurrentPageId) + 1]
}
append nativeOut " set Global(DocPointsInch) $Global(PointsInch)
set Global(SlideBG) $Global(SlideBG)
set Global(Circulate) $Global(Circulate)
"
for {set page 1} {[winfo exists .can.c$page]} {incr page} {
set Global(CurrentCanvas) .can.c$page
deselectAll
. configure -cursor watch
update idletasks
$Global(CurrentCanvas) delete selectorbox
set itemList [$Global(CurrentCanvas) find withtag all]
append nativeOut \
"
set Global(CurrentPageId) \[expr \$Global(CurrentPageId) + 1\]
set Global(PageHeight) $Global($Global(CurrentCanvas)_Height)
set Global(PageWidth) $Global($Global(CurrentCanvas)_Width)
set Global(Landscape) $Global($Global(CurrentCanvas)_Landscape)
newCanvas .can c\$Global(CurrentPageId)
"
if {$itemList != ""} {
foreach item $itemList {
set gsave ""
if {[info exists Group($Global(CurrentCanvas),$item)]} {
set gsave $Group($Global(CurrentCanvas),$item)
}
set props [getProperties $Global(CurrentCanvas) $item "" 0]
set coords [$Global(CurrentCanvas) coords $item]
set type [$Global(CurrentCanvas) type $item]
if {"$type" == "window"} {
continue
}
append nativeOut \
"set i \[\$Global(CurrentCanvas) create $type [regsub -all \
{([^ ][^ ]* [^ ][^ ]* [^ ][^ ]* [^ ][^ ]*)} $coords {\1 \\
} stuff; set stuff] $props\]\n"
if {"$gsave" != ""} {
append nativeOut \
"set Group(\$Global(CurrentCanvas),\$i) {$gsave}\n"
}
}
append nativeOut {scaleObject all \
[expr $Global(PointsInch)/$Global(DocPointsInch)] "" ""}
}
}
append nativeOut {
set Global(CurrentPageId) $Global(LoadPageId)
newCanvas .can c$Global(CurrentPageId)
}
update idletasks
. configure -cursor ""
update idletasks
set Global(CurrentCanvas) .can.c$Global(CurrentPageId)
return $nativeOut
}
proc cutCopySelected { cuttype tagname dogroups } {
global Global Group
set Global($cuttype) ""
. configure -cursor watch
update idletasks
$Global(CurrentCanvas) delete selectorbox
set itemList [$Global(CurrentCanvas) find withtag $tagname]
if {$itemList != ""} {
set bb [$Global(CurrentCanvas) bbox $tagname]
foreach item $itemList {
set gsave ""
if {$dogroups && [info exists Group($Global(CurrentCanvas),$item)]} {
foreach g $Group($Global(CurrentCanvas),$item) {
if {![info exists CopyGroup($g)]} {
set GroupNo [clock clicks]
set CopyGroup($g) "Group${GroupNo}"
}
lappend gsave $CopyGroup($g)
}
}
set props [getProperties $Global(CurrentCanvas) $item Esc $dogroups]
set coords [$Global(CurrentCanvas) coords $item]
set type [$Global(CurrentCanvas) type $item]
if {"$type" == "window"} {
continue
}
append Global($cuttype) "
set i \[eval \$Global(CurrentCanvas) create $type $coords $props\];
\$Global(CurrentCanvas) addtag Imp_Buffer withtag \$i;"
if { $gsave != "" } {
append Global($cuttype) "
set Group(\$Global(CurrentCanvas),\$i) {$gsave};"
foreach g $gsave {
append Global($cuttype) "
\$Global(CurrentCanvas) addtag $g withtag \$i;"
}
}
if {"$cuttype" == "Cut"} {
$Global(CurrentCanvas) delete $item
}
}
if {"$cuttype" == "Cut"} {
enablePaste
}
}
update idletasks
. configure -cursor ""
update idletasks
}
proc OcutCopySelected { cuttype tagname preserve } {
global Global Group
set Global($cuttype) ""
. configure -cursor watch
update idletasks
$Global(CurrentCanvas) delete selectorbox
set itemList [$Global(CurrentCanvas) find withtag $tagname]
if {$itemList != ""} {
set bb [$Global(CurrentCanvas) bbox $tagname]
set x [lindex $bb 0]
set y [lindex $bb 1]
if {!$preserve} {
if {$x > 0} {
set nx -$x
} else {
set nx [expr abs($x)]
}
if {$y > 0} {
set ny -$y
} else {
set ny [expr abs($y)]
}
}
deselectAll
foreach item $itemList {
set gsave ""
if {[info exists Group($Global(CurrentCanvas),$item)]} {
set gsave $Group($Global(CurrentCanvas),$item)
}
$Global(CurrentCanvas) addtag cutImp_selected withtag $item
set props [getProperties $Global(CurrentCanvas) $item Esc 0]
set coords [$Global(CurrentCanvas) coords $item]
set type [$Global(CurrentCanvas) type $item]
if {"$type" == "window"} {
continue
}
if {$preserve} {
append Global($cuttype) \
"set i \[eval \$Global(CurrentCanvas) create $type $coords $props\];"
} else {
append Global($cuttype) \
"set i \[eval \$Global(CurrentCanvas) create $type \[trans \$x \$y \"[trans $nx $ny $coords]\"\] $props\];"
if {"$gsave" != ""} {
append Global($cuttype) \
"set Group(\$Global(CurrentCanvas),\$i) {$gsave};"
unset Group($Global(CurrentCanvas),$item)
}
}
if {"$cuttype" == "Cut"} {
$Global(CurrentCanvas) delete $item
}
$Global(CurrentCanvas) dtag cutImp_selected
}
if {"$cuttype" == "Cut"} {
enablePaste
}
}
update idletasks
. configure -cursor ""
update idletasks
}
proc duplicateSelected {} {
global Group Global GroupNo
. configure -cursor watch
update idletasks
cutCopySelected Copy Imp_Selected 1
deselectAll
update idletasks
pasteCutCopy 20 20 relative Copy 1
update idletasks
. configure -cursor ""
update idletasks
}
proc OduplicateSelected {} {
global Group Global GroupNo
set GroupNo [clock clicks]
$Global(CurrentCanvas) configure -cursor watch
update idletasks
$Global(CurrentCanvas) delete selectorbox
set itemList [$Global(CurrentCanvas) find withtag Imp_Selected]
if {$itemList != ""} {
if {$Global(Duplicate) != $itemList} {
set Global(DuplicateX) 20
set Global(DuplicateY) 20
}
deselectAll
foreach item $itemList {
set gsave ""
if {[info exists Group($Global(CurrentCanvas),$item)]} {
set gsave $Group($Global(CurrentCanvas),$item)
}
set props [getProperties $Global(CurrentCanvas) $item none 1]
set coords [$Global(CurrentCanvas) coords $item]
set type [$Global(CurrentCanvas) type $item]
set i [eval $Global(CurrentCanvas) create $type \
[trans $Global(DuplicateX) $Global(DuplicateY) $coords] \
$props]
$Global(CurrentCanvas) addtag duplicate withtag $i
if {$gsave != ""} {
$Global(CurrentCanvas) dtag $i ${gsave}
$Global(CurrentCanvas) addtag "${gsave}${GroupNo}" withtag $i
set Group($Global(CurrentCanvas),$i) "${gsave}${GroupNo}"
}
}
incr Global(DuplicateX) 20
incr Global(DuplicateY) 20
set itemList [$Global(CurrentCanvas) find withtag duplicate]
foreach item $itemList {
set tags [$Global(CurrentCanvas) gettags $item]
selectItem $item $tags Add
$Global(CurrentCanvas) dtag duplicate
}
}
update idletasks
$Global(CurrentCanvas) configure -cursor ""
update idletasks
}
proc updateDemoLine { args } {
global Global
if {"$args" == "spline" } {
if {$Global(Smooth)} {
set Global(Smooth) 0
set Global(Spline) 0
set Global(Message) "Change to Smooth Lines"
} else {
set Global(Smooth) $Global(Spline)
if {$Global(Spline)} {
set Global(Message) "Change to Straight Lines"
}
}
}
.widthc itemconfigure line \
-fill "$Global(Outline)" -stipple "$Global(Stipple)" \
-arrow "$Global(Arrow)" -joinstyle "$Global(JoinStyle)" \
-width "$Global(Width)" -smooth "$Global(Smooth)"
}
proc colorRequestor {name colorslot redlist greenlist bluelist replace} {
global Global rede grne blue redv grnv bluv
set w ${name}
set Global($name) $replace
if {! $Global(Plugin) } {
eval toplevel $w $Global(PrivateCmap)
# wm transient $w .
wm protocol $w WM_DELETE_WINDOW {set dummy 1}
} else {
frame $w -borderwidth 0
}
set redv "0000"
set grnv "0000"
set bluv "0000"
frame $w.left -borderwidth 0 -highlightthickness 0
frame $w.right -borderwidth 0 -highlightthickness 0
frame $w.color -relief sunken -bd 2 -highlightthickness 0
frame $w.colortop -borderwidth 0 -highlightthickness 0
frame $w.colorbottom -borderwidth 0 -highlightthickness 0
set rede [createEntry $w red "hex" 4 -width 5 -textvariable redv]
set reds [createScale $w reds -to 65535 -length 2i -orient h \
-showvalue false]
set redcs [createComboScale $w redcs Red $reds $rede]
pack $redcs -in $w.left -side top -fill x -expand true
set grne [createEntry $w grn "hex" 4 -width 5 -textvariable grnv]
set grns [createScale $w grns -to 65535 -length 2i -orient h \
-showvalue false]
set grncs [createComboScale $w grncs Green $grns $grne]
pack $grncs -in $w.left -side top -fill x -expand true
set blue [createEntry $w blu "hex" 4 -width 5 -textvariable bluv]
set blus [createScale $w blus -to 65535 -length 2i -orient h \
-showvalue false]
set blucs [createComboScale $w blucs Blue $blus $blue]
pack $blucs -in $w.left -side top -fill x -expand true
set cancel [createButton $w cancel "" -text "Cancel"]
set ok [createButton $w ok 1 -text "Ok"]
$ok configure -command "set Global(NewColor) \[setColor {}\]
destroy .cr
if {\$Global(NewColor) != \"\"} {
set Global($colorslot) \$Global(NewColor)
set Global(\$Global(colortype)) \$Global(NewColor)
$Global(F_$Global(colortype)).f_\$Global(colortype) \
configure -bg \$Global(NewColor)
}
colorPaletteReq .colorpalette {$redlist} \
{$greenlist} {$bluelist} $replace
"
$cancel configure -command "set Global(NewColor) \"\"
destroy $w
colorPaletteReq .colorpalette {$redlist} \
{$greenlist} {$bluelist} $replace
"
bind $w <Control-Key-Escape> "set Global(NewColor) \"\"
destroy $w
colorPaletteReq .colorpalette {$redlist} \
{$greenlist} {$bluelist} $replace
"
frame $w.colorc -height 2i -width 2i -highlightthickness 0
raise $w.color
raise $w.colorc
pack $w.colorc -in $w.color -fill both -expand true
pack $w.color -in $w.right -padx 2m -pady 2m -fill both -expand true
pack $w.left $w.right -side left -in $w.colortop -fill both -expand true
pack $cancel $ok -side left -expand true -in $w.colorbottom \
-padx 2m -pady 2m
pack $w.colortop -side top -in $w -fill both -expand true
pack $w.colorbottom -side bottom -in $w
proc setColor {v} "
global rede grne blue
if { \"\$v\" != \"\" } {
set color \$v
scan \"\$v\" \{#%4x%4x%4x\} redv grnv bluv
set_red \$redv
set_grn \$grnv
set_blu \$bluv
} else {
set color \"#\[\$rede get\]\[\$grne get\]\[\$blue get\]\"
}
$w.colorc configure -bg \$color
return \$color
"
proc set_red { val } "
[info body set_red]
$reds set \$val
setColor {}
"
bind $rede <Key-Return> "+setColor {}"
proc set_grn { val } "
[info body set_grn]
$grns set \$val
setColor {}
"
bind $blue <Key-Return> "+setColor {}"
proc set_blu { val } "
[info body set_blu]
$blus set \$val
setColor {}
"
bind $blue <Key-Return> "+setColor {}"
setColor [$colorslot cget -bg]
if { $Global(Plugin) } {
pack $w -in $replace -fill both -expand true
}
}
proc clearRadioVariable {var} {
global Global
if {[info exists Global($var)] && [winfo exists $Global($var)]} {
set bd [$Global($var) cget -bd]
$Global($var) configure -relief $Global(ButtonRelief)
eval $Global($var) move all -$bd -$bd
}
set $var ""
}
proc setRadioButton { var value } {
global Global
if {[info exists Global(W_${value})]} {
set bd [$Global(W_${value}) cget -bd]
clearRadioVariable $var
$Global(W_${value}) configure -relief sunken
$Global(W_${value}) move all $bd $bd
set Global($var) $Global(W_${value})
}
set $var "$value"
}
proc createNormalButton {name width height cmds value args} {
global Global
eval canvas $name -width $width -height $height \
-relief $Global(ButtonRelief) $args
set saveit $Global(CurrentCanvas)
set Global(CurrentCanvas) $name
eval $cmds
originObject all
scaleObject all "" [winfo fpixels $name $width] \
[winfo fpixels $name $height]
set Global(CurrentCanvas) $saveit
bind $name <Button-1> "
if {\[%W find withtag disabled\] == \"\"} {
set bd \[%W cget -bd\]
%W configure -relief sunken
%W move all \$bd \$bd
update idletasks
}
"
bind $name <ButtonRelease-1> "
if {\[%W find withtag disabled\] == \"\"} {
set bd \[%W cget -bd\]
popupCanvasSet $value
%W move all -\$bd -\$bd
%W configure -relief $Global(ButtonRelief)
}
"
bind $name <Enter> "
if {\[%W find withtag disabled\] == \"\"} {
%W configure -bg $Global(ActiveBackground)
if {[info exists Global(Msg_$value)]} {
set Global(Message) \$Global(Msg_$value)
} else {
set Global(Message) $value
}
}
"
bind $name <Leave> {
if {[%W find withtag disabled] == ""} {
%W configure -bg $Global(Background)
set Global(Message) $Global(Cursor)
}
}
return $name
}
proc createRadioButton {name width height cmds var value args} {
global Global
eval canvas $name -width $width -height $height \
-relief $Global(ButtonRelief) $args
set saveit $Global(CurrentCanvas)
set Global(CurrentCanvas) $name
eval $cmds
originObject all
scaleObject all "" [winfo fpixels $name $width] \
[winfo fpixels $name $height]
set Global(CurrentCanvas) $saveit
bind $name <Button-1> "
if {\[%W find withtag disabled\] == \"\"} {
setRadioButton $var $value
if {\"$var\" == \"Global(Cursor)\"} {
popupCanvasSet $value
}
}
"
bind $name <Enter> "
if {\[%W find withtag disabled\] == \"\"} {
%W configure -bg $Global(ActiveBackground)
if {[info exists Global(Msg_$value)]} {
set Global(Message) \$Global(Msg_$value)
} else {
set Global(Message) $value
}
}
"
bind $name <Leave> {
if {[%W find withtag disabled] == ""} {
%W configure -bg $Global(Background)
set Global(Message) $Global(Cursor)
}
}
return $name
}
proc buttonReq { name var replace } {
global Global
if {$Global(ButtonOrient) == "left"} {
set suborient top
} else {
set suborient left
}
set w ${name}
if {[winfo exists $w]} {
if {!$Global(Plugin)} {
wm deiconify $w
raise $w
return
}
return
}
set Global($name) $replace
if { !$Global(Plugin) } {
eval toplevel $w
wm protocol $w WM_DELETE_WINDOW "wm withdraw $w"
} else {
frame $w -borderwidth 0
}
frame $w.f
set bframes "$w.f1 $w.f2 $w.f3 $w.f4 $w.f5 $w.f6 $w.f7 $w.f8 $w.f9"
set i 0
set bframe ""
foreach buttontype $var {
if {![expr $i % $Global(ButtonCount)]} {
if {$bframe != ""} {
pack $bframe -in $w.f -side $suborient
}
set bframe [lindex $bframes [expr $i / $Global(ButtonCount)]]
frame $bframe
}
incr i
set type [lindex $buttontype 0]
set buttonName [lindex $buttontype 1]
set buttonCanv [lindex $buttontype 2]
switch "$type" {
RadioButton {
createRadioButton $w.b_${buttonName} \
$Global(ButtonSize) $Global(ButtonSize) \
"$buttonCanv" Global(Cursor) \
$buttonName -bd 1 -highlightthickness 0
}
Button {
createNormalButton $w.b_${buttonName} \
$Global(ButtonSize) $Global(ButtonSize) \
"$buttonCanv" \
$buttonName -bd 1 -highlightthickness 0
}
JoinButton {
createRadioButton $w.b_${buttonName} \
$Global(ButtonSize) $Global(ButtonSize) \
"$buttonCanv" Global(JoinStyle) \
$buttonName -bd 1 -highlightthickness 0
}
ArrowButton {
createRadioButton $w.b_${buttonName} \
$Global(ButtonSize) $Global(ButtonSize) \
"$buttonCanv" Global(Arrow) \
$buttonName -bd 1 -highlightthickness 0
}
}
switch "$buttonName" {
Paste {
disablePaste
}
Rulers {
bind $w.b_Rulers <Double-Button-1> {
%W addtag disabled withtag all
$Global(CurrentCanvas) delete $Global(RulerX)
$Global(CurrentCanvas) delete $Global(RulerY)
}
bind $w.b_Rulers <ButtonRelease-1> {+
%W dtag disabled
}
}
}
set Global(W_${buttonName}) $w.b_${buttonName}
pack $w.b_${buttonName} -in $bframe -side $Global(ButtonOrient)
}
pack $bframe -in $w.f -side left
pack $w.f -in $w
if { $Global(Plugin) } {
pack $w -in $replace -fill both -expand true
update idletasks
}
}
proc colorPaletteReq { name redlist greenlist bluelist replace } {
global Global
# Setup
set w ${name}
if {[winfo exists $w]} {
if {$Global(Plugin)} {
destroy $w
} else {
wm deiconify $w
raise $w
return
}
}
set Global($name) $replace
if { !$Global(Plugin) } {
eval toplevel $w $Global(PrivateCmap)
wm protocol $w WM_DELETE_WINDOW "wm withdraw $w"
} else {
frame $w -borderwidth 0
}
frame $w.f
foreach red $redlist {
frame $w.f.rcol_${red}
foreach green $greenlist {
frame $w.f.grow_${red}${green}
foreach blue $bluelist {
if { [info exists Global($w.f.c${red}${green}${blue})] } {
frame $w.f.c${red}${green}${blue} \
-relief raised -height 2m -width 2m \
-highlightthickness 0 \
-bd 1 -bg $Global($w.f.c${red}${green}${blue})
} else {
frame $w.f.c${red}${green}${blue} \
-relief raised -height 2m -width 2m \
-highlightthickness 0 \
-bd 1 -bg "#${red}${green}${blue}"
}
pack $w.f.c${red}${green}${blue} -side left \
-in $w.f.grow_${red}${green} -fill both -expand true
bind $w.f.c${red}${green}${blue} <1> {
%W configure -relief sunken
}
bind $w.f.c${red}${green}${blue} <Double-Button-1> "
set Global(NewColor) {None}
colorRequestor .cr %W {$redlist} {$greenlist} {$bluelist} \
$replace
destroy $w
"
bind $w.f.c${red}${green}${blue} <ButtonRelease-1> {
%W configure -relief raised
set Global($Global(colortype)) [%W cget -bg]
$Global(F_$Global(colortype)).f_$Global(colortype) configure \
-bg $Global($Global(colortype))
}
}
pack $w.f.grow_${red}${green} -side top \
-in $w.f.rcol_${red} -fill both -expand true
}
pack $w.f.rcol_${red} -side left -in $w.f -fill both \
-expand true
}
if {!$Global(Plugin)} {
bind $w <Configure> "
set g \[wm geometry $w\]
scan \"\$g\" {%%dx%%d%%d%%d} Global(ColorWidth) Global(ColorHeight)\
Global(ColorPosX) Global(ColorPosY)
"
}
frame $w.f.c_none -width 4m -relief raised -bd 1 \
-highlightthickness 0
pack $w.f.c_none -in $w.f -side left -fill y
bind $w.f.c_none <1> {
%W configure -relief sunken
}
bind $w.f.c_none <ButtonRelease-1> {
%W configure -relief raised
set Global($Global(colortype)) ""
$Global(F_$Global(colortype)).f_$Global(colortype) configure \
-bg [lindex [$Global(F_$Global(colortype)).f_$Global(colortype) configure -bg] 3]
}
bind $w.f <Enter> {
set Global(MessageSave) $Global(Message)
set Global(Message) "$Global(colortype) Color"
}
bind $w.f <Leave> {
set Global(Message) $Global(MessageSave)
}
pack $w.f -in $w -expand true -fill both
# Return
if { $Global(Plugin) } {
pack $w -in $replace -fill both -expand true
update idletasks
} else {
if {[info exists Global(ColorPosX)]} {
wm geometry $w \
$Global(ColorWidth)x$Global(ColorHeight)+$Global(ColorPosX)+$Global(ColorPosY)
} else {
wm geometry $w $Global(ColorWidth)x$Global(ColorHeight)
}
}
}
proc newSlide {} {
global Global
if {![winfo exists .slide]} {
. configure -cursor watch
update idletasks
set Global(CanvasSave) $Global(CurrentPageId)
toplevel .slide -height $Global(ScreenH) -width $Global(ScreenW) \
-bg $Global(SlideBG) -borderwidth 0 -relief flat -highlightthickness 0
wm withdraw .slide
wm overrideredirect .slide true
.slide configure -cursor watch
update idletasks
bind .slide <Double-Button-3> {
grab release [grab current]
destroy .slide
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) $Global(CanvasSave)
}
bind .slide <Control-Button-1> {
grab release [grab current]
destroy .slide
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) $Global(CanvasSave)
}
bind .slide <Key-Escape> {
grab release [grab current]
destroy .slide
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) $Global(CanvasSave)
}
bind .slide <Button-1> {
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) [expr $Global(CurrentPageId) + 1]
if {[winfo exists .can.c$Global(CurrentPageId)]} {
newSlide
wm deiconify .slide
raise .slide
raise .slide.c$Global(CurrentPageId)
focus .slide
grab .slide
} else {
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
}
}
bind .slide <Key-Next> {
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) [expr $Global(CurrentPageId) + 1]
if {! [winfo exists .can.c$Global(CurrentPageId)]} {
if {$Global(Circulate)} {
set Global(CurrentPageId) 1
} else {
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
break
}
}
newSlide
wm deiconify .slide
raise .slide
raise .slide.c$Global(CurrentPageId)
focus .slide
grab .slide
}
bind .slide <Button-3> {
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
if {[winfo exists .can.c$Global(CurrentPageId)]} {
newSlide
wm deiconify .slide
raise .slide
raise .slide.c$Global(CurrentPageId)
focus .slide
grab .slide
} else {
set Global(CurrentPageId) [expr $Global(CurrentPageId) + 1]
}
}
bind .slide <Key-Prior> {
set Global(CurrentCanvas) .can.c$Global(CanvasSave)
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
if {[winfo exists .can.c$Global(CurrentPageId)]} {
newSlide
wm deiconify .slide
raise .slide
raise .slide.c$Global(CurrentPageId)
focus .slide
grab .slide
} else {
set Global(CurrentPageId) [expr $Global(CurrentPageId) + 1]
}
}
} else {
.slide configure -cursor watch
update idletasks
}
if {![winfo exists .slide.c$Global(CurrentPageId)]} {
canvas .slide.c$Global(CurrentPageId) -bg $Global(SlideBG) \
-height $Global(ScreenH) \
-width $Global(ScreenW) -highlightthickness 0 -bd 0
set Global(CurrentCanvas) .can.c$Global(CurrentPageId)
cutCopySelected Copy all 0
set Global(CurrentCanvas) .slide.c$Global(CurrentPageId)
pasteCutCopy 0 0 normal Copy 0
pack forget [pack slaves .slide]
pack .slide.c$Global(CurrentPageId) -in .slide \
-expand true -fill both
scaleObject all "" $Global(ScreenW) $Global(ScreenH)
scaleObject Imp_Background variable $Global(ScreenW)+3 $Global(ScreenH)+3
update idletasks
.slide configure -cursor ""
. configure -cursor ""
update idletasks
} else {
pack forget [pack slaves .slide]
.slide.c$Global(CurrentPageId) configure -bg $Global(SlideBG)
pack .slide.c$Global(CurrentPageId) -in .slide \
-expand true -fill both
update idletasks
.slide configure -cursor ""
. configure -cursor ""
update idletasks
}
wm deiconify .slide
raise .slide
raise .slide.c$Global(CurrentPageId)
focus .slide
grab .slide
}
proc newCanvas { cf name } {
global Global
if {[winfo exists $Global(CurrentCanvas)]} {
pack forget $Global(CurrentCanvas)
}
set Global(CurrentCanvas) "$cf.$name"
if {![winfo exists $Global(CurrentCanvas)]} {
canvas $Global(CurrentCanvas) -scrollregion \
"0i 0i $Global(PageWidth) $Global(PageHeight)" \
-width $Global(PageVisX) -height $Global(PageVisY) \
-bg $Global(SlideBG) -xscrollcommand "$cf.scrollx set" \
-yscrollcommand "$cf.scrolly set" -bd 0
canvas $Global(CurrentCanvas).rulerx \
-width $Global(PageWidth) -height .25i \
-relief raised -bd 1 -highlightthickness 0
canvas $Global(CurrentCanvas).rulery \
-width .25i -height $Global(PageHeight) \
-relief raised -bd 1 -highlightthickness 0
doRuler $Global(CurrentCanvas).rulerx $Global(PageWidth) .25i 0 0 1 h \
{.0625 .125 .25 .5} ""
doRuler $Global(CurrentCanvas).rulery $Global(PageHeight) .25i 0 0 1 v \
{.0625 .125 .25 .5} ""
set Global(RulerX) [$Global(CurrentCanvas) create window 0i .25i \
-anchor sw -window $Global(CurrentCanvas).rulerx -tags rulerx]
set Global(RulerY) [$Global(CurrentCanvas) create window 0i 0i \
-anchor nw -window $Global(CurrentCanvas).rulery -tags rulery]
$Global(CurrentCanvas) delete $Global(RulerX)
$Global(CurrentCanvas) delete $Global(RulerY)
bind $Global(CurrentCanvas).rulery <1> {
set pc [winfo parent %W]
set rylastx [$pc canvasx %X]
set rylasty [$pc canvasy %Y]
}
bind $Global(CurrentCanvas).rulerx <1> {
set pc [winfo parent %W]
set rxlastx [$pc canvasx %X]
set rxlasty [$pc canvasy %Y]
}
bind $Global(CurrentCanvas).rulerx <Motion> {
if {$Global(Grid)} {
set x [%W canvasx %x $Global(GridX)]
} else {
set x [%W canvasx %x 1]
}
set Global(Xpos) \
"[format {%%3.3f} [expr $x / $Global(CoordFactorX)]]$Global(UnitX)"
$Global(CurrentCanvas).rulerx coords h \
$x [$Global(CurrentCanvas) cget -height] $x 0
}
bind $Global(CurrentCanvas).rulery <Motion> {
if {$Global(Grid)} {
set y [%W canvasy %y $Global(GridY)]
} else {
set y [%W canvasy %y 1]
}
set Global(Ypos) \
"[format {%%3.3f} [expr $y / $Global(CoordFactorY)]]$Global(UnitY)"
$Global(CurrentCanvas).rulery coords v \
0 $y [$Global(CurrentCanvas) cget -width] $y
}
bind $Global(CurrentCanvas).rulery <B1-Motion> {
set pc [winfo parent %W]
set x [$pc canvasx %X]
$pc move rulery [expr $x - $rylastx] 0
set rylastx $x
}
bind $Global(CurrentCanvas).rulerx <B1-Motion> {
set pc [winfo parent %W]
set y [$pc canvasy %Y]
$pc move rulerx 0 [expr $y - $rxlasty]
set rxlasty $y
}
bind $Global(CurrentCanvas) <Key-Next> {
nextPage
}
bind $Global(CurrentCanvas) <Key-Prior> {
prevPage
}
bind $Global(CurrentCanvas) <Control-Key-v> {
pasteCutCopy $Global(LastX) $Global(LastY) absolute Cut 1
}
bind $Global(CurrentCanvas) <Key-Delete> {
set Global(Message) Cut
cutCopySelected Cut Imp_Selected 1
setCursor Select
set Global(Message) Select
enableSelectionButtons
}
if {!$Global(Plugin)} {
bind $Global(CurrentCanvas) <Alt-Key-s> {
newSlide
}
}
bind $Global(CurrentCanvas) <ButtonRelease-1> {
set boxselector [%W coords selector]
set Global(AnchorChosen) 0
if {"$boxselector" != ""} {
switch $Global(Cursor) {
Select {
%W delete selector
selectBoundedItems $boxselector Add
createHandles
}
Oval {
%W delete selector
createOval $boxselector
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
Rounded_Rectangle {
%W delete selector
createRRectangle $boxselector 1
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
Rectangle {
%W delete selector
createRRectangle $boxselector 0
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
Text {
%W delete selector
createText $boxselector
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
Rotate {
%W delete selector
rotateSelected
%W raise selectorbox
set Global(Sub-Cursor) ""
}
}
} else {
switch $Global(Cursor) {
Scale {
setCursor Select
set Global(Message) Select
enableSelectionButtons
%W configure -cursor ""
}
Draw {
%W delete Global(curline)
if {[llength $Global(curline)] > 3} {
eval %W create line $Global(curline) \
-fill \"$Global(Outline)\" \
-stipple \"$Global(Stipple)\" \
-width \"$Global(Width)\" \
-smooth \"$Global(Smooth)\" \
-arrow \"$Global(Arrow)\" \
-joinstyle \"$Global(JoinStyle)\"
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
}
}
}
}
bind $Global(CurrentCanvas) <Button-3> {
switch $Global(Cursor) {
Polygon -
Line {
switch "$Global(Sub-Cursor)" {
Line-Active {
set Global(Sub-Cursor) ""
%W delete Global(curline)
%W delete selector
createLine $Global(curline)
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
Polygon-Active {
set Global(Sub-Cursor) ""
%W delete Global(curline)
%W delete selector
createPolygon $Global(curline)
if {$Global(MenuSelect)} {
setCursor Select
set Global(Message) Select
enableSelectionButtons
set Global(MenuSelect) 0
}
}
}
}
}
}
bind $Global(CurrentCanvas) <Control-Button-1> {
focus %W
markSpot %x %y
switch $Global(Cursor) {
Select {
set item [findItemUnderCursor]
set tags [%W gettags $item]
. configure -cursor watch
update idletasks
selectItem $item $tags Add
createHandles
update idletasks
. configure -cursor ""
update idletasks
}
}
break
}
bind $Global(CurrentCanvas) <Double-Button-1> {
focus %W
markSpot %x %y
switch $Global(Cursor) {
Select {
set items [%W find withtag Imp_selected]
if {"$items" != ""} {
propRaise .prop $items
}
}
}
}
bind $Global(CurrentCanvas) <Button-1> {
focus %W
markSpot %x %y
switch $Global(Cursor) {
Select {
set item [findItemUnderCursor]
set tags [%W gettags $item]
. configure -cursor watch
update idletasks
selectItem $item $tags New
createHandles
update idletasks
. configure -cursor ""
update idletasks
}
Draw {
set Global(curline) ""
lappend Global(curline) [eval expr int($Global(LastX))] \
[eval expr int($Global(LastY))]
}
Line {
switch $Global(Sub-Cursor) {
Line-Active {
lappend Global(curline) $Global(LastX) \
$Global(LastY)
set l [llength $Global(curline)]
if {$l > 2} {
eval %W create line \
[lrange $Global(curline) \
[eval expr $l - 4] end] \
-tags Global(curline)
}
}
default {
set Global(curline) ""
lappend Global(curline) \
[eval expr int($Global(LastX))] \
[eval expr int($Global(LastY))]
set Global(Sub-Cursor) Line-Active
}
}
}
Oval {
}
Rectangle {
}
Rounded_Rectangle {
}
Text {
}
Polygon {
switch $Global(Sub-Cursor) {
Polygon-Active {
lappend Global(curline) \
[eval expr int($Global(LastX))] \
[eval expr int($Global(LastY))]
set l [llength $Global(curline)]
if {$l > 2} {
eval %W create line \
[lrange $Global(curline) \
[eval expr $l - 4] end] \
-tags Global(curline)
}
}
default {
set Global(curline) ""
lappend Global(curline) \
[eval expr int($Global(LastX))] \
[eval expr int($Global(LastY))]
set Global(Sub-Cursor) Polygon-Active
}
}
}
Rotate {
set Global(Sub-Cursor) Rotate-Active
}
Paste {
%W configure -cursor watch
pasteCutCopy $Global(LastX) $Global(LastY) absolute Cut 1
update idletasks
createHandles
cutCopySelected Copy Imp_Selected 1
set Global(Cut) $Global(Copy)
%W configure -cursor ""
}
}
}
bind $Global(CurrentCanvas) <Motion> {
raise %W
focus %W
if {$Global(Grid)} {
set x [%W canvasx %x $Global(GridX)]
} else {
set x [%W canvasx %x 1]
}
if {$Global(Grid)} {
set y [%W canvasy %y $Global(GridY)]
} else {
set y [%W canvasy %y 1]
}
set Global(Xpos) \
"[format {%%3.3f} [expr $x / $Global(CoordFactorX)]]$Global(UnitX)"
set Global(Ypos) \
"[format {%%3.3f} [expr $y / $Global(CoordFactorY)]]$Global(UnitY)"
$Global(CurrentCanvas).rulerx coords h \
$x [$Global(CurrentCanvas) cget -height] $x 0
$Global(CurrentCanvas).rulery coords v \
0 $y [$Global(CurrentCanvas) cget -width] $y
switch $Global(Cursor) {
Polygon -
Line {
switch $Global(Sub-Cursor) {
Polygon-Active -
Line-Active {
%W delete selector
%W create line $Global(LastX) $Global(LastY) $x $y \
-tags selector
}
}
}
}
}
bind $Global(CurrentCanvas) <Control-B1-Motion> {
raise %W
focus %W
if {$Global(Grid)} {
set x [%W canvasx %x $Global(GridX)]
} else {
set x [%W canvasx %x 1]
}
if {$Global(Grid)} {
set y [%W canvasy %y $Global(GridY)]
} else {
set y [%W canvasy %y 1]
}
set Global(Xpos) \
"[format {%%3.3f} [expr $x / $Global(CoordFactorX)]]$Global(UnitX)"
set Global(Ypos) \
"[format {%%3.3f} [expr $y / $Global(CoordFactorY)]]$Global(UnitY)"
$Global(CurrentCanvas).rulerx coords h \
$x [$Global(CurrentCanvas) cget -height] $x 0
$Global(CurrentCanvas).rulery coords v \
0 $y [$Global(CurrentCanvas) cget -width] $y
switch $Global(Cursor) {
Scale {
set cursor [lindex [%W configure -cursor] 4]
scaleSelected $cursor $x $y %X %Y
}
Select {
dragBoxOrMove $item $tags $x $y %X %Y
}
}
}
bind $Global(CurrentCanvas) <B1-Motion> {
focus %W
if {$Global(Grid)} {
set x [%W canvasx %x $Global(GridX)]
} else {
set x [%W canvasx %x 1]
}
if {$Global(Grid)} {
set y [%W canvasy %y $Global(GridY)]
} else {
set y [%W canvasy %y 1]
}
set Global(Xpos) \
"[format {%%3.3f} [expr $x / $Global(CoordFactorX)]]$Global(UnitX)"
set Global(Ypos) \
"[format {%%3.3f} [expr $y / $Global(CoordFactorY)]]$Global(UnitY)"
$Global(CurrentCanvas).rulerx coords h \
$x [$Global(CurrentCanvas) cget -height] $x 0
$Global(CurrentCanvas).rulery coords v \
0 $y [$Global(CurrentCanvas) cget -width] $y
switch $Global(Cursor) {
Scale {
set cursor [lindex [%W configure -cursor] 4]
scaleSelected $cursor $x $y %X %Y
}
Select {
dragBoxOrMove $item $tags $x $y %X %Y
}
Draw {
%W create line $Global(LastX) $Global(LastY) $x $y \
-tags Global(curline)
repositionWindow %X %Y
lappend Global(curline) $x $y
set Global(LastX) $x
set Global(LastY) $y
}
Oval {
%W delete selector
%W create oval $Global(LastX) $Global(LastY) $x $y \
-tags selector
repositionWindow %X %Y
}
Rounded_Rectangle {
%W delete selector
%W create rectangle $Global(LastX) $Global(LastY) $x $y \
-tags selector
repositionWindow %X %Y
}
Rectangle {
%W delete selector
%W create rectangle $Global(LastX) $Global(LastY) $x $y \
-tags selector
repositionWindow %X %Y
}
Text {
%W delete selector
%W create rectangle $Global(LastX) $Global(LastY) $x $y \
-tags selector
repositionWindow %X %Y
}
Rotate -
Polygon -
Line {
switch $Global(Sub-Cursor) {
Polygon-Active -
Line-Active {
%W delete selector
%W create line $Global(LastX) $Global(LastY) $x $y \
-tags selector
repositionWindow %X %Y
}
Rotate-Active {
%W delete selector
%W create line $Global(LastX) $Global(LastY) $x $y \
-arrow last -tags selector
set xnorm [eval expr $x - $Global(LastX)]
set ynorm [eval expr $y - $Global(LastY)]
set rho [eval expr sqrt(pow(($x - $Global(LastX)),2) +\
pow(($y - $Global(LastY)),2))]
if {$rho != 0} {
set angle [eval expr asin($ynorm/$rho)]
set degrees [eval expr \
$angle*180.0/3.14159265358979323846]
if {$xnorm >= 0} {
if {$ynorm >= 0} {
set degrees [eval expr abs($degrees)]
} else {
set degrees \
[eval expr 360.0 - abs($degrees)]
}
} else {
if {$ynorm >= 0} {
set degrees \
[eval expr 180.0 - abs($degrees)]
} else {
set degrees \
[eval expr 180.0 + abs($degrees)]
}
}
%W create arc [eval expr $Global(LastX) - 20] \
[eval expr $Global(LastY) - 20] \
[eval expr $Global(LastX) + 20] \
[eval expr $Global(LastY) + 20] \
-start 0 -extent [eval expr 0 - $degrees] \
-stipple gray50 -outline black -fill white \
-tags selector
set coords [%W coords selectorbox]
%W delete selectorbox
eval %W create polygon \
[eval RotateF [eval expr $degrees - \
$Global(LastAngle)] \
$Global(LastX) $Global(LastY) $coords] \
-tags selectorbox \
-stipple gray25 -outline \"\" -fill black
set Global(LastAngle) $degrees
set Global(Message) $degrees
}
}
}
}
}
}
}
pack $Global(CurrentCanvas) -in $cf.top -side left -expand true \
-fill both
changePageProp $Global(PageWidth) $Global(PageHeight) $Global(Landscape)
return $Global(CurrentCanvas)
}
proc nextPage {} {
global Global
set Global(CurrentPageId) [expr $Global(CurrentPageId) + 1]
newCanvas .can c$Global(CurrentPageId)
update idletasks
}
proc prevPage {} {
global Global
if {$Global(CurrentPageId) > 1} {
set Global(CurrentPageId) [expr $Global(CurrentPageId) - 1]
newCanvas .can c$Global(CurrentPageId)
update idletasks
}
}
proc createCanvasF { name } {
global Global
frame $name -bd 2 -relief raised
regexp {.(.*)} "$name" match tname
frame $name.top -bd 0 -highlightthickness 0
frame $name.bottom -bd 0 -highlightthickness 0
frame $name.corner -height 20 -width 20 -bd 2
scrollbar $name.scrolly -bd 2 -width 15 \
-command {eval $Global(CurrentCanvas) yview}
scrollbar $name.scrollx -bd 2 -width 15 -orient horiz \
-command {eval $Global(CurrentCanvas) xview}
frame .right
if {$Global(Plugin)} {
frame .radios -relief raised -bd 2
}
frame .colors -relief raised -bd 2
frame .colorsp
frame .colorssel
frame .colorseltop
frame .colorselbottom
frame .f_Fill -width 20 -height 20 -bd 1 -relief sunken
frame .f_Outline -bg black -width 20 -height 20 -bd 1 -relief sunken
scale .lw -from 1.0 -to 100.0 -bd 1 -orient h \
-showvalue false -variable Global(Width)
bind .lw <Enter> {
set Global(MessageSave) $Global(Message)
set Global(Message) "Line Width"
}
bind .lw <Leave> {
set Global(Message) $Global(MessageSave)
}
label .llw -width 3 -textvariable Global(Width)
newCanvas .can c$Global(CurrentPageId)
button .nextpage -text "Next" -pady 1 -command "nextPage"
button .prevpage -text "Prev" -pady 1 -command "prevPage"
radiobutton .s_Color -value Fill -text "Fill" \
-variable Global(colortype) \
-anchor sw -indicatoron false -selectcolor ""
radiobutton .s_Outline -value Outline -text "Outline" \
-variable Global(colortype) \
-anchor sw -indicatoron false -selectcolor ""
if {!$Global(Plugin)} {
bind .s_Color <Double-Button-1> {
colorPaletteReq .colorpalette \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
.colorsp
}
bind .s_Outline <Double-Button-1> {
colorPaletteReq .colorpalette \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
.colorsp
}
}
label .xpos -textvariable Global(Xpos) -height 1 -width 10
label .ypos -textvariable Global(Ypos) -height 1 -width 10
label .msg -relief flat -textvariable Global(Message) -height 1 -width 20
pack .f_Fill .s_Color -side left -in .colorseltop
pack .f_Outline .s_Outline -side left -in .colorselbottom
pack .colorseltop .colorselbottom -side left -anchor sw -in .colorssel \
-fill x
pack .colorssel -in .colors -side left
pack .xpos .ypos -in .colors -side left
pack .msg -in .colors -side right -fill x -expand true
colorPaletteReq .colorpalette \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
{0000 3300 6600 9900 CC00 FF00} \
.colorsp
if {!$Global(Plugin)} {
wm withdraw .colorpalette
}
frame .radiosr
frame .rotatef
entry .rrotatee -width 6 -textvariable Global(LastAngle) -relief flat
# label .copyright -text "ImPress .03alpha, Copyright © 1996,1997,1998 Christopher Jay Cox, All Rights Reserved." -relief raised
buttonReq .buttons $Global(Buttons) .radiosr
frame .width -relief raised -bd 1
canvas .widthc -relief flat -height 8m -width 2.25i
.widthc create text 2 2 -anchor nw -text "Line Width"
.widthc create line 1i .14i 1.5i .14i 1.5i .21i 2i .21i \
-tags line \
-fill "$Global(Outline)" -stipple "$Global(Stipple)" \
-arrow "$Global(Arrow)" -joinstyle "$Global(JoinStyle)" \
-width "$Global(Width)"
frame .space -width .25i
frame .space2 -width .25i
frame .textframe -bd 1 -relief raised
frame .textmid
text .text -exportselection true -width 20 -height 10 -wrap word \
-yscrollcommand ".tscrolly set"
scrollbar .tscrolly -bd 2 -width 15 -command ".text yview"
button .tclose -text "Close" -padx 2m -pady 2m \
-command "pack forget .textframe;pack $name -fill both -expand true"
button .tcopy -text "Copy" -padx 2m -pady 2m \
-command ".text tag add sel 1.0 end"
pack .text -in .textmid -side left -anchor sw -fill both -expand true
pack .tscrolly -in .textmid -side right -fill y -anchor se
pack .textmid -in .textframe -side top -anchor sw -fill both -expand true
pack .tcopy .tclose -padx 1m -pady 1m -in .textframe -side left
pack $name.scrolly -in $name.top -anchor se -side right -fill y
pack .nextpage .prevpage -anchor sw -side left -in $name.bottom
pack $name.scrollx -anchor se -in $name.bottom -side left -expand true \
-fill x
pack $name.corner -anchor ne -in $name.bottom -side right
# pack .copyright -anchor sw -fill x
pack .lw .llw -in .colors -side left
pack .colors -fill x -in $name -side top
pack $name.top -side top -in $name -expand true -fill both
pack $name.bottom -anchor sw -in $name -side top -fill x
if {$Global(Plugin)} {
pack .radiosr -side left -in .radios -anchor sw
pack .colorsp -side left -in .radios -anchor sw -fill both -expand true
pack .radios -anchor sw -fill x
}
pack $name -expand true -fill both
changePageProp $Global(PageWidth) $Global(PageHeight) $Global(Landscape)
focus $Global(CurrentCanvas)
return $name.c
}
proc doProperties { c item } {
set type [$c type $item]
switch "$type" {
line {
}
}
}
proc getProperties { c item type nogroups} {
if { "$item" != "" } {
set gprops ""
foreach prop [$c itemconfigure $item] {
set gpropname [lindex $prop 0]
set gpropval [lindex $prop 4]
if {$nogroups && $gpropname == "-tags"} {
set ntags ""
foreach tag $gpropval {
if {![string match "Group*" $tag]} {
lappend ntags $tag
}
}
set gpropval $ntags
}
if {"$type" == "Esc"} {
lappend gprops $gpropname "{$gpropval}"
} else {
lappend gprops $gpropname $gpropval
}
}
return $gprops
}
}
proc getGroupItems { items } {
global Group Global
set l ""
foreach item $items {
if {[info exists Group($Global(CurrentCanvas),$item)]} {
set l [concat $l [$Global(CurrentCanvas) find withtag \
[lindex $Group($Global(CurrentCanvas),$item) 0]]]
}
}
return [lsort -integer [concat $items $l]]
}
proc createOval {bb} {
global Global
set r1 [expr ([lindex $bb 2] - [lindex $bb 0])/2.0]
set r2 [expr ([lindex $bb 3] - [lindex $bb 1])/2.0]
set xc [expr [lindex $bb 0] + $r1]
set yc [expr [lindex $bb 1] + $r2]
for {set r 0} {$r < 360} {incr r 10} {
set sr [expr sin($r*3.14159265358979323846/180.0)]
set cr [expr cos($r*3.14159265358979323846/180.0)]
lappend shape [expr $xc + $r1 * $cr] [expr $yc + $r2 * $sr]
}
set i [eval $Global(CurrentCanvas) create polygon $shape \
-tags oval -smooth 1 -fill \"$Global(Fill)\" \
-outline \"$Global(Outline)\" -stipple \"$Global(Stipple)\" \
-width \"$Global(Width)\"]
return $i
}
proc createEditText {c textitem} {
if {"$textitem" != ""} {
}
}
proc createText {boxselector} {
global Global
textRaise .textIn
set x [lindex $boxselector 0]
set y [lindex $boxselector 3]
set Global(TextWidth) [expr [lindex $boxselector 2] - $x]
if {$Global(Outline) == ""} {
set fill ""
} else {
set fill "-fill {$Global(Outline)}"
}
set Global(Text) [eval \$Global(CurrentCanvas) create text $x $y \
-anchor sw -justify left \
-font \"\$Global(Font)\" \
$fill \
-stipple \"\$Global(Stipple)\" -width \"\$Global(TextWidth)\" \
-text \" \" -tags Imp_Text]
}
proc createRRectangle {boxselector smooth} {
global Global
set bb [bboxToCorners $boxselector]
set xpix [winfo pixels . .25i]
set ypix $xpix
set x1 [lindex $bb 0]
set y1 [lindex $bb 1]
set x2 [lindex $bb 2]
set y2 [lindex $bb 3]
set x3 [lindex $bb 4]
set y3 [lindex $bb 5]
set x4 [lindex $bb 6]
set y4 [lindex $bb 7]
if {[expr $x2 - $x1] < [expr 2 * $xpix]} {
set xpix [expr ($x2 - $x1) * .4]
}
if {[expr $y3 - $y1] < [expr 2 * $ypix]} {
set ypix [expr ($y3 - $y1) * .4]
}
if {$xpix > $ypix} {
set xpix $ypix
} else {
set ypix $xpix
}
lappend nb $x1 $y1 [expr $x1 + $xpix] $y1 [expr $x1 + $xpix] $y1 \
[expr $x2 - $xpix] $y2 [expr $x2 - $xpix] $y2 $x2 $y2 \
$x2 [expr $y2 + $ypix] $x2 [expr $y2 + $ypix] \
$x3 [expr $y3 - $ypix] $x3 [expr $y3 - $ypix] \
$x3 $y3 [expr $x3 - $xpix] $y3 [expr $x3 - $xpix] $y3 \
[expr $x4 + $xpix] $y4 [expr $x4 + $xpix] $y4 $x4 $y4 \
$x4 [expr $y4 - $ypix] $x4 [expr $y4 - $ypix] \
$x1 [expr $y1 + $ypix] $x1 [expr $y1 + $ypix]
eval $Global(CurrentCanvas) create polygon $nb \
-smooth $smooth -fill \"$Global(Fill)\" -outline \"$Global(Outline)\" \
-stipple \"$Global(Stipple)\" -width \"$Global(Width)\"
}
proc createRectangle {boxselector} {
global Global
eval $Global(CurrentCanvas) create polygon [bboxToCorners $boxselector] \
-fill \"$Global(Fill)\" -outline \"$Global(Outline)\" \
-stipple \"$Global(Stipple)\" -width \"$Global(Width)\"
}
proc createLine {coords} {
global Global
if {[llength $coords] > 2} {
return [eval $Global(CurrentCanvas) create line $coords \
-fill \"$Global(Outline)\" -stipple \"$Global(Stipple)\" \
-arrow \"$Global(Arrow)\" -joinstyle \"$Global(JoinStyle)\" \
-width \"$Global(Width)\" -smooth \"$Global(Smooth)\"]
}
}
proc createSelection {} {
global Global(selectnum)
#
# Select if something tagged within box.
#
$Global(CurrentCanvas) dtag disabled Imp_selected
$Global(CurrentCanvas) dtag disabled Imp_selected${Global(selectnum)}
for {set i 0} {1} {incr i} {
set bb [$Global(CurrentCanvas) bbox Imp_selected${i}]
if {"$bb" == ""} {
break
}
eval $Global(CurrentCanvas) create polygon \
[bboxToCorners "[$Global(CurrentCanvas) bbox Imp_selected${i}]"] \
-tags {"selectorbox"} \
-stipple gray25 -outline {""} -fill black
}
}
proc createPolygon {coords} {
global Global
if {[llength $coords] > 5} {
return [eval $Global(CurrentCanvas) create polygon $coords \
-fill \"$Global(Fill)\" -outline \"$Global(Outline)\" \
-stipple \"$Global(Stipple)\" \
-smooth \"$Global(Smooth)\" \
-width \"$Global(Width)\"]
}
}
proc createdBoundedSelection {boxselector} {
global Global(selectnum)
$Global(CurrentCanvas) configure -cursor watch
update idletasks
#
# If a boxselector is present, find everything it encompasses.
#
set bb [$Global(CurrentCanvas) bbox $boxselector]
$Global(CurrentCanvas) delete selector
set itemList [eval $Global(CurrentCanvas) find enclosed $bb]
$Global(CurrentCanvas) dtag selector
set itemList [getGroupItems $itemList]
foreach item $itemList {
$Global(CurrentCanvas) addtag Imp_selected withtag $item
$Global(CurrentCanvas) addtag Imp_selected${Global(selectnum)} withtag $item
}
createSelection
incr Global(selectnum)
update idletasks
. configure -cursor ""
update idletasks
}
proc readFile {c name} {
global Global
set f [open $name r]
gets $f line
gets $f line
gets $f line
gets $f line
set art [read $f]
eval $art
}
proc getScale {name width height} {
global Global
set bb [eval $Global(CurrentCanvas) bbox $name]
set x [expr [lindex $bb 2] - [lindex $bb 0]]
set y [expr [lindex $bb 3] - [lindex $bb 1]]
if {$x > $y} {
set scale [expr $width / $x]
} else {
set scale [expr $height / $y]
}
return $scale
}
proc scaleObject {name ratio width height} {
global Global
set bb [eval $Global(CurrentCanvas) bbox $name]
if {"$bb" != ""} {
set x [lindex $bb 2]
set y [lindex $bb 3]
if {$ratio == "variable"} {
set scalex [expr ($width + 0.0) / $x]
set scaley [expr ($height + 0.0) / $y]
if {$scalex > $scaley} {
set scale $scaley
} else {
set scale $scalex
}
} elseif {$ratio != ""} {
set scalex $ratio
set scaley $ratio
set scale $ratio
} else {
set scalex [expr ($width + 0.0) / $x]
set scaley [expr ($height + 0.0) / $y]
if {$scalex > $scaley} {
set scalex $scaley
set scale $scaley
} else {
set scaley $scalex
set scale $scalex
}
}
$Global(CurrentCanvas) scale $name 0 0 $scalex $scaley
foreach i [$Global(CurrentCanvas) find withtag all] {
set type [$Global(CurrentCanvas) type $i]
if {"$type" != "text"} {
continue
}
if {$Global(FontScale)} {
set fn [$Global(CurrentCanvas) itemcget $i -font]
regexp \
{([-][^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-)([^-]*)(-.*)}\
$fn dummy d1 size d2;
if {"$dummy" != ""} {
set nsize [expr round($size * $scale)]
if {$nsize < 20} {
set nsize 20
}
$Global(CurrentCanvas) itemconfigure $i \
-font ${d1}${nsize}${d2}
set fnn [$Global(CurrentCanvas) itemcget $i -font]
regexp \
{([-][^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-)([^-]*)(-.*)}\
$fnn dummy d1 nsize d2;
if { ($scale < 1 && $nsize < $size ) || \
($scale > 1 && $nsize > $size) } {
$Global(CurrentCanvas) itemconfigure $i \
-width [expr [$Global(CurrentCanvas) itemcget $i \
-width] * $scale]
} else {
$Global(CurrentCanvas) itemconfigure $i \
-font $fn
}
}
} else {
$Global(CurrentCanvas) itemconfigure $i \
-width [expr [$Global(CurrentCanvas) itemcget $i -width] \
}
}
}
}
proc getOrigin { name } {
global Global
set bb [eval $Global(CurrentCanvas) bbox $name]
set x [lindex $bb 0]
set y [lindex $bb 1]
if {$x > 0} {
set nx -$x
} else {
set nx [expr abs($x)]
}
if {$y > 0} {
set ny -$y
} else {
set ny [expr abs($y)]
}
return "$nx $ny"
}
proc moveObject { name x y } {
global Global
$Global(CurrentCanvas) move $name $x $y
}
proc flip { name type } {
global Global
set bb [$Global(CurrentCanvas) bbox $name]
if {"$bb" != ""} {
. configure -cursor watch
update idletasks
$Global(CurrentCanvas) delete handles
if {"$type" == "v"} {
set d [expr ([lindex $bb 2] - [lindex $bb 0])/2.0 + [lindex $bb 0]]
} else {
set d [expr ([lindex $bb 3] - [lindex $bb 1])/2.0 + [lindex $bb 1]]
}
set items [$Global(CurrentCanvas) find withtag $name]
foreach item $items {
set coords [$Global(CurrentCanvas) coords $item]
if {"$type" == "v"} {
set i 1
} else {
set i 0
}
set newcoords ""
foreach coord $coords {
if {$i} {
lappend newcoords [expr $coord - (2.0 * ($coord - $d))]
set i 0
} else {
lappend newcoords $coord
set i 1
}
}
eval $Global(CurrentCanvas) coords $item $newcoords
}
createHandles
update idletasks
. configure -cursor ""
update idletasks
}
}
proc originObject { name } {
global Global
set bb [$Global(CurrentCanvas) bbox $name]
set x [lindex $bb 0]
set y [lindex $bb 1]
if {$x > 0} {
set nx -$x
} else {
set nx [expr abs($x)]
}
if {$y > 0} {
set ny -$y
} else {
set ny [expr abs($y)]
}
$Global(CurrentCanvas) move $name $nx $ny
}
set list {
menu Menu {} {}
{
{
file File {-underline 0} {}
{
{
new New {-underline 0} { clearAll }
}
{
open Open... {-underline 0} {openFile source Tk}
}
{
saveas "Save As..." {-underline 4} {saveAsFile}
}
{
print Print... {-underline 0} {printRaise .print}
}
{
slide "Slide Properties..." {-underline 0} {slideRaise .slideP}
}
{
pageprop "Page Properties..." {-underline 0} {set pageWidth \$Global(PageWidth);set pageHeight \$Global(PageHeight);pagePropRaise .pageProp}
}
{
sep1 {} {} {}
}
{
exit Exit {-underline 1} {exit}
}
}
}
{
insert Insert {-underline 0} {}
{
{
oval Oval {-underline 0} {set Global(MenuSelect) 1;popupCanvasSet Oval}
}
{
rect Rectangle {-underline 0} {set Global(MenuSelect) 1;popupCanvasSet Rectangle}
}
{
line Line {-underline 0} {set Global(MenuSelect) 1;popupCanvasSet Line}
}
{
poly Polygon {-underline 0} {set Global(MenuSelect) 1;popupCanvasSet Polygon}
}
{
draw Draw {-underline 0} {set Global(MenuSelect) 1;popupCanvasSet Draw}
}
{
text Text {-underline 0} {set Global(MenuSelect) 1;popupCanvasSet Text}
}
}
}
{
edit Edit {-underline 0} {}
{
{
selectall {Select All} {-underline 0} {selectAll}
}
{
select Select {-underline 0} {popupCanvasSet Select}
}
{
group Group {-underline 0} {popupCanvasSet Group}
}
{
ungroup Ungroup {-underline 0} {popupCanvasSet UnGroup}
}
{
duplicate Duplicate {-underline 0} \
{popupCanvasSet Duplicate}
}
{
cut Cut {-underline 0} {popupCanvasSet Cut}
}
{
paste Paste {-underline 0} {popupCanvasSet Paste}
}
}
}
{
layout Layout {-underline 0} {}
{
{
grid Grid {-underline 0} {set GridX \$Global(GridX);set GridY \$Global(GridY);gridRaise .grid}
}
{
headfoot Header/Footer {-underline 0} {}
}
{
annotate Annotations {-underline 0} {}
}
}
}
{
preferences Preferences {-underline 0} {}
{
{
buttons ToolBar {-underline 0}
{buttonReq .buttons \$Global(Buttons) .radiosr}
}
}
}
}
}
proc changePageProp { width height orient args} {
global Global
set Global(PageWidth) $width
set Global(PageHeight) $height
set Global(Landscape) $orient
set unit ""
regexp {(.*)(.)$} "$width" match len Global(UnitX)
regexp {(.*)(.)$} "$height" match len Global(UnitY)
if { "$Global(UnitX)" == "" } {
set Global(CoordFactorX) 1
} else {
set Global(CoordFactorX) [winfo fpixels . 1$Global(UnitX)]
}
if { "$Global(UnitY)" == "" } {
set Global(CoordFactorY) 1
} else {
set Global(CoordFactorY) [winfo fpixels . 1$Global(UnitY)]
}
update idletasks
if {!$Global(Plugin)} {
set w [winfo width .]
set h [winfo height .]
set wp [winfo pixels . $Global(PageWidth)]
set hp [winfo pixels . $Global(PageHeight)]
set junkw [expr $w - [winfo width $Global(CurrentCanvas)]]
set junkh [expr $h - [winfo height $Global(CurrentCanvas)]]
set nw [expr $wp + $junkw]
set nh [expr $hp + $junkh]
wm maxsize . $nw $nh
if {$nw < $w || $nh < $h} {
wm geometry . ${nw}x${nh}
}
}
$Global(CurrentCanvas) configure \
-scrollregion "0i 0i $Global(PageWidth) $Global(PageHeight)"
$Global(CurrentCanvas).rulerx configure \
-width $Global(PageWidth)
doRuler $Global(CurrentCanvas).rulerx $Global(PageWidth) .25i 0 0 1 h \
"" ""
$Global(CurrentCanvas).rulery configure \
-height $Global(PageHeight)
doRuler $Global(CurrentCanvas).rulery $Global(PageHeight) .25i 0 0 1 v \
"" ""
set Global($Global(CurrentCanvas)_Width) $Global(PageWidth)
set Global($Global(CurrentCanvas)_Height) $Global(PageHeight)
set Global($Global(CurrentCanvas)_Landscape) $Global(Landscape)
update idletasks
}
set Global(CurrentCanvas) ""
if { ! $Global(Plugin) } {
set menuparms [createMenu "" menu $list]
eval tk_menuBar $menuparms
}
set c [createCanvasF ".can"]
setCursor Select
if { [lindex $argv 0] != "" } {
openfile source [lindex $argv 0]
}
----
Category Application | Category GUI | Category Graphics