Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15630
Modified Files: Tag: desiredata desire.tk Log Message: wire can now be connected with the mouse pointer approximately nearby
Index: desire.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v retrieving revision 1.1.2.600.2.181 retrieving revision 1.1.2.600.2.182 diff -C2 -d -r1.1.2.600.2.181 -r1.1.2.600.2.182 *** desire.tk 9 May 2007 00:53:10 -0000 1.1.2.600.2.181 --- desire.tk 10 May 2007 01:42:27 -0000 1.1.2.600.2.182 *************** *** 1538,1541 **** --- 1538,1542 ---- set @cmd_histi 0 set @motion_watch 0 + set @iohilite {} }
*************** *** 2659,2664 **** set c [$self widget] $self motion_checkhairtip $target $x $y ! eval $@dehighlight ! set @dehighlight {} set oldpos $@curpos set @curpos [list $x $y] --- 2660,2665 ---- set c [$self widget] $self motion_checkhairtip $target $x $y ! #eval $@dehighlight ! #set @dehighlight {} set oldpos $@curpos set @curpos [list $x $y] *************** *** 2679,2683 **** if {$@editmode} {$self motion_iohilite2 $x $y $f} if {$id == ""} {return} ! $self motion_iohilite $target $x $y
} --- 2680,2684 ---- if {$@editmode} {$self motion_iohilite2 $x $y $f} if {$id == ""} {return} ! #$self motion_iohilite $target $x $y
} *************** *** 2801,2805 **** set c [$self widget] set obj [$self identify_closestobj $x $y $f] ! if {$obj < 0} {return} mset {cx cy} [rect_centre [$obj bbox]] if {$y < $cy} {set io i} else {set io o} --- 2802,2817 ---- set c [$self widget] set obj [$self identify_closestobj $x $y $f] ! if {$obj < 0} {if {$@dehighlight != ""} { ! set @iohilite [list -1 0 0 0 0] ! eval $@dehighlight} ! return ! } ! mset {x1 y1 x2 y2} [$obj bbox] ! if {$x > $x1 && $x < $x2 && $y > $y1 && $y < $y2} { ! set @iohilite [list -1 0 0 0 0] ! if {$@dehighlight != ""} {eval $@dehighlight} ! set @dehighlight "" ! return ! } mset {cx cy} [rect_centre [$obj bbox]] if {$y < $cy} {set io i} else {set io o} *************** *** 2812,2826 **** set idx 0 for {set i 0} {$i < $ports} {incr i} { ! set point2 [rect_centre [$c bbox ${obj}$io${i}]] set point1 [list $x $y] set dist [distance $point1 $point2] if {$dist < $mindist} {set mindist $dist; set idx $i; mset {iox ioy} $point2} } ! $obj hilite_io $io $iox $ioy ! set @dehighlight [list $c delete ${obj}$io${idx}b] #puts "obj:: $obj :: [$obj text] :: hilite $io :: $idx" }
def Canvas motion_iohilite {target x y} { set c [$self widget] --- 2824,2847 ---- set idx 0 for {set i 0} {$i < $ports} {incr i} { ! set point2 [lmap / [rect_centre [$c bbox ${obj}$io${i}]] $@zoom] set point1 [list $x $y] set dist [distance $point1 $point2] if {$dist < $mindist} {set mindist $dist; set idx $i; mset {iox ioy} $point2} } ! $obj hilite_io $io [expr floor($iox)] [expr floor($ioy)] ! set hilite ${obj}$io${idx}b ! set @iohilite [list $obj [expr floor($iox)] [expr floor($ioy)] $io $idx] ! if {$hilite != [lindex $@dehighlight 2]} { ! eval $@dehighlight ! set @dehighlight [list $c delete $hilite] ! } ! #set @dehighlight [list $c delete ${obj}$io${idx}b] ! #puts "dehilite is :: $@dehighlight" #puts "obj:: $obj :: [$obj text] :: hilite $io :: $idx" }
+ def Canvas iohilite {} {return $@iohilite} + def Canvas motion_iohilite {target x y} { set c [$self widget] *************** *** 2918,2922 **** set cx [expr $x*$@zoom] set cy [expr $y*$@zoom] ! set offset 100 set stack [$c find overlapping [expr $cx-$offset] [expr $cy-$offset] [expr $cx+$offset] [expr $cy+$offset]] set stack [lreverse $stack] --- 2939,2943 ---- set cx [expr $x*$@zoom] set cy [expr $y*$@zoom] ! set offset 50 set stack [$c find overlapping [expr $cx-$offset] [expr $cy-$offset] [expr $cx+$offset] [expr $cy+$offset]] set stack [lreverse $stack] *************** *** 2927,2931 **** set class [$id class] switch $class { ! Wire {} Crosshair {} Tooltip {} Comment {} SelRect {} default {lappend objs $id} } --- 2948,2952 ---- set class [$id class] switch $class { ! Wire {} Crosshair {} Tooltip {} Comment {} SelRect {} FutureWire {} default {lappend objs $id} } *************** *** 3810,3813 **** --- 3831,3839 ---- def FutureWire unclick {x y f target} { mset [list type foo bar] $target + mset {obj iox ioy io idx} [$@canvas iohilite] + if {$obj != -1} { + switch $io {i {set type "inlet"} o {set type "outlet"}} + set target [list $type $obj $idx] + } switch $type { outlet { *************** *** 3902,3911 **** if {!$@editmode} {$self run_click $id $x $y $f $target; return} set in_selection [expr [lsearch $@selection $id]>=0] switch $type { outlet { ! if {$@action == "none" && [$id canvas] == $self} { ! set @action [FutureWire new $self $x $y $f $target] ! } ! return } inlet {} --- 3928,3948 ---- if {!$@editmode} {$self run_click $id $x $y $f $target; return} set in_selection [expr [lsearch $@selection $id]>=0] + mset {obj iox ioy io idx} $@iohilite + if {$obj != -1 && $type != "wire"} { + switch $io { + i {set type "inlet"} + o {set type "outlet"} + } + if {$@action == "none" && [$obj canvas] == $self} { + set @action [FutureWire new $self $iox $ioy $f [list $type $obj $idx]] + } + return + } switch $type { outlet { ! #if {$@action == "none" && [$id canvas] == $self} { ! # set @action [FutureWire new $self $x $y $f $target] ! #} ! #return } inlet {}