drawing
TCL/TK UseCase3
Abstract : Used by both the Tcl code and the PP Group's C++ code to
create objects and display them.
Comments : The names of the calls in here are the exact ones called in the
C++. First the object structure is created, then it is displayed.
#All this procs basically do the same thing. Each creates the data
#structure (either vertex or edge) and sets the variables for that structure.
#Then the proc will call createEdge or createVertex to place the egde or
#vertex on the canvas. These function calls are also the onces called by
#the C++ Propagation Pattern Group to give them display control.
#Construction vertex.
proc tclCVert { lbl coords {lblCoords {0 -20}} } {
newVertex $lbl Constr $lbl $lblCoords $coords
createVertex $lbl
}
#Alternation vertex.
proc tclAVert { lbl coords {lblCoords {0 -20}} } {
newVertex $lbl Alter $lbl $lblCoords $coords
createVertex $lbl
}
#Construction edge.
proc tclCEdge { lbl srcVert dstVert {lblCoords {0 -10}} {nodes {}} } {
newEdge $lbl Constr $srcVert $dstVert $lblCoords $nodes
createEdge $lbl
}
#Alternation edge.
proc tclAEdge { srcVert dstVert {nodes {}} } {
newEdge $srcVert-none-$dstVert Alter $srcVert $dstVert {} $nodes
createEdge $srcVert-none-$dstVert
}
#This proc moves a vertex label.
#Propagation Patterns do not use this function.
proc tclCMoveLabelTo { name coords } {
moveVertexLabel $name $coords
}