[PD-cvs] pd/src desire.tk,1.1.2.288,1.1.2.289
chunlee
chunlee at users.sourceforge.net
Sun Aug 6 23:19:18 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26893
Modified Files:
Tag: devel_0_39
desire.tk
Log Message:
more tweaks and fixes to the keyboard navigation code. it should be functional now.
see more detail here:
http://desiredata.goto10.org/ticket/15
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.288
retrieving revision 1.1.2.289
diff -C2 -d -r1.1.2.288 -r1.1.2.289
*** desire.tk 6 Aug 2006 14:58:28 -0000 1.1.2.288
--- desire.tk 6 Aug 2006 21:19:16 -0000 1.1.2.289
***************
*** 2250,2254 ****
#foreach obj $@selection {$c itemconfigure ${obj}BASE -outline [look objectframe4]}
foreach obj $@selection {$obj selected?= 1}
! if {[llength $@selection] == 1} {set @keynav_current $@selection}
# hilite wire
foreach wire $@selection_wire {$wire select 1}
--- 2250,2258 ----
#foreach obj $@selection {$c itemconfigure ${obj}BASE -outline [look objectframe4]}
foreach obj $@selection {$obj selected?= 1}
! if {[llength $@selection] == 1} {
! set @keynav_current $@selection
! } else {
! set @keynav_current [lindex $@selection 0]
! }
# hilite wire
foreach wire $@selection_wire {$wire select 1}
***************
*** 2335,2342 ****
if {[llength $@children] != 0} {
$self deselect_all
$@keynav_current selected?= 0
set obj_sel [lindex $@children $@jump]
$obj_sel selected?= 1
! set @keynav_current $objsel
#set @selection $obj_sel
#puts "jump -> $@jump"
--- 2339,2348 ----
if {[llength $@children] != 0} {
$self deselect_all
+ set @keynav_current [lindex $@children 0]
+ set @selection $@keynav_current
$@keynav_current selected?= 0
set obj_sel [lindex $@children $@jump]
$obj_sel selected?= 1
! set @keynav_current $obj_sel
#set @selection $obj_sel
#puts "jump -> $@jump"
***************
*** 2361,2426 ****
set find [lsearch $@children $@keynav_current]
set childrens [lreplace $@children $find $find]
switch $direction {
up {
foreach item $childrens {
! if {$_($item:y1) < $_($@keynav_current:y1)} {
! if {$_($item:x1) >= $_($@keynav_current:x1) && $_($item:x1) <= [expr $_($@keynav_current:x1) + $_($@keynav_current:xs)]} {
lappend group $item
! lappend distances [expr abs ($_($item:y1) - $_($@keynav_current:y1))]
}
set x2 [expr $_($item:x1) + $_($item:xs)]
! if {$x2 >= $_($@keynav_current:x1) && $x2 <= [expr $_($@keynav_current:x1) + $_($@keynav_current:xs)]} {
lappend group $item
! lappend distances [expr abs($_($item:y1) - $_($@keynav_current:y1))]
}
}
}
}
down {
foreach item $childrens {
! if {$_($item:y1) > $_($@keynav_current:y1)} {
! if {$_($item:x1) >= $_($@keynav_current:x1) && $_($item:x1) <= [expr $_($@keynav_current:x1) + $_($@keynav_current:xs)]} {
lappend group $item
! lappend distances [expr abs ($_($item:y1) - $_($@keynav_current:y1))]
}
set x2 [expr $_($item:x1) + $_($item:xs)]
! if {$x2 >= $_($@keynav_current:x1) && $x2 <= [expr $_($@keynav_current:x1) + $_($@keynav_current:xs)]} {
lappend group $item
! lappend distances [expr abs($_($item:y1) - $_($@keynav_current:y1))]
}
}
}
}
right {
foreach item $childrens {
! if {$_($item:x1) > $_($@keynav_current:x1)} {
! if {$_($item:y1) >= $_($@keynav_current:y1) && $_($item:y1) <= [expr $_($@keynav_current:y1) + $_($@keynav_current:ys)]} {
lappend group $item
! lappend distances [expr abs ($_($item:x1) - $_($@keynav_current:x1))]
}
! set y2 [expr $_($item:y1) + $_($item:ys)]
! if {$y2 >= $_($@keynav_current:y1) && $y2 <= [expr $_($@keynav_current:y1) + $_($@keynav_current:ys)]} {
lappend group $item
! lappend distances [expr abs($_($item:x1) - $_($@keynav_current:x1))]
}
}
}
}
left {
foreach item $childrens {
! if {$_($item:x1) < $_($@keynav_current:x1)} {
! if {$_($item:y1) >= $_($@keynav_current:y1) && $_($item:y1) <= [expr $_($@keynav_current:y1) + $_($@keynav_current:ys)]} {
lappend group $item
! lappend distances [expr abs ($_($item:x1) - $_($@keynav_current:x1))]
}
! set y2 [expr $_($item:y1) + $_($item:ys)]
! if {$y2 >= $_($@keynav_current:y1) && $y2 <= [expr $_($@keynav_current:y1) + $_($@keynav_current:ys)]} {
lappend group $item
! lappend distances [expr abs($_($item:x1) - $_($@keynav_current:x1))]
}
}
}
}
}
--- 2367,2475 ----
set find [lsearch $@children $@keynav_current]
set childrens [lreplace $@children $find $find]
+ set off 0
+ set max 100
+
switch $direction {
up {
+ set y1 $_($@keynav_current:y1)
+
+ while {![llength $group]} {
+ set left [expr $_($@keynav_current:x1) - ($_($@keynav_current:xs) * $off)]
+ set right [expr ($_($@keynav_current:x1) + $_($@keynav_current:xs)) + ($_($@keynav_current:xs) * $off)]
foreach item $childrens {
! if {$_($item:y1) < $y1} {
! if {$_($item:x1) >= $left && $_($item:x1) <= $right} {
lappend group $item
! lappend distances [expr abs($_($item:y1) - $y1)]
}
set x2 [expr $_($item:x1) + $_($item:xs)]
! if {$x2 >= $left && $x2 <= $right} {
lappend group $item
! lappend distances [expr abs($_($item:y1) - $y1)]
}
}
}
+ incr off
+ puts "incr ----> $off"
+ if {$off == $max} {break}
+ }
}
down {
+ set y1 $_($@keynav_current:y1)
+
+ while {![llength $group]} {
+ set left [expr $_($@keynav_current:x1) - ($_($@keynav_current:xs) * $off)]
+ set right [expr ($_($@keynav_current:x1) + $_($@keynav_current:xs)) + ($_($@keynav_current:xs) * $off)]
+
foreach item $childrens {
! if {$_($item:y1) > $y1} {
! if {$_($item:x1) >= $left && $_($item:x1) <= $right} {
lappend group $item
! lappend distances [expr abs($_($item:y1) - $y1)]
}
set x2 [expr $_($item:x1) + $_($item:xs)]
! if {$x2 >= $left && $x2 <= $right} {
lappend group $item
! lappend distances [expr abs($_($item:y1) - $y1)]
}
}
}
+ incr off
+ puts "incr ----> $off"
+ if {$off == $max} {break}
+ }
}
right {
+ set x1 $_($@keynav_current:x1)
+
+ while {![llength $group]} {
+ set top [expr $_($@keynav_current:y1) + ($_($@keynav_current:ys) * $off)]
+ set bottom [expr ($_($@keynav_current:y1) - $_($@keynav_current:ys)) - ($_($@keynav_current:ys) * $off)]
+
foreach item $childrens {
! if {$_($item:x1) > $x1} {
! if {$_($item:y1) <= $top && $_($item:y1) >= $bottom} {
lappend group $item
! lappend distances [expr abs($_($item:x1) - $x1)]
}
! set y2 [expr $_($item:y1) - $_($item:ys)]
! if {$y2 <= $top && $y2 >= $bottom} {
lappend group $item
! lappend distances [expr abs($_($item:x1) - $x1)]
}
}
}
+ incr off
+ puts "incr ----> $off"
+ if {$off == $max} {break}
+ }
}
left {
+ set x1 $_($@keynav_current:x1)
+
+ while {![llength $group]} {
+ set top [expr $_($@keynav_current:y1) + ($_($@keynav_current:ys) * $off)]
+ set bottom [expr ($_($@keynav_current:y1) - $_($@keynav_current:ys)) - ($_($@keynav_current:ys) * $off)]
+
foreach item $childrens {
! if {$_($item:x1) < $x1} {
! if {$_($item:y1) <= $top && $_($item:y1) >= $bottom} {
lappend group $item
! lappend distances [expr abs($_($item:x1) - $x1)]
}
! set y2 [expr $_($item:y1) - $_($item:ys)]
! if {$y2 <= $top && $y2 >= $bottom} {
lappend group $item
! lappend distances [expr abs($_($item:x1) - $x1)]
}
}
}
+ incr off
+ puts "incr ----> $off"
+ if {$off == $max} {break}
+ }
+
}
}
***************
*** 2437,2441 ****
set @keynav_next [lindex $group $index]
} else {
! #set @keynav_next $@selection
}
--- 2486,2490 ----
set @keynav_next [lindex $group $index]
} else {
! set @keynav_next $@selection
}
***************
*** 2445,2449 ****
$@keynav_current selected?= 0
}
! lappend @selection $@keynav_next
$@keynav_next selected?= 1
set @keynav_current $@keynav_next
--- 2494,2498 ----
$@keynav_current selected?= 0
}
! if {[lsearch $@selection $@keynav_next] < 0} {lappend @selection $@keynav_next}
$@keynav_next selected?= 1
set @keynav_current $@keynav_next
More information about the Pd-cvs
mailing list