[PD-cvs] pd/src desire.tk,1.1.2.600.2.260,1.1.2.600.2.261

chunlee chunlee at users.sourceforge.net
Wed Aug 1 19:49:14 CEST 2007


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

Modified Files:
      Tag: desiredata
	desire.tk 
Log Message:
new feature: object creation history (think bash history)


Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.260
retrieving revision 1.1.2.600.2.261
diff -C2 -d -r1.1.2.600.2.260 -r1.1.2.600.2.261
*** desire.tk	1 Aug 2007 05:15:48 -0000	1.1.2.600.2.260
--- desire.tk	1 Aug 2007 17:49:10 -0000	1.1.2.600.2.261
***************
*** 1982,1986 ****
  def Canvas new_wire_callback {wire} {}
  def Canvas new_object_callback {obj} {
! 	set @newest $obj
  	set @keynav_last_obj $obj
  	$self selection+= $obj
--- 1982,1986 ----
  def Canvas new_wire_callback {wire} {}
  def Canvas new_object_callback {obj} {
! 	$self add_to_obj_history $obj
  	set @keynav_last_obj $obj
  	$self selection+= $obj
***************
*** 1994,2002 ****
  }
  
  def Canvas insertxy {} {return [list $@insert_x $@insert_y]}
  
! def Canvas insert_object {} {
! 	$self do_insert_obj "none" "none"
! }
  
  def Canvas get_canvas {} {
--- 1994,2010 ----
  }
  
+ set obj_history {}
+ def Canvas add_to_obj_history {obj} {
+ 	if {![[$obj class] <= ObjectBox]} {return}
+ 	set ::obj_history [linsert $::obj_history 0 [$obj text]]
+ 	if {[llength $::obj_history] >= 5} {set ::obj_history [lrange $::obj_history 0 4]}
+ 	puts "history:::::: $::obj_history"
+ 	
+ }
+ 
+ 
  def Canvas insertxy {} {return [list $@insert_x $@insert_y]}
  
! def Canvas insert_object {} {$self do_insert_obj "none" "none"}
  
  def Canvas get_canvas {} {
***************
*** 2062,2065 ****
--- 2070,2074 ----
  }
  def Canvas new_object_chain_wire {obj} {
+ 	$self add_to_obj_history $obj
  	set obj1_idx [$self children_idx [lindex [$self selection] 0]]
  	$self deselect_all
***************
*** 2265,2268 ****
--- 2274,2278 ----
  	set @edit 1
  	set @tab_repeats 0
+ 	set @histi -1
  	# stores which line is the longest if multiple line
  	set @longline 1
***************
*** 2295,2298 ****
--- 2305,2313 ----
  	bind $t <Return>         "$self unedit"
  	bind $t <Escape>         "$self unedit 0"
+ 	bind $t <Up> "$self scroll_history +1"
+ 	bind $t <Down> "$self scroll_history -1"
+ 	bind $t <Control-p> "$self scroll_history +1"
+ 	bind $t <Control-n> "$self scroll_history -1"	
+ 	bind $t <Alt-BackSpace> "$self clear"
  	#bind $t <FocusOut>       "$self unedit"
  	$@canvas focus= $self
***************
*** 2344,2347 ****
--- 2359,2386 ----
  	$self changed
  }
+ 
+ def TextBox scroll_history {incr} {
+ 	if {![llength $::obj_history]} {return}
+ 	set @histi [expr $@histi + $incr]
+ 	set mod [expr ([llength $::obj_history]<5) ?[llength $::obj_history]:5]
+ 	if {$@histi >=$mod} {set @histi [expr $@histi%$mod]}
+ 	if {$@histi < 0} {set @histi [expr ($@histi+$mod)%$mod]}
+ 	set c [$self cwidget]
+ 	set t $c.${self}text
+ 	$t delete 1.0 1.end
+ 	set text [lindex $::obj_history $@histi]
+ 	$t insert 1.0 [lindex $::obj_history $@histi]
+ 	$t configure -width [string length $text]
+ 	$self update_size
+ 	after 0 $self changed
+ }
+ 
+ def TextBox clear {} {
+ 	set c [$self cwidget]
+ 	set t $c.${self}text
+ 	$t delete 1.0 1.end
+ 
+ }
+ 
  #checks which line should be used as the width of the objectbox
  def TextBox long_line {} {
***************
*** 2389,2393 ****
  		#set textwidth [expr {[font measure [$self look font] $text]+20}];#+20 hack
  		mset {x1 y1 x2 y2} [[[$self canvas] widget] bbox ${self}text]
! 		set textwidth [expr $x2-$x1+2]
  	}
  	set iowidth [$self look iowidth]
--- 2428,2432 ----
  		#set textwidth [expr {[font measure [$self look font] $text]+20}];#+20 hack
  		mset {x1 y1 x2 y2} [[[$self canvas] widget] bbox ${self}text]
! 		set textwidth [expr ($x2-$x1+2)/[$@canvas zoom]]
  	}
  	set iowidth [$self look iowidth]
***************
*** 2450,2453 ****
--- 2489,2494 ----
  	set xya [$self bbox]
  	mset {x1 y1 x2 y2} $xya
+ 	puts "width::::: [expr $x2-$x1]"
+ 	puts "height::::: [expr $y2-$y1]"
  	#set xyb [l+ [list $x2 $y1 $x1 $y1 $x1 $y2] [list -1 +1 +1 +1 +1 -1]]
  	#set xyc [l+ [list $x2 $y1 $x2 $y2 $x1 $y2] [list -1 +1 -1 -1 +1 -1]]





More information about the Pd-cvs mailing list