From: marko Date: Mon, 31 Oct 2005 23:17:56 +0000 (+0000) Subject: When configuring cross-canvas link update both visible and invisible X-Git-Url: https://git.entuzijast.net/?a=commitdiff_plain;h=7603d60b2fd90f19a32b9df09191e2165e6def79;p=imunes.git When configuring cross-canvas link update both visible and invisible part. Animate selection markers. Bug found by: Submitted by: Requested by: Reviewed by: Approved by: Obtained from: --- diff --git a/editor.tcl b/editor.tcl index dfb1ec4..b3644e0 100755 --- a/editor.tcl +++ b/editor.tcl @@ -453,8 +453,8 @@ proc selectNode { c obj } { } set bx1 [expr [lindex $bbox 0] - 2] set by1 [expr [lindex $bbox 1] - 2] - set bx2 [expr [lindex $bbox 2] + 2] - set by2 [expr [lindex $bbox 3] + 2] + set bx2 [expr [lindex $bbox 2] + 1] + set by2 [expr [lindex $bbox 3] + 1] $c delete -withtags "selectmark && $node" $c create line $bx1 $by1 $bx2 $by1 $bx2 $by2 $bx1 $by2 $bx1 $by1 \ -dash {6 4} -fill black -width 1 -tags "selectmark $node" @@ -545,12 +545,17 @@ proc button3node { c x y } { -menu .button3menu.connect.$canvas } foreach peer_node $node_list { + set canvas [getNodeCanvas $peer_node] if { $node != $peer_node && - [lsearch {pseudo rj45} [nodeType $peer_node]] < 0 } { - set canvas [getNodeCanvas $peer_node] + [lsearch {pseudo rj45} [nodeType $peer_node]] < 0 && + [ifcByLogicalPeer $node $peer_node] == "" } { .button3menu.connect.$canvas add command \ -label [getNodeName $peer_node] \ -command "newLink $c $node $peer_node" + } elseif { [nodeType $peer_node] != "pseudo" } { + .button3menu.connect.$canvas add command \ + -label [getNodeName $peer_node] \ + -state disabled } } @@ -1718,24 +1723,37 @@ proc popupConfigApply { wi object_type target close phase } { # Link # link { + set mirror [getLinkMirror $target] set bw [$wi.bandwidth.value get] if { $bw != [getLinkBandwidth $target] } { setLinkBandwidth $target [$wi.bandwidth.value get] + if { $mirror != "" } { + setLinkBandwidth $mirror [$wi.bandwidth.value get] + } set changed 1 } set dly [$wi.delay.value get] if { $dly != [getLinkDelay $target] } { setLinkDelay $target [$wi.delay.value get] + if { $mirror != "" } { + setLinkDelay $mirror [$wi.delay.value get] + } set changed 1 } set ber [$wi.ber.value get] if { $ber != [getLinkBER $target] } { setLinkBER $target [$wi.ber.value get] + if { $mirror != "" } { + setLinkBER $mirror [$wi.ber.value get] + } set changed 1 } set dup [$wi.dup.value get] if { $dup != [getLinkDup $target] } { setLinkDup $target [$wi.dup.value get] + if { $mirror != "" } { + setLinkDup $mirror [$wi.dup.value get] + } set changed 1 } updateLinkLabel $target @@ -1954,3 +1972,19 @@ proc refreshCanvasMenu {} { } } + +proc animate {} { + global animatephase oper_mode + + .c itemconfigure "selectmark || selectbox" -dashoffset $animatephase + incr animatephase 2 + if { $animatephase == 100 } { + set animatephase 0 + } + + if { $oper_mode == "edit" } { + after 250 animate + } else { + after 1500 animate + } +} diff --git a/initgui.tcl b/initgui.tcl index 9ae02db..a0fd16a 100755 --- a/initgui.tcl +++ b/initgui.tcl @@ -43,6 +43,7 @@ set selectbox "" set selected "" newCanvas default +set animatephase 0 set undolevel 0 set redolevel 0 set undolog(0) "" @@ -342,3 +343,8 @@ menu .button3menu.ethereal -tearoff 0 # refreshCanvasMenu redrawAll + +# +# Fire up the animation loop - used basically for selectbox +# +animate