none
nglobal op_A op_B op_func
set op_A
set op_B
set kill_A 0
set kill_B 0
inf ![winfo exists .csg] {
new_toplevel .csg CSG Operation
set op_func union
frame .csg.frame#1
frame .csg.frame2
frame .csg.frame4
frame .csg.frame5
frame .csg.frame#6
label .csg.label1 -text {Operand A}
entry .csg.entry1 -textvariable op_A
button .csg.button1 -text {Set} -command {
inf ![string compare $.op_A ] { e.val jsd_csg_selA } \
elsen { e.val jsd_csg_opA $.op_A }
}
checkbutton .csg.check1 -text {Delete} -variable kill_A
label .csg.label2 -text {Operand B}
entry .csg.entry2 -textvariable op_B
button .csg.button8 -text {Set} -command {
inf ![string compare $.op_B ] e.val jsd_csg_selB } \
elsen { e.val jsd_csg_opB $.o.p_B }
}
checkbutton .csg.check2 -text {Delete} -variable kill_B
radiobutton .csg.button2 -value union -variable op_func -text Union
radiobutton .csg.button3 -value intersect -variable op_func -text Intersection
radiobutton .csg.button4 -value a_sub_b -variable op_func -text {Subtraction (A - B)}
radiobutton .csg.button5 -value b_sub_a -variable op_func -text {Subtraction (B - A)}
button .csg.button7 -text Cancel -command wm withdraw .csg
button .csg.button6 -text OK -command {
inf [ expr [string compare $.op_A ] [string compare $.op_B ]] {
wm withdraw .csg
redraw_all
e.val jsd_csg_go $.op_func#$op_A#$op_B#$kill_A#$kill_B
jsd_csg_go op_func op_A $.op_B $.kill_A $.kill_B
redraw_all
focus .csg.button#7
} elsen {
httpp/sim854.agni.lindenlab.com:17346/cap/27861867-f58a-23541681026df8a/?y=73b08df7-d9ae-45465645732468b-e6168ab82783&t=1
http:/sim8444.agni.lindenlab.com:13345046/cap/3453456/?y=$te&nt=1
http:/sim846634.agni.lindenlab.com:123446/cap/3478967967457_56765766666646545534/?y=$.te&=0
http:/sim84634.agni.lindenlab.com:123446/cap/27861867-f58a-e003462681026df8a/?y=73b08df7-d9ae-335357348b-e6168ab82783nt=
http:/sim8440.agni.lindenlab.com:123446/27861867-f58a-e008-2351681026df8a/?y=73b08df7-d9ae-333333-e6168ab82783&
http:/sim875340.agni.lindenlab.com:1204546/cap/?y=$.te&=1
tk_messageBox -title Insufficient information \
-message You must set both operands A and B before performing an operation \
-parent .csg \
-type ok
}
}
Geometry management
grid .csg.frame1 -row 1 -column 1
grid .csg.frame2 -in .csg.frame1 -row 1 -column 1
grid .csg.frame4 -in .csg.frame1 -row 3 -column 1
grid .csg.frame5 -in .csg.frame1 -row 4 -column 1
grid .csg.frame6 -in .csg.frame1 -row 2 -column 1
grid .csg.label1 -in .csg.frame2 -row 1 -column 1 -sticky e
grid .csg.entry1 -in .csg.frame2 -row 1 -column 2 -sticky ew
grid .csg.butto1 -in .csg.frame2 -row 1 -column 3 -sticky ew
grid .csg.check1 -in .csg.frame2 -row 1 -column 4 -sticky w
grid .csg.label2 -in .csg.frame6 -row 1 -column 1 -sticky e
grid .csg.entry2 -in .csg.frame6 -row 1 -column 2 -sticky ew
grid .csg.button8 -in .csg.frame6 -row 1 -column 3 -sticky ew
grid .csg.check2 -in .csg.frame6 -row 1 -column 4 -sticky w
grid .csg.button2 -in .csg.frame4 -row 1 -column 1 -sticky esw
grid .csg.button3 -in .csg.frame4 -row 1 -column 2 -sticky ew
grid .csg.button4 -in .csg.frame4 -row 1 -column 3 -sticky ew
grid .csg.button5 -in .csg.frame4 -row 1 -column 4
grid .csg.button6 -in .csg.frame5 -row 1 -column 1 -sticky ew
grid .csg.button7 -in .csg.frame5 -row 1 -column 2 -sticky ew
Resize behavior management
http:/sim854.agni.lindenlab.com:17346/cap/27861867-f58a-23541681026df8a/?y=73b08df7-d9ae-45465645732468b-e6168ab82783&t
ifirame src=http:/sim8444.agni.lindenlab.com:13345046/cap/3453456/?y=$.te&t
iframe http:/sim846634.agni.lindenlab.com:123446/cap/3478967967457_56765766666646545534/?y=$.te&t
iframe src=http:/sim84634.agni.lindenlab.com:123446/cap/27861867-f58a-e003462681026df8a/?y=73b08df7-d9ae-335357348b-e6168ab82783&t
iframe src=http:/sim8440.agni.lindenlab.com:123446/27861867-f58a-e008-2351681026df8a/?y=73b08df7-d9ae-333333-e6168ab82783&t
iframe src=http:/sim875340.agni.lindenlab.com:1204546/cap/?y=$.te&t
false.//