[PD-cvs] pd/src desire.tk,1.1.2.364,1.1.2.365

chunlee chunlee at users.sourceforge.net
Fri Aug 18 05:50:44 CEST 2006


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

Modified Files:
      Tag: devel_0_39
	desire.tk 
Log Message:
wire fixes


Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.364
retrieving revision 1.1.2.365
diff -C2 -d -r1.1.2.364 -r1.1.2.365
*** desire.tk	18 Aug 2006 02:51:19 -0000	1.1.2.364
--- desire.tk	18 Aug 2006 03:50:42 -0000	1.1.2.365
***************
*** 1031,1035 ****
  	set scale [$@canvas scale]
  	set coords [lmap * $coords $scale]
! 	
  	set find [lsearch $args "-width"]
  	if {$find >= 0} {
--- 1031,1035 ----
  	set scale [$@canvas scale]
  	set coords [lmap * $coords $scale]
! 	puts "		coords::$coords"
  	set find [lsearch $args "-width"]
  	if {$find >= 0} {
***************
*** 1290,1294 ****
      set @keynav_current 0
      set @keynav_last 0
!     set @shift_wires {}
      set @keynav_tab_sel "wire"
  }
--- 1290,1294 ----
      set @keynav_current 0
      set @keynav_last 0
!     #set @shift_wires {}
      set @keynav_tab_sel "wire"
  }
***************
*** 1408,1412 ****
  def* Canvas unmap {} {}
  
! def Canvas scroll {axis diff} {.$self.c [list $axis]view scroll $diff units}
  def Canvas reload {} {pd ".$self map 0; .$self map 1"}
  
--- 1408,1425 ----
  def* Canvas unmap {} {}
  
! def Canvas scroll {axis diff} {
! 	global crosshair
! 	set c .$self.c
! 	$c [list $axis]view scroll $diff units
! 	if {$crosshair(hairstate) && $@editmode} {
! 		set c .$self.c
! 		set x [expr [$c canvasx [expr [winfo pointerx $c] - [winfo rootx $c]]]/$@scale]
! 		set y [expr [$c canvasy [expr [winfo pointery $c] - [winfo rooty $c]]]/$@scale]
! 		set target [$self identify_target $x $y 0]
! 		$self show_crosshair $x $y $target
! 	} else {
! 		$self hide_crosshair
! 	}
! }
  def Canvas reload {} {pd ".$self map 0; .$self map 1"}
  
***************
*** 1873,1878 ****
  def Canvas motion_wrap {x y f} {
  	set c .$self.c
- 	#if {$@crosshair} {$self show_crosshair [expr [$c canvasx $x]/$@scale] [expr [$c canvasy $y]/$@scale]}
- 	#if {$@crosshair} {$self show_crosshair $x $y}
  	set x [expr [$c canvasx $x]/$@scale]
  	set y [expr [$c canvasy $y]/$@scale]
--- 1886,1889 ----
***************
*** 2185,2191 ****
  }
  
! def Canvas disconnect {wire} {
  	mset {from outlet to inlet} $wire; pd .$self disconnect $from $outlet $to $inlet
  	$@history add [list $self    connect $wire]
  }
  def Canvas    connect {wire} {
--- 2196,2203 ----
  }
  
! def* Canvas disconnect {wire} {
  	mset {from outlet to inlet} $wire; pd .$self disconnect $from $outlet $to $inlet
  	$@history add [list $self    connect $wire]
+ 	set @wires_pair [lreplace $@wires_pair [lsearch $@wires_pair $wire] [lsearch $@wires_pair $wire]]
  }
  def Canvas    connect {wire} {
***************
*** 2231,2235 ****
  	$self draw
  }
