Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10066
Modified Files: Tag: devel_0_39 desire.tk Log Message: split classbrowser further into Browser and Completion classes, and fixed a few thing that got brok...
Index: desire.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v retrieving revision 1.1.2.229 retrieving revision 1.1.2.230 diff -C2 -d -r1.1.2.229 -r1.1.2.230 *** desire.tk 12 Jun 2006 05:57:58 -0000 1.1.2.229 --- desire.tk 12 Jun 2006 09:44:28 -0000 1.1.2.230 *************** *** 414,417 **** --- 414,420 ---- set key(crosshair) "" set key(editmodeswitch) "Ctrl+e" + set key(popup_properties) "" + set key(popup_help) "" + set key(popup_open) "" set accels {} ################## set up main window ######################### *************** *** 1057,1061 **** }
! def Client class_browser {} {ClassBrowser new_as browser browser 0 0 ""}
proc menu_audio {flag} {pd pd dsp $flag} --- 1060,1064 ---- }
! def Client class_browser {} {Browser new_as browser browser 0 0 ""}
proc menu_audio {flag} {pd pd dsp $flag} *************** *** 2184,2187 **** --- 2187,2195 ---- global canvas #set canvas(current) $self + if {[winfo exists .completion]} { + puts "WARN!!!!! completion box exists................." + raise .completion + focus .completion.comp + } else { set c .$self.c focus $c *************** *** 2197,2200 **** --- 2205,2210 ---- default {error BORK} } + } + }
*************** *** 3722,3727 ****
############ class browser ! class_new ClassBrowser {Dialog} def* ClassBrowser init {name x y textbox} { set @name $name --- 3732,3746 ----
############ class browser ! # Completion/Browser init can be cleaned up a bit more, do it later... class_new ClassBrowser {Dialog} + class_new Browser {ClassBrowser} + def Browser init {name x y textbox} {super $name $x $y $textbox} + class_new Completion {ClassBrowser} + def Completion init {name x y textbox} {super $name $x $y $textbox} + + + def* ClassBrowser cancel {} {$self _delete} + def* ClassBrowser _delete {} {set @exist 0; super} + def* ClassBrowser init {name x y textbox} { set @name $name *************** *** 3762,3766 **** $listbox selection set 0 0 set @size [$listbox size] ! puts "matches ::: $@size |||| width ::: $@width" }
--- 3781,3786 ---- $listbox selection set 0 0 set @size [$listbox size] ! puts "matches ::: $@size |||| width ::: $@width |||| height ::: $@height" ! wm maxsize .$self [winfo reqwidth .$self.comp] [winfo reqheight .$self.comp] }
*************** *** 3787,3881 **** }
! def* ClassBrowser list_callback {} { global class_list font look $self search_for_externs set class_list [luniq [lsort $class_list]] ! switch $self { ! browser { ! toplevel .$self ! set f .$self.cl ! pack [frame $f] -side top -fill both -expand yes ! pack [label .$self.title -text ""] -side top ! listbox $f.1 -width 50 -height 20 -yscrollcommand "$f.2 set" \ ! -activestyle none ! scrollbar $f.2 -command "$f.1 yview" ! text $f.3 -width 30 -height 20 -yscrollcommand "$f.4 set" ! scrollbar $f.4 -command "$f.3 yview"
! 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 ! pack $f.1 -side left -fill both -expand yes ! pack $f.2 -side left -fill y -expand no ! pack $f.3 -side left -fill both -expand yes ! pack $f.4 -side left -fill y -expand no
! set b .$self.butt ! frame $b ! pack [label $b.1 -text [say filter]] -side left ! pack [entry $b.2 -width 15] -side left ! pack [button $b.close -text [say close] -command "destroy .$self"] -side right ! pack $b -side bottom -fill x -expand no ! $self fill_box "" $f.1 ! #bind $f.1 <Button-1> "after 1 "$self info $f.1 "" ! bind $f.1 <Button-1> "after 1 "$self focus_switch Up $b.2 $f.1 "" ! bind $f.1 <KeyPress> "after 1 "$self focus_switch %K $b.2 $f.1 "" ! #bind $b.2 <KeyPress> {after 1 "$self fill_box [.$self.butt.2 get] $f.1"} ! bind $b.2 <KeyPress> "after 1 "$self focus_switch %K $b.2 $f.1 "" ! #after 1 "focus $b.2" } ! completion { ! toplevel .$self ! #$self test_focus ! #wm overrideredirect .$self 1 ! set canvas $@name ! set f .$self.comp ! set rootx [winfo rootx .$@name.c] ! set rooty [winfo rooty .$@name.c] ! set max [wm maxsize .$self] ! if {[regexp {x([0-9a-z]{6,8})text$} $@textbox textself]} { ! set cut [string first "text" $textself] ! set textself [string range $textself 0 [expr $cut -1]] ! } ! mset {x1 y1 x2 y2} [$textself bbox] ! if {$look(showcomp) <= 20} { ! set @height $look(showcomp)} else {set @height 20} ! listbox $f -width $@width -height $@height -relief flat -bg red -selectbackground yellow \ ! -activestyle dotbox ! $self fill_box [$@textbox get 1.0 1.end] $f ! $f configure -width $@width ! set box_width [winfo reqwidth $f] ! set box_height [winfo reqheight $f] ! pack $f -side left ! .$self configure -width $box_width ! .$self configure -height $box_height ! #test the right edge of the screen, assuming the left edge has enough space ! if {[expr $x1+$rootx+$box_width] < [lindex $max 0]} { ! set box_x [expr $x1+$rootx] ! } else { ! set box_x [expr $x2 - $box_width + $rootx] ! } ! #test the lower edge of the screen, assuming the upper edge has enough space ! if {[expr $y2+$rooty+$box_height] < [lindex $max 1]} { ! set box_y [expr $y2 + 5 + $rooty] ! } else { ! set box_y [expr $y1 - $box_height - 2 + $rooty] ! }
! wm geometry .$self [winfo reqwidth .$self]x[winfo reqheight .$self]+$box_x+$box_y ! bind $f <Button-1> "after 1 "$self focus_switch Up $@textbox $f "" ! bind $f <KeyPress> "$self focus_switch %K $@textbox $f" ! bind $f <Return> "after 1 "$self complete $f "" ! bind Text <Tab> "$self tab $@textbox $f; continue" ! #bind $@textbox <KeyPress> "after 1 "$self focus_switch %K $@textbox $f "" ! bind $@textbox <KeyPress> "$self focus_switch %K $@textbox $f" ! #bind $@textbox <Tab> "after 1 "$self tab %K $@textbox $f "" ! focus .$self.comp ! } ! } }
--- 3807,3906 ---- }
! def* Browser list_callback {} { global class_list font look $self search_for_externs set class_list [luniq [lsort $class_list]] ! ! toplevel .$self ! set f .$self.cl ! pack [frame $f] -side top -fill both -expand yes ! pack [label .$self.title -text ""] -side top ! listbox $f.1 -width 50 -height 20 -yscrollcommand "$f.2 set" \ ! -activestyle none ! scrollbar $f.2 -command "$f.1 yview" ! text $f.3 -width 30 -height 20 -yscrollcommand "$f.4 set" ! scrollbar $f.4 -command "$f.3 yview"
! 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 ! pack $f.1 -side left -fill both -expand yes ! pack $f.2 -side left -fill y -expand no ! pack $f.3 -side left -fill both -expand yes ! pack $f.4 -side left -fill y -expand no
! set b .$self.butt ! frame $b ! pack [label $b.1 -text [say filter]] -side left ! pack [entry $b.2 -width 15] -side left ! pack [button $b.close -text [say close] -command "destroy .$self"] -side right ! pack $b -side bottom -fill x -expand no ! $self fill_box "" $f.1 ! #bind $f.1 <Button-1> "after 1 "$self info $f.1 "" ! bind $f.1 <Button-1> "after 1 "$self focus_switch Up $b.2 $f.1 "" ! bind $f.1 <KeyPress> "after 1 "$self focus_switch %K $b.2 $f.1 "" ! #bind $b.2 <KeyPress> {after 1 "$self fill_box [.$self.butt.2 get] $f.1"} ! bind $b.2 <KeyPress> "after 1 "$self focus_switch %K $b.2 $f.1 "" ! #after 1 "focus $b.2" ! } ! ! def* Completion list_callback {} { ! global class_list font look ! $self search_for_externs ! set class_list [luniq [lsort $class_list]] ! ! toplevel .$self ! wm protocol .$self WM_DELETE_WINDOW "$self cancel" ! #$self test_focus ! #wm overrideredirect .$self 1 ! set canvas $@name ! set f .$self.comp ! set rootx [winfo rootx .$@name.c] ! set rooty [winfo rooty .$@name.c] ! set max [wm maxsize .$self] ! if {[regexp {x([0-9a-z]{6,8})text$} $@textbox textself]} { ! set cut [string first "text" $textself] ! set textself [string range $textself 0 [expr $cut -1]] } ! mset {x1 y1 x2 y2} [$textself bbox] ! if {$look(showcomp) <= 20} { ! set @height $look(showcomp)} else {set @height 20} ! listbox $f -width $@width -height $@height -relief flat -bg $look(canvasbgedit) \ ! -selectbackground [complement $look(objectfg)] -activestyle dotbox -selectforeground $look(objectfg) ! $self fill_box [$@textbox get 1.0 1.end] $f ! $f configure -width $@width ! set box_width [winfo reqwidth $f] ! set box_height [winfo reqheight $f] ! pack $f -side left -expand yes ! .$self configure -width $box_width ! .$self configure -height $box_height ! #test the right edge of the screen, assuming the left edge has enough space ! if {[expr $x1+$rootx+$box_width] < [lindex $max 0]} { ! set box_x [expr $x1+$rootx] ! } else { ! set box_x [expr $x2 - $box_width + $rootx] ! } ! #test the lower edge of the screen, assuming the upper edge has enough space ! if {[expr $y2+$rooty+$box_height] < [lindex $max 1]} { ! set box_y [expr $y2 + 5 + $rooty] ! } else { ! set box_y [expr $y1 - $box_height - 2 + $rooty] ! }
! wm geometry .$self [winfo reqwidth .$self]x[winfo reqheight .$self]+$box_x+$box_y ! bind $f <Button-1> "after 1 "$self focus_switch Up $@textbox $f "" ! bind $f <KeyPress> "$self focus_switch %K $@textbox $f" ! bind $f <Return> "after 1 "$self complete $f "" ! bind Text <Tab> "$self tab $@textbox $f; continue" ! #bind $@textbox <KeyPress> "after 1 "$self focus_switch %K $@textbox $f "" ! bind $@textbox <KeyPress> "$self focus_switch %K $@textbox $f" ! #bind $@textbox <Tab> "after 1 "$self tab %K $@textbox $f "" ! focus .$self.comp ! ! }
*************** *** 3910,3914 **** }
! def ClassBrowser focus_switch {key focus1 focus2} { #focus2 = listbox :: focus1 = whatever if {[regexp {x([0-9a-z]{6,8})text$} $@textbox textself]} { --- 3935,3939 ---- }
! def* ClassBrowser focus_switch {key focus1 focus2} { #focus2 = listbox :: focus1 = whatever if {[regexp {x([0-9a-z]{6,8})text$} $@textbox textself]} { *************** *** 3958,3962 **** puts "------> focus_switch receives $key @ $@focus" #if {[regexp {^[a-zA-Z]{1}$} $key]} {$focus1 insert 1.end $key} ! $self fill_box [$focus1 get 1.0 1.end] $focus2 #hum, no idea why i need after 1 for it to work... after 1 $textself after_key $@textbox --- 3983,3987 ---- puts "------> focus_switch receives $key @ $@focus" #if {[regexp {^[a-zA-Z]{1}$} $key]} {$focus1 insert 1.end $key} ! if {[winfo exists .$self]} {$self fill_box [$focus1 get 1.0 1.end] $focus2} #hum, no idea why i need after 1 for it to work... after 1 $textself after_key $@textbox *************** *** 4026,4030 **** #--------------------------------------- mset {x1 y1 x2 y2} [$self bbox] ! ClassBrowser new_as completion $@canvas $x1 $y1 $widget }
--- 4051,4055 ---- #--------------------------------------- mset {x1 y1 x2 y2} [$self bbox] ! Completion new_as completion $@canvas $x1 $y1 $widget }
*************** *** 4272,4276 **** def Dialog cancel {} {} def Dialog apply {} {} ! def Dialog _delete {} {destroy .$self}
def Dialog init {} { --- 4297,4301 ---- def Dialog cancel {} {} def Dialog apply {} {} ! def* Dialog _delete {} {destroy .$self}
def Dialog init {} {