[PD-cvs] pd/src desire.tk,1.1.2.589,1.1.2.590
chunlee
chunlee at users.sourceforge.net
Fri Nov 24 16:39:07 CET 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28319
Modified Files:
Tag: devel_0_39
desire.tk
Log Message:
finally fixed that annoying bug with crosshair/statusbar
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.589
retrieving revision 1.1.2.590
diff -C2 -d -r1.1.2.589 -r1.1.2.590
*** desire.tk 24 Nov 2006 02:48:07 -0000 1.1.2.589
--- desire.tk 24 Nov 2006 15:39:04 -0000 1.1.2.590
***************
*** 2723,2731 ****
global paste
set @obj_count 0; set @wire_count 0
! set in 0
#foreach mess [pd_mess_split [$::clipboard value]] {
# set type [lindex $mess 1]
# switch $type {connect {} restore {} default {if {$type != ""} {incr paste(count)}}}
#}
pd .$self push
set paste(state) $self
--- 2723,2762 ----
global paste
set @obj_count 0; set @wire_count 0
! set in 0; set visible 1
#foreach mess [pd_mess_split [$::clipboard value]] {
# set type [lindex $mess 1]
# switch $type {connect {} restore {} default {if {$type != ""} {incr paste(count)}}}
#}
+ set c [$self widget]
+ set height [winfo height $c]
+ set width [winfo width $c]
+ mset {l r} [$c xview]
+ mset {t b} [$c yview]
+ set w [expr (1 / ($r - $l)) * $width]
+ set h [expr (1 / ($b - $t)) * $height]
+ puts " l $l :: r $r :: t $t :: b $b"
+ puts " $w :::: $h"
+ mset {l2 r2} [lmap * [$c xview] $w]
+ mset {t2 b2} [lmap * [$c yview] $h]
+
+ foreach mess [pd_mess_split [$::clipboard value]] {
+ set type [lindex $mess 1]
+ switch $type {
+ canvas {} connect {}
+ default {
+ mset {x y} [lmap + [lrange $mess 2 3] $offset]
+ if {$x > $r2 || $x < $l2} {
+ if {$type != ""} {set visible 0;puts "-----------"; break}
+ }
+ if {$y > $b2 || $y < $t2} {
+ if {$type != ""} {set visible 0;puts "-----------"; break}
+ }
+ }
+
+ }
+ }
+
+
+ puts " $l2 __ $r2 __ $t2 __ $b2 ::: "
pd .$self push
set paste(state) $self
***************
*** 2743,2746 ****
--- 2774,2787 ----
if {$type == "restore"} {set in 0}
mset {x y} [lmap + [lrange $mess 2 3] $offset]
+ if {$x > $r2 || $x < $l2} {
+ if {$type != ""} {
+ set x $x
+ }
+ }
+ if {$y > $b2 || $y < $t2} {
+ if {$type != ""} {
+ set y $y
+ }
+ }
set mess2 [lreplace $mess 2 3 $x $y]
if {$in} {pd $mess} else {pd $mess2; if {$type != ""} {incr @obj_count}}
***************
*** 5628,5646 ****
set c [$@canvas widget]
set z [$@canvas zoom]
- set width [expr [winfo width $c]/$z]
- set height [expr [winfo height $c]/$z]
mset {x1 y1 x2 y2} [$c cget -scrollregion]
set x1 [expr $x1/$z]
set y1 [expr $y1/$z]
- mset {vx1 vx2} [$c xview]
- mset {vy1 vy2} [$c yview]
- set xoff [expr ([winfo width $c] * $vx1)/$z]
- set yoff [expr ([winfo height $c] * $vy1)/$z]
- set vx1 [expr ($x1+($x2-$x1)*$vx1)/$z]
- set vy1 [expr ($y1+($y2-$y1)*$vy1)/$z]
- set vx2 [expr ($x1+($x2-$x1)*$vx2)/$z]
- set vy2 [expr ($y1+($y2-$y1)*$vy2)/$z]
mset {type id detail} $@target
-
set x $@x
set y $@y
--- 5669,5676 ----
***************
*** 5656,5671 ****
}
}
!
! set v1 [list $x $y1 $x [expr $y+$height+$yoff]]
! set h1 [list $x1 $y [expr $x+$width+$xoff] $y]
! #set v1 [list $x $y1 $x $vy2]
! #set h1 [list $x1 $y $vx2 $y]
! #set v1 [list $x $vy1 $x $vy2]
! #set h1 [list $vx1 $y $vx2 $y]
! #set v1 [list $x [expr $y - $y + $yoff] $x [expr $y + ($height +$yoff)]]
! #set h1 [list [expr $x - $x + $xoff] $y [expr $x + ($width +$xoff)] $y]
$self item VHAIR1 line $v1 -fill [$@canvas look crosshair] -width 0.5 -dash {4 4 4 4}
$self item HHAIR1 line $h1 -fill [$@canvas look crosshair] -width 0.5 -dash {4 4 4 4}
- #$self item BORDER rect [list $vx1 $vy1 $vx2 $vy2] -width 10
}
--- 5686,5697 ----
}
}
! mset {l r} [$c xview]
! mset {t b} [$c yview]
! set w [expr (1 / ($r - $l)) * [winfo width $c]]
! set h [expr (1 / ($b - $t)) * [winfo height $c]]
! set h1 [list $x1 $y $w $y]
! set v1 [list $x $y1 $x $h]
$self item VHAIR1 line $v1 -fill [$@canvas look crosshair] -width 0.5 -dash {4 4 4 4}
$self item HHAIR1 line $h1 -fill [$@canvas look crosshair] -width 0.5 -dash {4 4 4 4}
}
More information about the Pd-cvs
mailing list