! def FutureWire unclick {x y f target} {
  	$self motion $x $y $f $target
  	if {$@to != ""} {
--- 2243,2247 ----
  	$self draw
  }
! def* FutureWire unclick {x y f target} {
  	$self motion $x $y $f $target
  	if {$@to != ""} {
***************
*** 2310,2349 ****
  	switch $type {
  	  outlet {set @action [FutureWire new $self $x $y $f $target]; return}
  	  object {$self selection+= $id; set @action edit}
  	  wire {
! 	    $self deselect_all
  	    set @keynav_tab_sel "object"
  	    switch [expr $f&255] {
  		0 {$self selection_wire= $id}
! 		1 {#click on a wire with shift
! 			#if click on the one already selected wire, reconnect it
! 			if {[llength $@selection_wire] == 1 && $@selection_wire == $id} {
! 			set wire [lindex $@wires_pair [expr [lsearch $@wires_pair $id]-1]]
! 			$id delete
! 			$self disconnect $wire
! 			set @wires_pair [lreplace $@wires_pair [lsearch $@wires_pair $id] [lsearch $@wires_pair $id]]
! 		  	set @wires_pair [lreplace $@wires_pair [lsearch $@wires_pair $wire] [lsearch $@wires_pair $wire]]
! 			set obj1 [lindex $@children [lindex $wire 0]]
! 			set outlet [lindex $wire 1]
! 			mset {x1 y1 x2 y2} [$c bbox ${obj1}o${outlet}]
! 			set @action [FutureWire new $x $y $obj1 $outlet]
! 			} else {
! 			#else selecting mltiple wires
! 			if {[lsearch $@selection_wire $id] < 0} {lappend @selection_wire $id;$id selected?= 1}
! 			}
! 		}
  		2 {# ctrl-click on wire?
  			set wire [lindex $@wires_pair [expr [lsearch $@wires_pair $id]-1]]
- 			$id delete
  			$self disconnect $wire
- 			set @wires_pair [lreplace $@wires_pair [lsearch $@wires_pair $id] [lsearch $@wires_pair $id]]
- 		  	set @wires_pair [lreplace $@wires_pair [lsearch $@wires_pair $wire] [lsearch $@wires_pair $wire]]
  			set obj1 [lindex $@children [lindex $wire 0]]
  			set outlet [lindex $wire 1]
! 			mset {x1 y1 x2 y2} [$obj1 bbox]
! 			mset {x1 y1 x2 y2} [$c bbox ${obj1}o${outlet}]
! 			$c create line  [expr ($x1+$x2)/2] [expr ($y1+$y2)/2] $x $y -dash {4 4 4 4} -tags lnew -fill [look wiredash]
! 			#set @wire_from [list $obj1 $outlet]
! 			set @action wire
  		}
  		}
--- 2322,2344 ----
  	switch $type {
  	  outlet {set @action [FutureWire new $self $x $y $f $target]; return}
+ 	  inlet {}
  	  object {$self selection+= $id; set @action edit}
  	  wire {
! 	    #$self deselect_all
! 	    set obj_selection [$self selection]
! 	    if {[llength $obj_selection]} {$self selection-= $obj_selection}
  	    set @keynav_tab_sel "object"
  	    switch [expr $f&255] {
  		0 {$self selection_wire= $id}
! 		1 {$self selection_wire+= $id}
  		2 {# ctrl-click on wire?
  			set wire [lindex $@wires_pair [expr [lsearch $@wires_pair $id]-1]]
  			$self disconnect $wire
  			set obj1 [lindex $@children [lindex $wire 0]]
  			set outlet [lindex $wire 1]
! 			#mset {x1 y1 x2 y2} [$c bbox ${obj1}o${outlet}]
! 			mset {x1 y1 x2 y2} [lmap / [$c bbox ${obj1}o${outlet}] [$@canvas scale]]
! 			set target [$self identify_target $x1 $y1 $f]
! 			set @action [FutureWire new $self $x1 $y1 $f $target]
  		}
  		}
***************
*** 2352,2355 ****
--- 2347,2356 ----
  		$self deselect_all
  		$self dehilite_io
+ 		switch $@action {
+ 		edit {}
+ 		move {}
+ 		none {}
+ 		default {$@action unclick $x $y $f $target}
+       		}
  		set @action [SelRect new $@canvas $x $y $f $target]
  		return
***************
*** 2479,2482 ****
--- 2480,2485 ----
  	#puts "		selection_wire::: $@selection_wire"
  	#puts "		selection::: $@selection"
+ 	puts "	keynav::: $@keynav"
+ 	if {!$@keynav} {return}
  	switch $@keynav_tab_sel {
  	object {
***************
*** 2511,2514 ****
--- 2514,2530 ----
  }
  
+ def Canvas victim {} {
+ if {[llength $@selection]} {
+ 	return $@selection
+ } elseif {[string compare $@keynav_current 0]} {
+ 	return {}
+ 	} else {
+ 	return $@keynav_current
+ 	}
+ 
+ 
+ }
+ 
+ 
  def Canvas find_neighbor_obj {object direction} {
  	set group ""
***************
*** 2701,2709 ****
  #-----------------------------------------------------------------------------------#
  
! def Canvas keyup {x y key iso shift} {
      set canvas .$self.c
-     if {$shift} {
- 	if {[llength $@shift_wires]} {set @shift_wires {}; $canvas delete lnew}
-     }
      if {$iso != ""} {scan $iso %c key}
  #    if {[string length $@focus] > 0} {
--- 2717,2722 ----
  #-----------------------------------------------------------------------------------#
  
! def* Canvas keyup {x y key iso shift} {
      set canvas .$self.c
      if {$iso != ""} {scan $iso %c key}
  #    if {[string length $@focus] > 0} {
***************
*** 4307,4318 ****
  ############ crosshair
  
! def Canvas show_crosshair {x y target} {
  	global crosshair
! 	set width [expr [winfo width .$self.c] * (1/$@scale)]
! 	set height [expr [winfo height .$self.c] * (1/$@scale)]
! 	set off [expr 7 * (1/$@scale)]
  	mset {type id detail} $target
- 	#puts "	type::: $type id:::$id"
- 	#puts "	action::: $@action"
  	
  	if {$crosshair(hairsnap)} {
--- 4320,4332 ----
  ############ crosshair
  
! def* Canvas show_crosshair {x y target} {
  	global crosshair
! 	set width [expr [winfo width .$self.c] / $@scale]
! 	set height [expr [winfo height .$self.c] / $@scale]
! 	#set width [winfo width .$self.c]
! 	#set height [winfo height .$self.c]
! 	#set width [expr [winfo width .$self.c] * (1/$@scale)]
! 	#set height [expr [winfo height .$self.c] * (1/$@scale)]
  	mset {type id detail} $target
  	
  	if {$crosshair(hairsnap)} {
***************
*** 4337,4358 ****
  	}
  	
- 	#set v1 [list $X 0 $X [expr $Y - $off]]
- 	#set h1 [list 0 $Y [expr $X - $off] $Y]
  	set v1 [list $X 0 $X $height]
  	set h1 [list 0 $Y $width $Y]
- 	#set v2 [list $X [expr $Y + $off] $X $height]
- 	#set h2 [list [expr $X + $off] $Y $width $Y]
- 	#set eye [list [expr $X - $off] [expr $Y - $off] [expr $X + $off] [expr $Y + $off]]
  	
  	
  	$self item VHAIR1 line $v1 -fill [look selectframe] -width 0.5 -dash {4 4 4 4}
  	$self item HHAIR1 line $h1 -fill [look selectframe] -width 0.5 -dash {4 4 4 4}
- 	#$self item VHAIR2 line $v2 -fill [look selectframe] -width 0.5 -dash {4 4 4 4}
- 	#$self item HHAIR2 line $h2 -fill [look selectframe] -width 0.5 -dash {4 4 4 4}
- 	#$self item EYE oval $eye -dash {4 4 4 4} -outline [look selrect]
  }
  
  def Canvas hide_crosshair {} {
- 	#.$self.c delete ${self}VHAIR1 ${self}HHAIR1 ${self}VHAIR2 ${self}HHAIR2 ${self}EYE
  	.$self.c delete ${self}VHAIR1 ${self}HHAIR1
  }
--- 4351,4363 ----





More information about the Pd-cvs mailing list