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} }