Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5864
Modified Files: Tag: devel_0_39 desire.tk Log Message: trying to get key_nav to work with wires....
Index: desire.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v retrieving revision 1.1.2.337 retrieving revision 1.1.2.338 diff -C2 -d -r1.1.2.337 -r1.1.2.338 *** desire.tk 15 Aug 2006 02:16:05 -0000 1.1.2.337 --- desire.tk 15 Aug 2006 02:19:20 -0000 1.1.2.338 *************** *** 1270,1273 **** --- 1270,1274 ---- set @keynav_next 0 set @shift_wires {} + set @keynav_tab_sel "wire" }
*************** *** 1839,1843 **** }
! def View draw_wires {} {foreach wire $@wires {$wire draw}}
def* View set_orig_xy {x y} { --- 1840,1844 ---- }
! def View draw_wires {} {foreach wire $_($@canvas:wires) {$wire draw}}
def* View set_orig_xy {x y} { *************** *** 2359,2374 **** }
! def* Canvas obj_jump {} { ! if {[llength $@children] != 0} { ! $self deselect_all ! set obj_sel [lindex $@children $@jump] $obj_sel selected?= 1 set @keynav_current $obj_sel set @selection $@keynav_current ! #set @selection $obj_sel ! #puts "jump -> $@jump" ! incr @jump ! if {$@jump >= [llength $@children]} {set @jump 0} ! } }
--- 2360,2390 ---- }
! def* Canvas tab_jump {} { ! $self deselect_all ! if {$@keynav_tab_sel == "object"} {set @keynav_tab_sel "wire"} else {set @keynav_tab_sel "object"} ! switch $@keynav_tab_sel { ! object { ! set obj_sel [lindex $@children 0] $obj_sel selected?= 1 set @keynav_current $obj_sel set @selection $@keynav_current ! } ! wire { ! set wire_sel [lindex $@wires 0] ! $wire_sel selected?= 1 ! set @keynav_current $wire_sel ! set @selection_wire $@keynav_current ! } ! } ! ! # if {[llength $@children] != 0} { ! # $self deselect_all ! # set obj_sel [lindex $@children $@jump] ! # $obj_sel selected?= 1 ! # set @keynav_current $obj_sel ! # set @selection $@keynav_current ! # incr @jump ! # if {$@jump >= [llength $@children]} {set @jump 0} ! # } }
*************** *** 2389,2402 **** set group "" set distances "" ! set find [lsearch $@children $@keynav_current] ! set children [lreplace $@children $find $find] set off 0 set max 100 ! set x1 $_($@keynav_current:x1); set xs $_($@keynav_current:xs) ! set y1 $_($@keynav_current:y1); set ys $_($@keynav_current:ys) while {![llength $group]} { set left [expr $x1 - $xs*$off]; set right [expr $x1 + $xs + $xs*$off] set top [expr $y1 - $ys*$off]; set bottom [expr $y1 + $ys + $ys*$off] ! foreach item $children { mset {ix1 iy1 ix2 iy2} [$item bbox] set add 0 --- 2405,2468 ---- set group "" set distances "" ! switch $@keynav_tab_sel { ! object { ! set @keynav_next [$self find_neighbor_obj $@keynav_current $direction] ! } ! wire { ! set find [lsearch $@wires $@keynav_current] ! set all [lreplace $@wires $find $find] ! mset {x1 y1 x2 y2} [$@keynav_current bbox] ! set obj1 $_($@keynav_current:obj1) ! set inlets [$obj1 ninlets] ! set outlets [$obj1 noutlets] ! set outlet_wire {} ! set inlet_wire {} ! for {set i 0} {$i<$outlets} {incr i} {lappend outlet_wire $i} ! for {set i 0} {$i<$inlets} {incr i} {lappend inlet_wire $i} ! puts "outlet_wire::: $outlet_wire" ! puts "inlet_wire::: $inlet_wire" ! puts "wire $@keynav_current comes from $obj1" ! ! puts "and it has wires::: $_($obj1:wires)" ! foreach wire $_($obj1:wires) { ! set wire_info [$wire report] ! set find [lsearch $wire_info $obj1] ! if {$find == 0} { ! set new [linsert [lindex $outlet_wire [lindex $wire_info 1]] 0 $wire] ! set outlet_wire [lreplace $outlet_wire [lindex $wire_info 1] [lindex $wire_info 1] $new] ! } else { ! set new [linsert [lindex $inlet_wire [lindex $wire_info 3]] 0 $wire] ! set inlet_wire [lreplace $inlet_wire [lindex $wire_info 3] [lindex $wire_info 3] $new] ! } ! } ! puts "outlet_wire::: $outlet_wire" ! puts "inlet_wire::: $inlet_wire" ! } ! } ! ! if {!$shift} { ! set find [lsearch $@selection $@keynav_current] ! set @selection [lreplace $@selection $find $find] ! $@keynav_current selected?= 0 ! } ! if {[lsearch $@selection $@keynav_next] < 0} {lappend @selection $@keynav_next} ! $@keynav_next selected?= 1 ! set @keynav_current $@keynav_next ! } ! ! def Canvas find_neighbor_obj {object direction} { ! set group "" ! set distances "" ! set find [lsearch $@children $object] ! set all [lreplace $@children $find $find] ! set x1 $_($object:x1); set xs $_($object:xs) ! set y1 $_($object:y1); set ys $_($object:ys) set off 0 set max 100 ! while {![llength $group]} { set left [expr $x1 - $xs*$off]; set right [expr $x1 + $xs + $xs*$off] set top [expr $y1 - $ys*$off]; set bottom [expr $y1 + $ys + $ys*$off] ! foreach item $all { mset {ix1 iy1 ix2 iy2} [$item bbox] set add 0 *************** *** 2425,2440 **** } set index [lsearch $distances $closest] ! set @keynav_next [lindex $group $index] } else { ! set @keynav_next [lindex $@selection end end] ! } ! if {!$shift} { ! set find [lsearch $@selection $@keynav_current] ! set @selection [lreplace $@selection $find $find] ! $@keynav_current selected?= 0 } ! if {[lsearch $@selection $@keynav_next] < 0} {lappend @selection $@keynav_next} ! $@keynav_next selected?= 1 ! set @keynav_current $@keynav_next }
--- 2491,2499 ---- } set index [lsearch $distances $closest] ! return [lindex $group $index] } else { ! return [lindex $@selection end end] } ! }
*************** *** 2550,2554 **** Left {$self selection_move -$motion 0} Right {$self selection_move +$motion 0} ! Tab {$self obj_jump} Return { if {[llength $@selection] == 1} { --- 2609,2613 ---- Left {$self selection_move -$motion 0} Right {$self selection_move +$motion 0} ! Tab {$self tab_jump} Return { if {[llength $@selection] == 1} { *************** *** 2693,2696 **** --- 2752,2769 ---- def Wire inlet {} {return $@port2}
+ def Wire bbox {} { + set obj1 $@obj1 + set obj2 $@obj2 + set port1 $@port1 + set port2 $@port2 + mset {x1 y1 x2 y2} [.$@canvas.c bbox ${obj1}o${port1}] + mset {x3 y3 x4 y4} [.$@canvas.c bbox ${obj2}o${port2}] + list [expr ($x2+$x1)/2] [expr ($y2+$y1)/2] [expr ($x4+$x3)/2] [expr ($y4+$y3)/2] + } + + def Wire report {} { + list $@obj1 $@port1 $@obj2 $@port2 + } + def Wire draw {} { set scale [$@canvas scale]