incr undolevel -1
loadCfg $undolog($undolevel)
switchCanvas none
- redrawAll
}
return
}
incr undolevel
loadCfg $undolog($undolevel)
switchCanvas none
- redrawAll
}
return
}
drawNode $node
}
}
-
foreach link $link_list {
set nodes [linkPeers $link]
if { [getNodeCanvas [lindex $nodes 0]] != $curcanvas ||
redrawLink $link
updateLinkLabel $link
}
-
- refreshCanvasMenu
return
}
set curcanvas [lindex $canvas_list $i]
}
}
+ first {
+ set curcanvas [lindex $canvas_list 0]
+ }
+ last {
+ set curcanvas [lindex $canvas_list end]
+ }
}
.hframe.t delete all
}
+proc renameCanvasPopup {} {
+ global curcanvas
+
+ set w .entry1
+ catch {destroy $w}
+ toplevel $w -takefocus 1
+ update
+ grab $w
+ wm title $w "Canvas rename"
+ wm iconname $w "Canvas rename"
+
+ label $w.msg -wraplength 5i -justify left -text "Canvas name:"
+ pack $w.msg -side top
+
+ frame $w.buttons
+ pack $w.buttons -side bottom -fill x -pady 2m
+ button $w.buttons.print -text "Apply" -command "renameCanvasApply $w"
+ button $w.buttons.cancel -text "Cancel" -command "destroy $w"
+ pack $w.buttons.print $w.buttons.cancel -side left -expand 1
+
+ entry $w.e1 -bg white
+ $w.e1 insert 0 [getCanvasName $curcanvas]
+ pack $w.e1 -side top -pady 5 -padx 10 -fill x
+}
+
+
proc renameCanvasApply { w } {
global curcanvas changed
set changed 1
}
setCanvasName $curcanvas $newname
- refreshCanvasMenu
switchCanvas none
updateUndoLog
}
-proc refreshCanvasMenu {} {
- global canvas_list curcanvas
-
- .menubar.canvas delete 0 end
- .menubar.canvas add command -label "New" -command {
- newCanvas ""
- set curcanvas [lindex $canvas_list 0]
- switchCanvas prev
- set changed 1
- updateUndoLog
- refreshCanvasMenu
- }
- .menubar.canvas add command -label "Rename" -command {
- set w .entry1
- catch {destroy $w}
- toplevel $w -takefocus 1
- grab $w
- wm title $w "Canvas rename"
- wm iconname $w "Canvas rename"
-
- label $w.msg -wraplength 5i -justify left -text "Canvas name:"
- pack $w.msg -side top
-
- frame $w.buttons
- pack $w.buttons -side bottom -fill x -pady 2m
- button $w.buttons.print -text "Apply" -command "renameCanvasApply $w"
- button $w.buttons.cancel -text "Cancel" -command "destroy $w"
- pack $w.buttons.print $w.buttons.cancel -side left -expand 1
-
- entry $w.e1 -bg white
- $w.e1 insert 0 [getCanvasName $curcanvas]
- pack $w.e1 -side top -pady 5 -padx 10 -fill x
- }
- .menubar.canvas add command -label "Delete" -command {
- if { [llength $canvas_list] == 1 } {
- return
- }
- foreach obj [.c find withtag node] {
- selectNode .c $obj
- }
- deleteSelection
- set i [lsearch $canvas_list $curcanvas]
- set canvas_list [lreplace $canvas_list $i $i]
- switchCanvas none
- set changed 1
- updateUndoLog
- refreshCanvasMenu
- }
- .menubar.canvas add separator
- .menubar.canvas add command -label "Previous" -accelerator "PgUp" \
- -command { switchCanvas prev }
- .menubar.canvas add command -label "Next" -accelerator "PgDown" \
- -command { switchCanvas next }
- .menubar.canvas add separator
- foreach canvas $canvas_list {
- .menubar.canvas add radiobutton -label [getCanvasName $canvas] \
- -command "switchCanvas none" -indicatoron true \
- -value $canvas -variable curcanvas
- }
- return
-}
-
-
proc animate {} {
global animatephase oper_mode
# Canvas
#
menu .menubar.canvas -tearoff 0
+.menubar.canvas add command -label "New" -command {
+ newCanvas ""
+ switchCanvas last
+ set changed 1
+ updateUndoLog
+}
+.menubar.canvas add command -label "Rename" -command renameCanvasPopup
+.menubar.canvas add command -label "Delete" -command {
+ if { [llength $canvas_list] == 1 } {
+ return
+ }
+ foreach obj [.c find withtag node] {
+ selectNode .c $obj
+ }
+ deleteSelection
+ set i [lsearch $canvas_list $curcanvas]
+ set canvas_list [lreplace $canvas_list $i $i]
+ switchCanvas prev
+ set changed 1
+ updateUndoLog
+}
+.menubar.canvas add separator
+.menubar.canvas add command -label "Previous" -accelerator "PgUp" \
+ -command { switchCanvas prev }
bind . <Prior> { switchCanvas prev }
+.menubar.canvas add command -label "Next" -accelerator "PgDown" \
+ -command { switchCanvas next }
bind . <Next> { switchCanvas next }
+.menubar.canvas add command -label "First" -accelerator "Home" \
+ -command { switchCanvas first }
+bind . <Home> { switchCanvas first }
+.menubar.canvas add command -label "Last" -accelerator "End" \
+ -command { switchCanvas last }
+bind . <End> { switchCanvas last }
#
-yscrollcommand ".vframe.scroll set"]
canvas .hframe.t -width 300 -height 18 -bd 0 -highlightthickness 0 \
-background gray
+bind .hframe.t <1> {
+ set canvas [lindex [.hframe.t gettags current] 1]
+ if { $canvas != "" && $canvas != $curcanvas } {
+ set curcanvas $canvas
+ switchCanvas none
+ }
+}
+bind .hframe.t <Double-1> {
+ set canvas [lindex [.hframe.t gettags current] 1]
+ if { $canvas != "" } {
+ renameCanvasPopup
+ }
+}
scrollbar .hframe.scroll -orient horiz -command "$c xview" \
-bd 1 -width 14
scrollbar .vframe.scroll -command "$c yview" \
bind $c <B2-Motion> "$c scan dragto %x %y 1"
bind $c <4> "$c yview scroll 1 units"
bind $c <5> "$c yview scroll -1 units"
-
+bind . <Right> ".c xview scroll 1 units"
+bind . <Left> ".c xview scroll -1 units"
+bind . <Down> ".c yview scroll 1 units"
+bind . <Up> ".c yview scroll -1 units"
#
# Popup-menu hierarchy
#
# Done with initialization, draw an empty canvas
#
-refreshCanvasMenu
-redrawAll
+switchCanvas first
#
# Fire up the animation loop - used basically for selectbox