[PD-cvs] pd/src desire.tk,1.1.2.325,1.1.2.326

Mathieu Bouchard matju at users.sourceforge.net
Sun Aug 13 10:42:27 CEST 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8657

Modified Files:
      Tag: devel_0_39
	desire.tk 
Log Message:
more key_nav


Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.325
retrieving revision 1.1.2.326
diff -C2 -d -r1.1.2.325 -r1.1.2.326
*** desire.tk	13 Aug 2006 08:30:32 -0000	1.1.2.325
--- desire.tk	13 Aug 2006 08:42:24 -0000	1.1.2.326
***************
*** 2444,2448 ****
  def Canvas key_nav_left_shift  {} {$self key_nav "left"  1}
  
! proc inside {x x0 x1} {return [expr $x>=$x0 && $x<=$x1]}
  
  def* Canvas key_nav {direction shift} {
--- 2444,2450 ----
  def Canvas key_nav_left_shift  {} {$self key_nav "left"  1}
  
! # intervals
! proc inside {x x0 x1}      {return [expr $x>=$x0 && $x<=$x1]}
! proc overlap {y0 y1 x0 x1} {return [expr [inside $y0 $x0 $x1] || [inside $y1 $x0 $x1]]}
  
  def* Canvas key_nav {direction shift} {
***************
*** 2453,2462 ****
  	set off 0
  	set max 100
- 	switch $direction {
- 	  up    {set axis y; set polarity -1}
- 	  down  {set axis y; set polarity +1}
- 	  left  {set axis x; set polarity -1}
- 	  right {set axis x; set polarity +1}
- 	}
  	set x1 $_($@keynav_current:x1); set xs $_($@keynav_current:xs)
  	set y1 $_($@keynav_current:y1); set ys $_($@keynav_current:ys)
--- 2455,2458 ----
***************
*** 2465,2493 ****
  	  set top   [expr $y1 - $ys*$off]; set bottom [expr $y1 + $ys + $ys*$off]
  	  foreach item $children {
! 	    set ix1 $_($item:x1); set ix2 [expr $ix1 + $_($item:xs)]
! 	    set iy1 $_($item:y1); set iy2 [expr $iy1 + $_($item:ys)]
  	    switch $direction {
! 	      up {
! 		if {$iy1 >= $y1} {continue}
! 		set add [expr [inside $ix1 $left $right] || [inside $ix2 $left $right]]
! 	      }
! 	      down {
! 		if {$iy1 <= $y1} {continue}
! 		set add [expr [inside $ix1 $left $right] || [inside $ix2 $left $right]]
! 	      }
! 	      right {
! 		if {$ix1 <= $x1} {continue}
! 		set add [expr [inside $iy1 $top $bottom] || [inside $iy2 $top $bottom]]
! 	      }
! 	      left {
! 		if {$ix1 >= $x1} {continue}
! 		set add [expr [inside $iy1 $top $bottom] || [inside $iy2 $top $bottom]]
! 	      }
  	    }
  	    if {$add} {
  	      lappend group $item
! 	      lappend distances [switch $axis {
! 		y {expr abs($iy1-$y1)}
! 		x {expr abs($ix1-$x1)}
  	      }]
  	    }
--- 2461,2477 ----
  	  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
  	    switch $direction {
! 	      up    {if {$iy1 < $y1} {set add [overlap $ix1 $ix2 $left $right]}}
! 	      down  {if {$iy1 > $y1} {set add [overlap $ix1 $ix2 $left $right]}}
! 	      left  {if {$ix1 < $x1} {set add [overlap $iy1 $iy2 $top $bottom]}}
! 	      right {if {$ix1 > $x1} {set add [overlap $iy1 $iy2 $top $bottom]}}
  	    }
  	    if {$add} {
  	      lappend group $item
! 	      lappend distances [switch -regexp $direction {
! 		up|down    {expr abs($iy1-$y1)}
! 		left|right {expr abs($ix1-$x1)}
  	      }]
  	    }





More information about the Pd-cvs mailing list