mouse
TCL/TK UseCase1
Abstract : First attempt at user interaction
Comments : This file was replaced by bindings.tcl after Use Case 1.
It only allowed construction and alternation verities
and edges to be created and that's it. You couldn't do anything
else like move objects around, delete, rename, etc. Plus when
an object was created, Tcl/Tk was the only one that knew about
it. The .pp files for user interaction had not been created yet,
so there was no way to pass the new information. This file was
replaced by the bindings.tcl which turned out to be more
adaptive and easier to maintain and added new functions.
proc whattodo { x y } {
global tool_type
global INCLUDE
global name
global passx
global passy
switch $tool_type {
Select
{ .area itemconfigure node -background red }
Constr {
asklabel "Enter Label Name:"
if {$name != ""} {
tclCVert $name $x [expr $y - 20] $x $y
#Some PP stuff called here
}
}
Alter
{
asklabel "Enter Label Name:"
if {$name != ""} {
tclAVert $name $x [expr $y - 20] $x $y
#Some PP stuff called here
}
}
Req_Constr_Edge
{
set xcor1 $x
set ycor1 $y
nextcord "Please click at your destination."
set xcor2 $passx
set ycor2 $passy
tclCEdge $xcor1 $ycor1 $xcor2 $ycor2
#Some PP stuff called here
}
Req_Alter_Edge
{
set xcor1 $x
set ycor1 $y
nextcord "Please click at your destination."
set xcor2 $passx
set ycor2 $passy
tclAEdge $xcor1 $ycor1 $xcor2 $ycor2
#Some PP stuff called here
}
# Opt_Constr_Edge
# { ask "Tool not yet ready..." }
# Opt_Alter_Edge
# { ask "Tool not yet ready..." }
Rename
{ ask "Tool not yet ready..." }
Delete
{ ask "Tool not yet ready..." }
}
}
proc setup_mouse {} {
bind .area {whattodo %x %y}
}