[PD-cvs] pd/src desire.tk,1.1.2.172,1.1.2.173
Mathieu Bouchard
matju at users.sourceforge.net
Fri Apr 21 23:41:09 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11622
Modified Files:
Tag: devel_0_39
desire.tk
Log Message:
class name completions
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.172
retrieving revision 1.1.2.173
diff -C2 -d -r1.1.2.172 -r1.1.2.173
*** desire.tk 21 Apr 2006 09:03:20 -0000 1.1.2.172
--- desire.tk 21 Apr 2006 21:41:07 -0000 1.1.2.173
***************
*** 42,45 ****
--- 42,56 ----
}
+ proc luniq {a} {
+ set r {}
+ set last ""
+ set i 0
+ foreach x $a {
+ if {$i && [string compare $last $x]} {lappend r $x}
+ incr i; set last $x
+ }
+ return $r
+ }
+
#-----------------------------------------------------------------------------------#
# Observer pattern
***************
*** 1339,1345 ****
--- 1350,1360 ----
def* textbox key {widget x y key iso shift} {
after 0 "$self after_key $widget"
+ switch -- $key {
+ Tab {$self propose_completions; $widget configure -state disabled}
+ }
}
def* textbox after_key {widget} {
+ $widget configure -state normal
set @text [$widget get 1.0 1.end]
$self update_size
***************
*** 3167,3174 ****
set tooltip(visible) 0
set tooltip(text) ""
! def Canvas show_tooltip {x y text} {
global tooltip
! if {$tooltip(visible) && [string compare $text $tooltip(text)==0]} {return}
$self hide_tooltip
set border 4
--- 3182,3190 ----
set tooltip(visible) 0
set tooltip(text) ""
+ set tooltip(on_hide) ""
! def* Canvas show_tooltip {x y text {on_hide ""}} {
global tooltip
! if {$tooltip(visible) && [string compare $text $tooltip(text)]==0} {return}
$self hide_tooltip
set border 4
***************
*** 3189,3192 ****
--- 3205,3209 ----
set tooltip(visible) 1
set tooltip(text) $text
+ set tooltip(on_hide) $on_hide
}
***************
*** 3196,3199 ****
--- 3213,3217 ----
$c delete tooltip_bg tooltip_fg
set tooltip(visible) 0
+ if {$tooltip(on_hide) != ""} {$self $tooltip(on_hide)}
}
***************
*** 3211,3215 ****
set n 0
$f.1 delete 0 end
! foreach class [lsort $class_list] {
if {[string length $s]==0 || [string first $s $class]>=0} {
$f.1 insert end "$class"
--- 3229,3233 ----
set n 0
$f.1 delete 0 end
! foreach class [luniq [lsort $class_list]] {
if {[string length $s]==0 || [string first $s $class]>=0} {
$f.1 insert end "$class"
***************
*** 3245,3249 ****
frame $f.5
! button $f.5.help -text [say help] -command {pd pd help [$f.1 get [$f.1 curselection]]}
pack $f.5.help -side top
pack $f.5 -side left -fill y -expand no
--- 3263,3267 ----
frame $f.5
! button $f.5.help -text [say help] -command "pd pd help \[$f.1 get \[$f.1 curselection\]\]"
pack $f.5.help -side top
pack $f.5 -side left -fill y -expand no
***************
*** 3288,3321 ****
############ completions
! set completion_closure {}
!
! proc propose_completions {self canvas x y text} {
! global class_list completion_closure
! set completion_closure [list $self $canvas $x $y $text]
! pd pd update-class-list propose_completions2
if {![info exists class_list]} {
post_to_gui "loading class list..."
!
! } else {
! propose_completions2
}
- }
-
- proc propose_completions2 {} {
- global class_list completion_closure
- mset {self canvas x y text} $completion_closure
set r {}
set n 0
! foreach class [lsort $class_list] {
! if {[string length $text]==0 || [string first $text $class]>=0} {
! lappend r $class
incr n
}
! if {$n > 20} {lappend r ...; break}
}
#post_to_gui "$r\n"
! set r [string map {" " "\n"} $r]
! global tooltip
! show_canvas_tooltip $self $canvas $x $y $r
}
--- 3306,3334 ----
############ completions
! def textbox propose_completions {} {
! global class_list
if {![info exists class_list]} {
+ pd pd update-class-list $self propose_completions
post_to_gui "loading class list..."
! return
}
set r {}
set n 0
! set prev ""
! foreach class [luniq [lsort $class_list]] {
! if {[string length $@text]==0 || [string first $@text $class]>=0} {
! if {[string compare [say $class] "{{$class}}"]} {
! lappend r "$class : [say $class]"
! } {
! lappend r $class
! }
incr n
}
! if {$n > 16} {lappend r ...; break}
}
#post_to_gui "$r\n"
! set r [join $r "\n"]
! mset {x1 y1 x2 y2} [$self bbox]
! $@canvas show_tooltip $x2 $y1 $r
}
More information about the Pd-cvs
mailing list