Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20887
Modified Files: Tag: desiredata desire.tk Log Message: fixed selecting from history in class History
Index: desire.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v retrieving revision 1.1.2.600.2.282 retrieving revision 1.1.2.600.2.283 diff -C2 -d -r1.1.2.600.2.282 -r1.1.2.600.2.283 *** desire.tk 4 Aug 2007 18:48:47 -0000 1.1.2.600.2.282 --- desire.tk 4 Aug 2007 20:12:31 -0000 1.1.2.600.2.283 *************** *** 457,484 **** def History init {size} { set @size $size ! set @hist {} set @histi -1 - set @hist_on 0 - set @tmp_text {} }
- def History hist_on= {val} {set @hist_on $val} def History histi= {val} {set @histi $val}
def History prepend {stuff} { ! set @hist [linsert $@hist 0 $stuff] if {[llength $@hist] >= $@size} {set @hist [lrange $@hist 0 [expr $@size-1]]} - puts "hist::: $@hist" }
! def History traverse {incr tmp_text} { ! puts "hist_on :::::::: $@hist_on" ! if {![llength $@hist]} {return} ! set find [lsearch $@hist $@tmp_text] ! #what if the tmp_text is well formed?? ! if {$find >= 0 && !$@hist_on} {set @hist [lreplace $@hist $find $find]; puts "REMOVE::: $@tmp_text"} ! set @tmp_text $tmp_text ! if {$tmp_text != "" && !$@hist_on} {lappend @hist $tmp_text; set @hist_on 1; puts "ADD::: $@tmp_text"} ! puts "history:::: $@hist" set @histi [expr $@histi + $incr] set mod [expr ([llength $@hist]<[expr $@size+1]) ?[llength $@hist]:[expr $@size+1]] --- 457,475 ---- def History init {size} { set @size $size ! set @hist {{}} set @histi -1 }
def History histi= {val} {set @histi $val} + def History histi {} {return $@histi} + + def History set_hist {idx stuff} {set @hist [lreplace $@hist $idx $idx $stuff]}
def History prepend {stuff} { ! set @hist [linsert $@hist 1 $stuff] if {[llength $@hist] >= $@size} {set @hist [lrange $@hist 0 [expr $@size-1]]} }
! def History traverse {incr} { set @histi [expr $@histi + $incr] set mod [expr ([llength $@hist]<[expr $@size+1]) ?[llength $@hist]:[expr $@size+1]] *************** *** 2290,2296 **** set @edit 1 set @tab_repeats 0 ! set @tmp_text {} ! obj_hist hist_on= 0 ! obj_hist histi= -1 # stores which line is the longest if multiple line set @longline 1 --- 2281,2285 ---- set @edit 1 set @tab_repeats 0 ! obj_hist histi= 0 # stores which line is the longest if multiple line set @longline 1 *************** *** 2362,2366 **** set t $c.${self}text if {[[$self class] <= AtomBox]} {if {$@clear} {$t delete 1.0 1.end; set @clear 0}} - if {[regexp {^[a-zA-Z0-9]$} $key k]} {set @tmp_text [$t get 1.0 1.end]$key} switch -- $key { Tab { --- 2351,2354 ---- *************** *** 2382,2387 **** set c [$self cwidget] set t $c.${self}text $t delete 1.0 1.end ! set text [obj_hist traverse $incr $@tmp_text] $t insert 1.0 $text $t configure -width [string length $text] --- 2370,2376 ---- set c [$self cwidget] set t $c.${self}text + if {![obj_hist histi]} {obj_hist set_hist 0 [$t get 1.0 1.end]} $t delete 1.0 1.end ! set text [obj_hist traverse $incr] $t insert 1.0 $text $t configure -width [string length $text] *************** *** 3332,3339 **** bind $f.entry <Control-g> "$self unpack_prompt" bind $f.entry <Return> "$self eval" ! bind $f.entry <Up> "$self up" ! bind $f.entry <Down> "$self down" ! bind $f.entry <Control-p> "$self up" ! bind $f.entry <Control-n> "$self down" bind $f.entry <Tab> "$self completion +" switch $::tcl_platform(os) { --- 3321,3328 ---- bind $f.entry <Control-g> "$self unpack_prompt" bind $f.entry <Return> "$self eval" ! bind $f.entry <Up> "$self scroll_history +1" ! bind $f.entry <Down> "$self scroll_history -1" ! bind $f.entry <Control-p> "$self scroll_history +1" ! bind $f.entry <Control-n> "$self scroll_history -1" bind $f.entry <Tab> "$self completion +" switch $::tcl_platform(os) { *************** *** 3368,3372 **** if {[winfo exists $f.completion]} { set l [string range $@comp 0 [expr [string first ":" $@comp 0]-1]] - $@history prepend $l $self replace $l destroy $f.completion --- 3357,3360 ---- *************** *** 6296,6301 **** def Listener init {serf name command} { set @history [History new 20] - set @hist {} - set @histi 0 set @command $command set @expanded 0 --- 6284,6287 ---- *************** *** 6308,6313 **** pack [entry $serf.entry -width 40 -font $::look(View:font)] -side left -fill x -expand yes pack $serf -fill x -expand no ! bind $serf.entry <Up> "$self up" ! bind $serf.entry <Down> "$self down" bind $serf.entry <Return> "$self eval" } --- 6294,6299 ---- pack [entry $serf.entry -width 40 -font $::look(View:font)] -side left -fill x -expand yes pack $serf -fill x -expand no ! bind $serf.entry <Up> "$self scroll_history +1" ! bind $serf.entry <Down> "$self scroll_history -1" bind $serf.entry <Return> "$self eval" } *************** *** 6347,6352 **** }
! def Listener up {} {$self replace [$@history traverse +1 [$self get_command]]} ! def Listener down {} {$self replace [$@history traverse -1 [$self get_command]]}
def Listener append {v} { --- 6333,6341 ---- }
! def Listener scroll_history {incr} { ! if {![$@history histi]} {$@history set_hist 0 [$self get_command]} ! $self replace [$@history traverse $incr] ! ! }
def Listener append {v} { *************** *** 6367,6371 **** def Listener eval {} { set e $@serf.entry ! $@history hist_on= 0; $@history histi= -1 set l [$self get_command] $self append $l --- 6356,6360 ---- def Listener eval {} { set e $@serf.entry ! $@history histi= 0 set l [$self get_command] $self append $l