[PD-cvs] pd/src desire.tk, 1.1.2.600.2.269, 1.1.2.600.2.270 defaults.ddrc, 1.1.2.10.2.15, 1.1.2.10.2.16
chunlee
chunlee at users.sourceforge.net
Fri Aug 3 04:48:19 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15094
Modified Files:
Tag: desiredata
desire.tk defaults.ddrc
Log Message:
new feature: snap to grid
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.269
retrieving revision 1.1.2.600.2.270
diff -C2 -d -r1.1.2.600.2.269 -r1.1.2.600.2.270
*** desire.tk 2 Aug 2007 20:22:11 -0000 1.1.2.600.2.269
--- desire.tk 3 Aug 2007 02:48:14 -0000 1.1.2.600.2.270
***************
*** 2103,2133 ****
$self selection= $obj
}
! set grid 5
! def Canvas snapx {} {
! $@history atomically [list move] {
! $self snapx2
! }
! }
! def Canvas snapx2 {} {
! set grid $::grid
! set new_xy {}
! set snapped {}
! foreach child $@children {
! mset {x y} [$child xy]
! set x1 [expr $x - ($x%$grid)]
! #set y1 [expr $y - ($y%$grid)]
! set i 0
! while {[lsearch $new_xy [list $x1 $y]] > 0} {
! incr i
! set x1 [expr $x1+($grid*$i)]
! # set y1 [expr $y1+($grid*$i)]
! }
! # need to test overlap..
! lappend new_xy [list $x1 $y]
! lappend snapped $child
! $child moveto $x1 $y
! }
! incr ::grid 5
! }
def Canvas Object {} {$self new_object obj}
def Canvas Message {} {$self new_object msg}
--- 2103,2107 ----
$self selection= $obj
}
!
def Canvas Object {} {$self new_object obj}
def Canvas Message {} {$self new_object msg}
***************
*** 2843,2846 ****
--- 2817,2824 ----
}
+ proc remainder {val val2} {
+ if {[expr abs($val)]} {return [expr (abs($val)%$val2)*($val/abs($val))]} else {return 0}
+ }
+
def Canvas motion_move {oldpos x y} {
mset {ox oy} $oldpos
***************
*** 2848,2852 ****
foreach obj $@selection {
if {[[$obj class] <= Box]} {
! $obj move [expr $x-$ox] [expr $y-$oy]
} else {
puts "Canvas motion warning: trying to move non-Box explicitly"
--- 2826,2846 ----
foreach obj $@selection {
if {[[$obj class] <= Box]} {
! if {[$self look snap_grid]} {
! set grid [$self look grid_size]
! set ax [expr (int($x)/$grid)*$grid]
! set ay [expr (int($y)/$grid)*$grid]
! set oax [expr (int($ox)/$grid)*$grid]
! set oay [expr (int($oy)/$grid)*$grid]
! mset {x1 y1} [$obj xy]
! if {![expr ($ax-$oax)%$grid]} {
! set xoff [remainder [expr int($x1-$ax)] $grid]
! } else {set xoff 0}
! if {![expr ($ay-$oay)%$grid]} {
! set yoff [remainder [expr int($y1-$ay)] $grid]
! } else {set yoff 0}
! $obj move [expr ($ax-$oax)-$xoff] [expr ($ay-$oay)-$yoff]
! } else {
! $obj move [expr $x-$ox] [expr $y-$oy]
! }
} else {
puts "Canvas motion warning: trying to move non-Box explicitly"
***************
*** 4836,4842 ****
def Box move {dx dy} {
! mset {x y} [$self xy]
! set @x1 [expr $@x1+$dx]
! set @y1 [expr $@y1+$dy]
set zoom [$@canvas zoom]
$self changed ;# until we find a way to avoid rounding errors on [$@canvas widget] move.
--- 4830,4834 ----
def Box move {dx dy} {
! set @x1 [expr $@x1+$dx]; set @y1 [expr $@y1+$dy]
set zoom [$@canvas zoom]
$self changed ;# until we find a way to avoid rounding errors on [$@canvas widget] move.
***************
*** 7804,7807 ****
--- 7796,7800 ----
toggle Canvas gridstate
integer Canvas grid_size
+ toggle Canvas snap_grid
toggle Canvas buttonbar
toggle Canvas statusbar
Index: defaults.ddrc
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/defaults.ddrc,v
retrieving revision 1.1.2.10.2.15
retrieving revision 1.1.2.10.2.16
diff -C2 -d -r1.1.2.10.2.15 -r1.1.2.10.2.16
*** defaults.ddrc 2 Aug 2007 18:01:24 -0000 1.1.2.10.2.15
--- defaults.ddrc 3 Aug 2007 02:48:17 -0000 1.1.2.10.2.16
***************
*** 27,30 ****
--- 27,31 ----
gridstate 1
grid_size 10
+ snap_grid 1
showcomp 10
statusbar 1
More information about the Pd-cvs
mailing list