[PD-cvs] pd/src desire.tk,1.1.2.335,1.1.2.336

Mathieu Bouchard matju at users.sourceforge.net
Mon Aug 14 18:22:56 CEST 2006


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

Modified Files:
      Tag: devel_0_39
	desire.tk 
Log Message:
some more event mangling...


Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.335
retrieving revision 1.1.2.336
diff -C2 -d -r1.1.2.335 -r1.1.2.336
*** desire.tk	14 Aug 2006 15:45:46 -0000	1.1.2.335
--- desire.tk	14 Aug 2006 16:22:53 -0000	1.1.2.336
***************
*** 994,1003 ****
  def View noutlets= {v}    {set @noutlets $v}
  def View noutlets  {} {return $@noutlets}
! def* View   click     {args} {} ;# being   clicked in run  mode
! def* View   clickedit {args} {} ;# being   clicked in edit mode
! def* View unclick     {args} {} ;# being unclicked in run  mode
! def* View unclickedit {args} {} ;# being unclicked in edit mode
! def  View  motionedit {args} {} ;# motion in edit mode
! def  View  motion     {args} {} ;# motion in run  mode
  
  def View init {} {
--- 994,1003 ----
  def View noutlets= {v}    {set @noutlets $v}
  def View noutlets  {} {return $@noutlets}
! def* View   click     {x y f} {} ;# being   clicked in run  mode
! def* View   clickedit {x y f} {} ;# being   clicked in edit mode
! def* View unclick     {x y f} {} ;# being unclicked in run  mode
! def* View unclickedit {x y f} {} ;# being unclicked in edit mode
! def  View  motionedit {x y f} {} ;# mouse motion in edit mode
! def  View  motion     {x y f} {} ;# mouse motion in run  mode
  
  def View init {} {
***************
*** 1846,1859 ****
  }
  
  #!@#$ this method is too long
! def Canvas motion {x y mods} {
      global font canvas tooltip
      set canvas(current) $self
      set c .$self.c
-     set b 0
-     set f $mods
-     set bf [list $b $f]
-     set x [expr [$c canvasx $x]/$@scale]
-     set y [expr [$c canvasy $y]/$@scale]
      if {$tooltip(visible)} {
  	if {[expr [distance $tooltip(curpos) [list $x $y]] > 10]} {
--- 1846,1860 ----
  }
  
+ # just a transitional filter
+ def* Canvas motion {x y f} {
+ 	set c .$self.c
+ 	$self motion2 [expr [$c canvasx $x]/$@scale] [expr [$c canvasy $y]/$@scale] $f
+ }
+ 
  #!@#$ this method is too long
! def Canvas motion2 {x y f} {
      global font canvas tooltip
      set canvas(current) $self
      set c .$self.c
      if {$tooltip(visible)} {
  	if {[expr [distance $tooltip(curpos) [list $x $y]] > 10]} {
***************
*** 1867,1871 ****
      set @curpos [list $x $y]
      # detects if the focus is not on the canvas itself in run mode, ie. numbox 
!     if {!$@editmode & [$self focus] != $self & [$self focus] != ""} {[$self focus] motion $x $y $mods}
      switch $@action {
        move {
--- 1868,1872 ----
      set @curpos [list $x $y]
      # detects if the focus is not on the canvas itself in run mode, ie. numbox 
!     if {!$@editmode & [$self focus] != $self & [$self focus] != ""} {[$self focus] motion $x $y $f}
      switch $@action {
        move {
***************
*** 1889,1897 ****
        #default {error "unknown action '$@action'"}
        default {
! 	set target [$self identify_target $x $y $b $f "motion"]
! 	$@action motion $x $y $mods $target
        }
      }
!     set target [$self identify_target $x $y -1 -1 "move"]
      mset {type id detail} $target
      switch $type {
--- 1890,1898 ----
        #default {error "unknown action '$@action'"}
        default {
! 	set target [$self identify_target $x $y $f "motion"]
! 	$@action motion $x $y $f $target
        }
      }
!     set target [$self identify_target $x $y -1 "move"]
      mset {type id detail} $target
      switch $type {
***************
*** 1900,1904 ****
        object {
  	if {$@editmode} {set event motionedit} {set event motion}
! 	$id $event $x $y $mods
        }
        wire {}
--- 1901,1905 ----
        object {
  	if {$@editmode} {set event motionedit} {set event motion}
! 	$id $event $x $y $f
        }
        wire {}
***************
*** 1913,1917 ****
  #     wire $id         : a wire
  #  nothing             : nothing
! def Canvas identify_target2 {x y b f label} {
      set c .$self.c
      set cx [expr $x*$@scale]
--- 1914,1918 ----
  #     wire $id         : a wire
  #  nothing             : nothing
! def Canvas identify_target2 {x y f label} {
      set c .$self.c
      set cx [expr $x*$@scale]
***************
*** 1937,1943 ****
  }
  
! def Canvas identify_target {x y b f label} {
!     set r [$self identify_target2 $x $y $b $f $label]
!     #puts "\[identify_target $x $y $b $f $label\] returns: $r"
      return $r
  }
--- 1938,1944 ----
  }
  
! def Canvas identify_target {x y f label} {
!     set r [$self identify_target2 $x $y $f $label]
!     #puts "\[identify_target $x $y $f $label\] returns: $r"
      return $r
  }
***************
*** 1988,1992 ****
      set tags [$c gettags [lindex [$c find overlapping \
  	[expr $x-2] [expr $y-2] [expr $x+2] [expr $y+2]] end]]
!     foreach {type id} [$@canvas identify_target $x $y -1 -1 "g"] {}
      switch $type {
        object {
--- 1989,1993 ----
      set tags [$c gettags [lindex [$c find overlapping \
  	[expr $x-2] [expr $y-2] [expr $x+2] [expr $y+2]] end]]
!     foreach {type id} [$@canvas identify_target $x $y -1 "status"] {}
      switch $type {
        object {
***************
*** 2124,2133 ****
  }
  
! proc shift? {bf} {mset {b f} $bf; return [expr $f&1]}
! proc ctrl?  {bf} {mset {b f} $bf; return [expr $f&2]}
! proc alt?   {bf} {mset {b f} $bf; return [expr $f&4]}
  
  class_new FutureWire {View}
! def FutureWire init {canvas x y bf target} {
  	super
  	set @canvas $canvas
--- 2125,2141 ----
  }
  
! proc shift?    {f} {return [expr $f&1]}
! proc ctrl?     {f} {return [expr $f&2]}
! proc alt?      {f} {return [expr $f&4]}
! proc button_of {f} {
! #	set f [expr $f>>8]
! #	set b 1
! #	while {[expr $f&1==0} {set f [expr $f>>1]}
! #	return $f
! 	return [expr $f>>8]
! }
  
  class_new FutureWire {View}
! def FutureWire init {canvas x y f target} {
  	super
  	set @canvas $canvas
***************
*** 2140,2144 ****
  	set @x1 [expr ($x1+$x2)/2]
  	set @y1 [expr ($y1+$y2)/2]
! 	$self motion $@x1 $@y1 0 $target
  }
  def FutureWire motion {x y f target} {
--- 2148,2152 ----
  	set @x1 [expr ($x1+$x2)/2]
  	set @y1 [expr ($y1+$y2)/2]
! 	$self motion $@x1 $@y1 $f $target
  }
  def FutureWire motion {x y f target} {
***************
*** 2149,2154 ****
  	$self draw
  }
! def FutureWire unclick {x y bf target} {
! 	$self motion $x $y $bf $target
  	if {$@to != ""} {
  		set children [$@canvas children]
--- 2157,2162 ----
  	$self draw
  }
! def FutureWire unclick {x y f target} {
! 	$self motion $x $y $f $target
  	if {$@to != ""} {
  		set children [$@canvas children]
***************
*** 2157,2161 ****
  			[lsearch $children $@to  ] $@inlet]
  	}
! 	if {![shift? $bf]} {$@canvas end_action}
  }
  def FutureWire draw {} {
--- 2165,2169 ----
  			[lsearch $children $@to  ] $@inlet]
  	}
! 	if {![shift? $f]} {$@canvas end_action}
  }
  def FutureWire draw {} {
***************
*** 2206,2213 ****
  #!@#$ this method is too long
  # this method receives (x,y) in descaled coords
! def* Canvas clickedit {x y b f} {
  	set c .[$self canvas].c
! 	set bf [list $b $f] ;# i want to merge b and f together but it's not going to be merged like this
! 	set target [$self identify_target $x $y $b $f "click"]
  	mset {type id detail} $target
  	if {$f&8} {$self popup $id [winfo pointerx $c] [winfo pointery $c]; return}
--- 2214,2220 ----
  #!@#$ this method is too long
  # this method receives (x,y) in descaled coords
! def* Canvas clickedit {x y f} {
  	set c .[$self canvas].c
! 	set target [$self identify_target $x $y $f "click"]
  	mset {type id detail} $target
  	if {$f&8} {$self popup $id [winfo pointerx $c] [winfo pointery $c]; return}
***************
*** 2216,2235 ****
  	
  	switch $type {
! 	  outlet {set @action [FutureWire new $self $x $y $bf $target]; return}
  	  object {
! 	     if {![llength $@selection]} {# if no previous selection, edit the clicked object
! 	     	$id clickedit $x $y $b $f $in_selection $@selection
! 	     } else {# otherwise do multiple object selection
! 	     	if {[lsearch $@selection $id] < 0} {lappend @selection $id}
! 	     	$id selected?= 1; set @action edit
! 	     }
  	  }
! 	  wire   {
! 	  	switch $f {
! 		0 {
! 			#click on a wire without shift
! 			if {[lsearch $@selection_wire $id] < 0} {set @selection_wire $id}
! 			$id selected?= 1
! 		}
  		1 {#click on a wire with shift
  			#if click on the one already selected wire, reconnect it
--- 2223,2234 ----
  	
  	switch $type {
! 	  outlet {set @action [FutureWire new $self $x $y $f $target]; return}
  	  object {
! 	     $self selection+= $id
! 	     set @action edit
  	  }
! 	  wire {
! 	    switch $f {
! 		0 {$self selection_wire+= $id}
  		1 {#click on a wire with shift
  			#if click on the one already selected wire, reconnect it
***************
*** 2263,2269 ****
  			set @action wire
  		}
- 		default {
- 			puts "nothing......."
- 		}
  		}
  		}
--- 2262,2265 ----
***************
*** 2271,2275 ****
  		$self deselect_all
  		$self dehilite_io
! 		set @action [SelRect new $@canvas $x $y $bf $target]
  		return
  	  }
--- 2267,2271 ----
  		$self deselect_all
  		$self dehilite_io
! 		set @action [SelRect new $@canvas $x $y $f $target]
  		return
  	  }
***************
*** 2279,2283 ****
--- 2275,2286 ----
  }
  
+ # just a transitional filter
  def* Canvas click {x y b f} {
+ 	set c .$self.c
+ 	$self click2 [expr [$c canvasx $x]/$@scale] [expr [$c canvasy $y]/$@scale] [expr $b*256+$f]
+ }
+ 
+ # should be renamed to "click" when the other "click" becomes unneeded.
+ def* Canvas click2 {x y f} {
      if {[winfo exists .completion]} {
        raise .completion
***************
*** 2287,2348 ****
      set c .$self.c
      focus $c
-     set x [expr [$c canvasx $x]/$@scale]
-     set y [expr [$c canvasy $y]/$@scale]
      set @click_at [list $x $y]
!     #if {$@editmode && !($f&2)} {$self clickedit $x $y $b $f; return}
!     if {$@editmode} {$self clickedit $x $y $b $f; return}
!     mset {type id} [$self identify_target $x $y $b $f "click"]
      if {![llength $id]} {return}
      switch $type {
!       object {$id click $x $y $b $f}
!       wire   {$id click $x $y $b $f}
        default {error BORK}
      }
  }
  
! #!@#$ this method is too long
! def* Canvas unclickedit {x y b f} {
!     global look
      set c .$self.c
!     set bf [list $b $f]
      switch $@action {
        edit {
-         #foreach {type id} [$self identify_target $cx $cy -1 -1 "blah "] {}
-         mset {type id} [$self identify_target $x $y [expr $x-1] [expr $y-1] "unclick"]
-         #puts "++++++++ type:$type id:$id class:$_($id:class)"
          set @obj_in_edit $id
          $id edit
        }
        move {
! 	foreach obj $@selection {
! 	  #this could be wrong....
! 	  mset {x y} [$obj xy]
! 	  pd .$self object_moveto !$obj $x $y
! 	  puts "new pos:: $x $y orig pos:: $_($obj:orig_x) $_($obj:orig_y)"
! 	}
  	set objs $@selection
   	$@history add [list $self undomove $objs]
        }
        none {}
-       #default {error "unknown action '$@action'"}
        default {
! 	set target [$self identify_target $x $y $b $f "unclick"]
! 	$@action unclick $x $y $bf $target
        }
      }
  }
  
! def* Canvas unclickrun {x y b} {
! 	if {[$self focus] != ""} {[$self focus] unclick $x $y $b}
  }
  
! def* Canvas unclick {x y b f} {
!     set c .$self.c
!     set x [expr [$c canvasx $x]/$@scale]
!     set y [expr [$c canvasy $y]/$@scale]
!     if {$@editmode} {$self unclickedit $x $y $b $f} {$self unclickrun $x $y %b}
      $self adjust_scrollbars
      $self checkgeometry
-     set @action none
  }
  
--- 2290,2340 ----
      set c .$self.c
      focus $c
      set @click_at [list $x $y]
!     #if {$@editmode && !($f&2)} {$self clickedit $x $y $f; return}
!     if {$@editmode} {$self clickedit $x $y $f; return}
!     mset {type id} [$self identify_target $x $y $f "click"]
      if {![llength $id]} {return}
      switch $type {
!       object {$id click $x $y $f}
!       wire   {$id click $x $y $f}
        default {error BORK}
      }
  }
  
! def* Canvas unclickedit {x y f} {
      set c .$self.c
!     mset {type id detail} [$self identify_target $x $y $f "unclick"]
      switch $@action {
        edit {
          set @obj_in_edit $id
          $id edit
        }
        move {
! 	foreach obj $@selection {pd .$self object_moveto !$obj $x $y}
  	set objs $@selection
   	$@history add [list $self undomove $objs]
        }
        none {}
        default {
! 	set target [$self identify_target $x $y $f "unclick"]
! 	$@action unclick $x $y $f $target
        }
      }
  }
  
! # just a transitional filter
! def* Canvas unclick {x y b f} {
! 	set c .$self.c
! 	$self unclick2 [expr [$c canvasx $x]/$@scale] [expr [$c canvasy $y]/$@scale] [expr $b*256+$f]
  }
  
! def* Canvas unclick2 {x y f} {
!     if {$@editmode} {
! 	$self unclickedit $x $y $f
!     } else {
! 	if {[$self focus] != ""} {[$self focus] unclick $x $y $b}
!     }
      $self adjust_scrollbars
      $self checkgeometry
  }
  
***************
*** 2638,2646 ****
  
  def* Box clickedit {x y butt key in_selection selection} {
!     #handles the shift click
!     #if {($f&1) && !$already} {post "add to selection?"; return}
!     if {($key&1) && $selection>0} {
!         puts "add $self to selection...."
!     }
      #if clicked obj is part of the $@selection, than....
      if {$in_selection && [llength $_($@canvas:selection)]>1} {
--- 2630,2634 ----
  
  def* Box clickedit {x y butt key in_selection selection} {
!     if {($key&1) && $selection>0} {puts "add $self to selection...."}
      #if clicked obj is part of the $@selection, than....
      if {$in_selection && [llength $_($@canvas:selection)]>1} {
***************
*** 3753,3757 ****
  }
  
! def Slider motion {x y mods} {
  	set focused [$self == [$@canvas focus]]
  	if {!$focused} {return}
--- 3741,3745 ----
  }
  
! def Slider motion {x y f} {
  	set focused [$self == [$@canvas focus]]
  	if {!$focused} {return}





More information about the Pd-cvs mailing list