[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