[PD-cvs] pd/src desire.tk,1.1.2.600.2.339,1.1.2.600.2.340

chunlee chunlee at users.sourceforge.net
Sat Aug 11 03:54:14 CEST 2007


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

Modified Files:
      Tag: desiredata
	desire.tk 
Log Message:
TextBox clean up


Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.339
retrieving revision 1.1.2.600.2.340
diff -C2 -d -r1.1.2.600.2.339 -r1.1.2.600.2.340
*** desire.tk	10 Aug 2007 22:43:58 -0000	1.1.2.600.2.339
--- desire.tk	11 Aug 2007 01:54:10 -0000	1.1.2.600.2.340
***************
*** 2492,2496 ****
  		set t [[$self get_canvas] widget].${self}text
  		if {![winfo exists $t]} {$self draw_edit}
! 		$self item text window [l+ $@textoffset [$self xy]] -window $t -anchor nw -tags "${self}text $self text"
  	} else {
  		set fw [font measure [$self look font] 0]
--- 2492,2497 ----
  		set t [[$self get_canvas] widget].${self}text
  		if {![winfo exists $t]} {$self draw_edit}
! 		$self item text window [l+ $@textoffset [$self xy]] -window $t -anchor nw \
! 		    -tags "${self}text $self text"
  	} else {
  		set fw [font measure [$self look font] 0]
***************
*** 2506,2514 ****
  
  def TextBox edit {} {
! 	if {$@edit} {return}
! 	set @edit 1; $self changed edit
  	if {[[$self class] <= AtomBox]} {set @clear 1}
  }
  
  def TextBox draw_edit {} {
  	set c [$self cwidget]
--- 2507,2529 ----
  
  def TextBox edit {} {
! 	if {$@edit} {return}; set @edit 1; $self changed edit
  	if {[[$self class] <= AtomBox]} {set @clear 1}
  }
  
+ def TextBox new_bind {} {
+ 	set t [$self cwidget].${self}text
+ 	bind $t <Key>            "$self key_input %W %x %y %K %A 0"
+ 	bind $t <Control-Return> "$self key_input %W %x %y 10 %A 0"
+ 	bind $t <Control-v>      "$self paste_resize"
+ 	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"
+ 
+ }
+ 
  def TextBox draw_edit {} {
  	set c [$self cwidget]
***************
*** 2522,2527 ****
  	set @tab_repeats 0
  	obj_hist histi= 0
- 	# stores which line is the longest if multiple line
- 	set @longline 1
  	set @max_width 40
  	set @selected? 1
--- 2537,2540 ----
***************
*** 2531,2607 ****
  	set new_size [format %.0f [expr [lindex $font_str 1]*[$@canvas zoom]]]
  	set font_str [lreplace $font_str 1 1 $new_size]
- 	set l {};set nl 1;set newline {-1};set i 0;set width 0
  	foreach char [split $@text ""] {lappend l [scan $char %c]}
! 	foreach val $l {if {$val == 10} {incr nl; lappend newline $i}; incr i}
! 	lappend newline "end"
! 	for {set i 0} {$i < $nl} {incr i} {
! 		set line [string range $@text [expr [lindex $newline $i] + 1] [lindex $newline [expr $i+1]]]
! 		if {[string length $line] > $width} {set width [string length $line]}
! 	}
! 	if {[[$self class] <= AtomBox]} {
! 		set insertbg [$self look bg]
! 		#so don't have red as object bg for now..
! 		set fg "red"
! 	} else {
! 		set insertbg [$self look fg]
! 		set fg [$self look fg]
! 	}
  	if {$width > $@max_width} {set width $@max_width}
! 	if {$width == 0} {set width $@max_width}
! 	text $t -height $nl -width $width -relief flat -bg [$self look bgedit] -borderwidth 0 \
  		-highlightthickness 0 -font $font_str -fg $fg -insertbackground $insertbg -wrap word
! 	#bind $t <Key>            "$self key_input %W %x %y %K %A 0; after 1 \[$self resize %K\]"
! 	bind $t <Key>            "$self key_input %W %x %y %K %A 0"
! 	bind $t <Control-Return> "$self key_input %W %x %y 10 %A 0"
! 	bind $t <Control-v>      "$self paste_resize"
! 	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
- 	mset {cx cy} [$self xy]
  	$self item text window [l+ $@textoffset [$self xy]] -window $t -anchor nw -tags "${self}text $self text"
- 	#$t configure -pady 0 -padx 0
  	$t insert 1.0 $@text
- 	set line_height [$t count -displaylines 1.0 end]
  	$t configure -pady 0 -padx 0
- 	#$t insert 1.0 [$self filter_text 1]
- 	if {[[$self class] <= AtomBox]} {} else {$self resize none}
  	focus $t
  }
  
! def TextBox resize {key} {
  	if {[[$self class] <= AtomBox]} {return}
  	set c [$self cwidget]
  	set t $c.${self}text
! 	$self long_line
! 	set fixed [font metrics [$self look font] -fixed]
! 	#set text [$t get $@longline.0 "$@longline.end + 1 chars"]
! 	set text [$t get 1.0 end]
! 	if {$fixed} {
! 		set width [string length $text]
! 	} else {
! 		set textpix [font measure [$self look font] $text]
! 		set fwidth [font measure [$self look font] 0]
! 		set width [expr (($textpix+$fwidth-1)/$fwidth)+1]
! 	}
! 	set maxwidth $@max_width
! 	#if {$key == "BackSpace"} {set width [expr $width - 2]}
!         mset {y1 y2} [$t yview]
!         set height [$t cget -height]
!         if {$y2-$y1 < 1} {
! 		set height [expr $height/($y2-$y1)]
! 	}
! 	set line_height [$t count -displaylines 1.0 end]
! 	#if {$width < $maxwidth} {set height 1} {set height [expr $width/$maxwidth]}
! 	$t configure -width [min $width $maxwidth] -height $line_height -wrap word
  }
  
  def TextBox key_input {widget x y key iso shift} {
! 	after 0 "$self after_key $widget $key"
  	set c [$@canvas widget]
  	set t $c.${self}text
--- 2544,2574 ----
  	set new_size [format %.0f [expr [lindex $font_str 1]*[$@canvas zoom]]]
  	set font_str [lreplace $font_str 1 1 $new_size]
  	foreach char [split $@text ""] {lappend l [scan $char %c]}
! 	set width [string length $@text]
! 	set height [expr int(ceil($width/$@max_width.0))]; #this don's work well with variable width font..
! 	set insertbg [$self look bg]; set fg [$self look fg]
! 	if {[[$self class] <= AtomBox]} {set fg "red"; set insertbg [$self look bgedit]}
  	if {$width > $@max_width} {set width $@max_width}
! 	text $t -width [expr $width+1] -height $height -relief flat -bg [$self look bgedit] -borderwidth 0 \
  		-highlightthickness 0 -font $font_str -fg $fg -insertbackground $insertbg -wrap word
! 	$self new_bind
  	$@canvas focus= $self
  	$self item text window [l+ $@textoffset [$self xy]] -window $t -anchor nw -tags "${self}text $self text"
  	$t insert 1.0 $@text
  	$t configure -pady 0 -padx 0
  	focus $t
  }
  
! def TextBox resize {} {
  	if {[[$self class] <= AtomBox]} {return}
  	set c [$self cwidget]
  	set t $c.${self}text
! 	set width [$t count -chars 1.0 end]
! 	set height [$t count -displaylines 1.0 end]
! 	$t configure -width [expr [min $width $@max_width]+1] -height $height -wrap word
  }
  
  def TextBox key_input {widget x y key iso shift} {
! 	after 0 "$self after_key $widget"
  	set c [$@canvas widget]
  	set t $c.${self}text
***************
*** 2617,2624 ****
  }
  
! def TextBox after_key {widget key} {
! 	$widget configure -state normal
! 	$self resize $key
! 	#$self long_line
  	$self changed
  }
--- 2584,2590 ----
  }
  
! def TextBox after_key {widget} {
! 	$widget configure -state normal; # for in case there is completion box
! 	$self resize
  	$self changed
  }
***************
*** 2628,2632 ****
  	set c [$self cwidget]
  	set t $c.${self}text
- 	$self long_line
  	set fixed [font metrics [$self look font] -fixed]
  	set text [clipboard get]
--- 2594,2597 ----
***************
*** 2669,2684 ****
  }
  
- #checks which line should be used as the width of the objectbox
- def TextBox long_line {} {
- 	set c [$self cwidget]
- 	set t $c.${self}text
- 	set lines [lindex [$t configure -height] 4]
- 	for {set line 1} {$line <= $lines} {incr line} {
- 		set len [string length [$c.${self}text get $line.0 $line.end]]
- 		set len2 [string length [$c.${self}text get $@longline.0 $@longline.end]]
- 		if {$len > $len2} {set @longline $line}
- 	}
- }
- 
  def TextBox text {} {return $@text}
  
--- 2634,2637 ----
***************
*** 6745,6749 ****
  	bind $@textbox <Return>         "$@textself unedit"
  	bind $@textbox <Tab>            "$@textself key_input %W %x %y %K %A 0"
! 	focus $@textbox; $self delete
  }
  def ClassBrowser delete {} {set @exist 0; super}
--- 6698,6703 ----
  	bind $@textbox <Return>         "$@textself unedit"
  	bind $@textbox <Tab>            "$@textself key_input %W %x %y %K %A 0"
! 	focus $@textbox
! 	$self delete
  }
  def ClassBrowser delete {} {set @exist 0; super}





More information about the Pd-cvs mailing list