summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Hunt <hunt@redhat.com>2003-02-10 09:47:52 +0000
committerMartin Hunt <hunt@redhat.com>2003-02-10 09:47:52 +0000
commitd51e124894ba9a18f82ee8bc3486baeb43c3550e (patch)
tree18680f9ac7e5e14c420b035c5c1a5b7f422ae940
parent1fed4a4348ef8b0b8466c3055bccfa475644fd70 (diff)
downloadgdb-d51e124894ba9a18f82ee8bc3486baeb43c3550e.tar.gz
2003-02-10 Martin M. Hunt <hunt@redhat.com>
* library/prefs.tcl (pref_set_defaults): Remove prefs gdb/browser/width, gdb/browser/top_height, gdb/browser/view_height, gdb/browser/view_is_open. Add gdb/browser/layout. * library/browserwin.ith: Update declarations to match changes in browserwin.itb. * library/browserwin.itb (constructor): Don't set toplevel bindings. Set _layout from prefs. (destructor): Don't check $resize_after. Don't save view_is_open. (_build_win): Create a popup menu and bind to button 3. Split the rest into 4 functions; _build_file_frame, _build_filter_frame, _build_function_frame, and _build_view_frame. Pack these 4 frames according to $_layout. (_toggle_more): Deleted. (_bind_toplevel): Deleted. (_do_resize): Deleted. (_resize): Deleted. (_fill_source): Always fill because source is always visible. (_fill_funcs_combo): Limit width of combo to 40 chars. (_build_filter_frame): New function. (_build_file_frame): New function. (_build_function_frame): New function. (_build_view_frame): New function. (_switch_layout): New function. Toggle between layouts. * library/tclIndex: Rebuilt. * library/help/browser.html: Rewrite.
-rw-r--r--gdb/gdbtk/ChangeLog35
-rw-r--r--gdb/gdbtk/library/browserwin.itb833
-rw-r--r--gdb/gdbtk/library/browserwin.ith27
-rw-r--r--gdb/gdbtk/library/help/browser.html127
-rw-r--r--gdb/gdbtk/library/prefs.tcl7
-rw-r--r--gdb/gdbtk/library/tclIndex16
6 files changed, 440 insertions, 605 deletions
diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog
index 41e38d773c8..305051a8d85 100644
--- a/gdb/gdbtk/ChangeLog
+++ b/gdb/gdbtk/ChangeLog
@@ -1,6 +1,39 @@
+2003-02-10 Martin M. Hunt <hunt@redhat.com>
+
+ * library/prefs.tcl (pref_set_defaults): Remove prefs
+ gdb/browser/width, gdb/browser/top_height, gdb/browser/view_height,
+ gdb/browser/view_is_open. Add gdb/browser/layout.
+
+ * library/browserwin.ith: Update declarations to match
+ changes in browserwin.itb.
+
+ * library/browserwin.itb (constructor): Don't set toplevel
+ bindings. Set _layout from prefs.
+ (destructor): Don't check $resize_after. Don't save view_is_open.
+ (_build_win): Create a popup menu and bind to button 3.
+ Split the rest into 4 functions; _build_file_frame,
+ _build_filter_frame, _build_function_frame, and _build_view_frame.
+ Pack these 4 frames according to $_layout.
+ (_toggle_more): Deleted.
+ (_bind_toplevel): Deleted.
+ (_do_resize): Deleted.
+ (_resize): Deleted.
+ (_fill_source): Always fill because source is always visible.
+ (_fill_funcs_combo): Limit width of combo to 40 chars.
+ (_build_filter_frame): New function.
+ (_build_file_frame): New function.
+ (_build_function_frame): New function.
+ (_build_view_frame): New function.
+ (_switch_layout): New function. Toggle between layouts.
+
+ * library/tclIndex: Rebuilt.
+
+ * library/help/browser.html: Rewrite.
+
2003-02-03 Martin M. Hunt <hunt@redhat.com>
- * library/targetselection.itb (TargetSelection::build_win): Remove duplicate label.
+ * library/targetselection.itb (TargetSelection::build_win): Remove
+ duplicate label.
2003-02-03 Martin M. Hunt <hunt@redhat.com>
diff --git a/gdb/gdbtk/library/browserwin.itb b/gdb/gdbtk/library/browserwin.itb
index 5101c0df97e..54c002d1937 100644
--- a/gdb/gdbtk/library/browserwin.itb
+++ b/gdb/gdbtk/library/browserwin.itb
@@ -1,5 +1,5 @@
# Browswer window for Insight.
-# Copyright 1998, 1999, 2001, 2002 Red Hat
+# Copyright 1998, 1999, 2001, 2002, 2003 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License (GPL) as published by
@@ -13,29 +13,26 @@
# ----------------------------------------------------------------------
-# Implements Browser window for gdb
+# Implements Browser window for Insight
#
# ----------------------------------------------------------------------
+option add *BrowserWin.textBackground white
+
# ------------------------------------------------------------------
# CONSTRUCTOR - create new browser window
# ------------------------------------------------------------------
-
-option add *BrowserWin.textBackground white
-
itcl::body BrowserWin::constructor {args} {
+ debug
#eval itk_initialize $args
window_name "Function Browser"
+ set _layout [pref get gdb/browser/layout]
set Current(filename) {}
set Current(function) {}
_build_win
eval itk_initialize $args
-
- # Create the toplevel binding for this class
- bind Configure_Browser_$this <Configure> [code $this _resize]
-
add_hook file_changed_hook [code $this _fill_file_box]
}
@@ -43,20 +40,11 @@ itcl::body BrowserWin::constructor {args} {
# DESTRUCTOR - destroy window containing widget
# ------------------------------------------------------------------
itcl::body BrowserWin::destructor {} {
-
- if {$resize_after != ""} {
- after cancel $resize_after
- }
+ debug
if {$filter_trace_after != ""} {
after cancel $filter_trace_after
}
- if {$MoreVisible} {
- pref set gdb/browser/view_is_open 1
- } else {
- pref set gdb/browser/view_is_open 0
- }
-
remove_hook file_changed_hook [code $this _fill_file_box]
trace vdelete [pref varname gdb/search/last_symbol] \
w [code $this _filter_trace_proc]
@@ -66,312 +54,64 @@ itcl::body BrowserWin::destructor {} {
# METHOD: _build_win - build the main browser window
# ------------------------------------------------------------------
itcl::body BrowserWin::_build_win {} {
- global PREFS_state gdb_ImageDir
-
- # Three frames: regexp, listboxes, and drop-down pane
-
- itk_component add filter {
- iwidgets::labeledframe $itk_interior.filter -labeltext "Filter" \
- -labelrelief groove -labelborderwidth 2 -ipadx 6 -ipady 4
- }
-
- append labelUpdateCode [$itk_component(filter) clientHandlesConfigure 1] "\n"
-
- itk_component add browser {
- frame $itk_interior.browser
- }
-
- itk_component add view {
- frame $itk_interior.view
- }
-
- # Set up the contents of the Filter frame
-
- itk_component add filt_label {
- label [$itk_component(filter) childsite].lbl -text {Show if function } \
- -font global/fixed
- }
-
- itk_component add filt_type {
- combobox::combobox [$itk_component(filter) childsite].type -height 4 \
- -width 15 -editable 0 \
- -command [code $this _set_filter_mode] \
- -font global/fixed
- } { }
-
- # Fill the filter mode combo-box
-
- foreach elem $filter_modes {
- $itk_component(filt_type) list insert end $elem
- }
-
- set cur_filter_mode [pref get gdb/search/filter_mode]
- if {[lsearch $filter_modes $cur_filter_mode] < 0} {
- set cur_filter_mode [lindex $filter_modes 0]
- }
- $itk_component(filt_type) entryset $cur_filter_mode
-
- itk_component add filt_entry {
- entry [$itk_component(filter) childsite].ent -font global/fixed \
- -textvariable [pref varname gdb/search/last_symbol]
- } {}
-
-
- # Watch keystrokes into the entry box and filter on them...
-
- trace variable [pref varname gdb/search/last_symbol] w \
- [code $this _filter_trace_proc]
-
- pack $itk_component(filt_label) -side left
- pack $itk_component(filt_type) -side left -padx 4 -fill y -pady 5
- pack $itk_component(filt_entry) -side right -fill both -expand 1 \
- -padx 6 -pady 5
-
- # Files Listbox for the Browser frame
- itk_component add file_box {
- iwidgets::scrolledlistbox $itk_component(browser).files \
- -selectmode extended -exportselection false \
- -labeltext "Files" -labelpos nw -labelrelief groove \
- -labelborderwidth 2 -ipadx 8 -ipady 6 -foreground $::Colors(textfg) \
- -childsitepos s -hscrollmode none -textbackground $::Colors(textbg)
- } {}
-
- append labelUpdateCode [$itk_component(file_box) clientHandlesConfigure 1] \
- "\n"
-
- bind [$itk_component(file_box) component listbox] <ButtonRelease-1> \
- [code $this _process_file_selection %y]
-
- itk_component add file_sep {
- frame [$itk_component(file_box) childsite].sep -relief raised -height 2 \
- -borderwidth 1
- }
-
- itk_component add file_hide {
- checkbutton [$itk_component(file_box) childsite].hide \
- -text {Hide .h files} \
- -variable [pref varname gdb/browser/hide_h] \
- -command [code $this _file_hide_h]
- }
-
- itk_component add file_all {
- button [$itk_component(file_box) childsite].sel \
- -text {Select All} -width 12 \
- -command [code $this _select 1]
- }
-
- # Pack the file box in, and grid in the separate bits of the child-site.
-
- pack $itk_component(file_box) -side left -fill both -expand yes \
- -padx 5 -pady 5
-
- grid $itk_component(file_sep) -column 0 -row 0 -columnspan 2 \
- -sticky ew -pady 8
- grid $itk_component(file_hide) -column 0 -row 1 -padx 5 -sticky w
- grid $itk_component(file_all) -column 1 -row 1 -padx 5 -sticky e
-
- grid columnconfigure [$itk_component(file_box) childsite] 0 -weight 1
-
- # Functions Listbox for the Browser frame
-
- itk_component add func_box {
- iwidgets::scrolledlistbox $itk_component(browser).funcs \
- -selectmode extended \
- -exportselection false \
- -labeltext "Functions" -labelpos nw -labelrelief groove \
- -labelborderwidth 2 -ipadx 8 -ipady 6 -foreground $::Colors(textfg) \
- -childsitepos s -hscrollmode none -textbackground $::Colors(textbg)
- } {}
-
- append labelUpdateCode [$itk_component(func_box) clientHandlesConfigure 1] \
- "\n"
-
- bind [$itk_component(func_box) component listbox] <ButtonRelease-1> \
- [code $this _process_func_selection %y]
-
- itk_component add func_sep {
- frame [$itk_component(func_box) childsite].sep -relief raised \
- -height 2 -borderwidth 1
- }
-
- itk_component add func_bp_label {
- label [$itk_component(func_box) childsite].bpl -text {Breakpoints:}
- }
-
- itk_component add func_add_bp {
- button [$itk_component(func_box) childsite].abp -text {Set} \
- -command [code $this do_all_bp 1]
- }
-
- itk_component add func_remove_bp {
- button [$itk_component(func_box) childsite].rbp -text {Delete} \
- -command [code $this do_all_bp 0]
- }
-
- # Pack in the Function box, and grid in the bits of the child-site
-
- pack $itk_component(func_box) -side right -fill both -expand yes \
- -padx 5 -pady 5
+ debug
- grid $itk_component(func_sep) -row 0 -column 0 -columnspan 3 \
- -sticky ew -pady 8
- grid $itk_component(func_bp_label) -row 1 -column 0 -padx 5
- grid $itk_component(func_remove_bp) -row 1 -column 1 -padx 5
- grid $itk_component(func_add_bp) -row 1 -column 2 -padx 5
-
- grid columnconfigure [$itk_component(func_box) childsite] 1 -weight 1
- grid columnconfigure [$itk_component(func_box) childsite] 2 -weight 1
-
- # "More" frame for viewing source
-
- if {[lsearch [image names] _MORE_] == -1} {
- image create photo _MORE_ -file [file join $gdb_ImageDir more.gif]
- image create photo _LESS_ -file [file join $gdb_ImageDir less.gif]
- }
-
- itk_component add view_vis {
- frame $itk_interior.view.visible
- }
-
- itk_component add view_more {
- button $itk_component(view_vis).btn -image _MORE_ -relief flat \
- -command [code $this _toggle_more]
- }
-
- itk_component add view_label {
- label $itk_component(view_vis).lbl -text {View Source}
- }
-
- itk_component add view_sep {
- frame $itk_component(view_vis).sep -relief raised -borderwidth 1 -height 2
- }
-
- pack $itk_component(view_more) -side left -padx 10 -pady 10
- pack $itk_component(view_label) -side left -padx 10 -pady 10
- pack $itk_component(view_sep) -padx 4 -pady 10 -fill x -expand 1
-
- grid columnconfigure $itk_component(view_vis) 2 -weight 1
-
- pack $itk_component(view_vis) -side top -fill x -expand yes
-
- # Key bindings for "visible" frames
- bind_plain_key $itk_component(filt_entry) Return [list $this search]
- bind $itk_component(func_box) <3> [code $this _toggle_bp %y]
-
- # Construct hidden frame
-
- itk_component add view_hidden {
- frame $itk_interior.hidden
- }
-
- itk_component add view_src {
- SrcTextWin $itk_component(view_hidden).src -Tracing 0 \
- -parent $this -ignore_var_balloons 1
- } {
- rename -background -textbackground textBackground Background
- }
-
- $itk_component(view_src) configure -textheight 2i
-
- itk_component add view_bottom {
- frame $itk_component(view_hidden).bottom
- }
-
- itk_component add view_name {
- label $itk_component(view_hidden).name -font global/fixed
- }
-
- itk_component add view_func {
- combobox::combobox $itk_component(view_bottom).combo -maxheight 15 \
- -font global/fixed -command [code $this _goto_func]
- } {
- # Should be able to do this, but can't cause the combobox doesn't
- # fake up a MegaWidget well enough
- #rename -background -textbackground textBackground Background
- }
-
- itk_component add view_mode {
- combobox::combobox $itk_component(view_bottom).mode -width 9 \
- -font global/fixed -command [code $this mode]
- } {
- #rename -background -textbackground textBackground Background
- }
-
- itk_component add view_search {
- entry $itk_component(view_bottom).search -borderwidth 2 \
- -font global/fixed -width 10 -background $::Colors(textbg)
+ # popup menu
+ itk_component add popup {
+ menu $itk_interior.pop -tearoff 0
} {}
+ set pop $itk_component(popup)
+ $pop add command -label "Toggle Layout" -command [code $this _switch_layout]
+ $pop add command -label "Help" -command "open_help browser.html"
+ $pop add separator
+ $pop add command -label "Close" -command "destroy [winfo toplevel $itk_interior]"
+ bind [winfo toplevel $itk_interior] <3> "tk_popup $itk_component(popup) %X %Y"
+
+ # Four Main Frames: filter, files, functions, and view (source)
+ # Their layout depends on _layout
+
+ if {$_layout == 1} {
+ set p [cyg::panedwindow $itk_interior.p -orient vertical -height 5i \
+ -width 5i]
+ $p add left
+ set p2 [cyg::panedwindow [$p childsite left].p]
+
+ $p2 add file
+ _build_file_frame [$p2 childsite file]
+
+ $p2 add filter
+ set f [frame [$p2 childsite filter].f]
+ _build_filter_frame $f
+ _build_function_frame $f
+ pack $f -fill both -expand yes
+ pack $p2 -fill both -expand yes
+
+ $p add view
+ _build_view_frame [$p childsite view]
- # Pack all the components of view_hidden into the frame:
-
- pack $itk_component(view_search) -side right -padx 5 -fill none \
- -expand 1 -anchor e
- pack $itk_component(view_mode) -side right -padx 5
- pack $itk_component(view_func) -side left
-
- pack $itk_component(view_name) -side top -fill x -padx 5 -pady 3
- pack $itk_component(view_bottom) -side bottom -fill x -pady 3 -padx 5
- pack $itk_component(view_src) -fill both -expand 1 -padx 5 -pady 3
-
-
- # Fill combo boxes
- $itk_component(view_mode) list insert end SOURCE
- $itk_component(view_mode) list insert end ASSEMBLY
- $itk_component(view_mode) list insert end MIXED
-
- # don't allow SRC+ASM mode... $itk_component(view_mode) insert end SRC+ASM
- $itk_component(view_mode) entryset [$itk_component(view_src) mode_get]
-
- # Key bindings for hidden frame
- bind_plain_key $itk_component(view_search) Return \
- [code $this _search_src forwards]
- bind_plain_key $itk_component(view_search) Shift-Return \
- [code $this _search_src backwards]
-
- # Now map everything onto the screen
- grid $itk_component(filter) -column 0 -row 0 -padx 6 -pady 4 -sticky ew
- grid $itk_component(browser) -column 0 -row 1 -sticky nsew
- grid $itk_component(view) -column 0 -row 2 -pady 4 -padx 6 -sticky ew
+ } else {
+ set p [cyg::panedwindow $itk_interior.p -height 5i -width 5i]
+ $p add top
+ set f [frame [$p childsite top].f]
+ _build_filter_frame $f
- # Now set up any initial values:
+ set browser [cyg::panedwindow $f.p -orient vertical]
+ $browser add file
+ _build_file_frame [$browser childsite file]
+ $browser add function
+ _build_function_frame [$browser childsite function]
- set MoreVisible [pref get gdb/browser/view_is_open]
- set BrowserHeight [pref get gdb/browser/top_height]
- set Width [pref get gdb/browser/width]
+ pack $browser -fill both -expand yes
+ pack $f -fill both -expand yes
- if {$BrowserHeight > 0} {
- grid rowconfigure $itk_component(hull) $componentToRow(browser) \
- -minsize $BrowserHeight
+ $p add view
+ _build_view_frame [$p childsite view]
}
- if {$Width > 0} {
- grid columnconfigure $itk_component(hull) 0 -minsize $Width
- }
-
- grid rowconfigure $itk_component(hull) 1 -weight 1
- grid columnconfigure $itk_component(hull) 0 -weight 1
-
- update idletasks
- eval $labelUpdateCode
-
- if {$MoreVisible} {
- debug "Got moreVisible at 1"
- set MoreVisible 0
- _toggle_more 1
- }
-
# Fill file box
_fill_file_box
- after idle "
- update idletasks
- grid rowconfigure $itk_component(hull) 2 \
- -minsize \[winfo height $itk_component(view)\]
- "
-
- # Finally set up the top level bindings:
- _bind_toplevel 1
-
+ pack $p -fill both -expand yes
}
# ------------------------------------------------------------------
@@ -451,189 +191,6 @@ itcl::body BrowserWin::search {} {
}
# ------------------------------------------------------------------
-# METHOD: _toggle_more
-# Toggle display of source listing
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_toggle_more {{in_constructor 0}} {
-
- debug "Running toggle_more with MoreVisible: $MoreVisible"
- # Temporarily disable the resize bindings before opening the window.
- _bind_toplevel 0
-
- set topHeight [winfo height $_top]
- set topWidth [winfo width $_top]
-
- if {!$MoreVisible} {
-
- $itk_component(view_label) configure -text {Hide Source}
- $itk_component(view_more) configure -image _LESS_
- grid $itk_component(view_hidden) -row 3 -column 0 -sticky nsew \
- -padx 6 -pady 4
-
- # Check the stored height. Restore the view to this if it will fit on the
- # screen. Otherwise, figure out how big to make it...
-
- set height [pref get gdb/browser/view_height]
- set bottom [expr {[winfo y $_top] + $topHeight}]
-
- set extra [expr {[winfo screenheight $_top] - $bottom - 20}]
-
- if {$height < 0} {
- set default [winfo pixels $_top 3i]
- set height [expr {$extra > $default ? $default : $extra}]
- } else {
- set height [expr {$extra > $height ? $height : $extra}]
- }
-
- wm geometry $_top ${topWidth}x[expr {$topHeight + $height}]
- grid rowconfigure $itk_component(hull) $componentToRow(view_hidden) \
- -weight 1
- grid rowconfigure $itk_component(hull) $componentToRow(browser) -weight 0
-
- pref set gdb/browser/view_height $height
-
- set MoreVisible 1
- update idletasks
-
- # If we have a selected function, display it in the window
-
- set f [$itk_component(func_box) getcurselection]
-
- if {$f != ""} {
- # FIXME - If there is more than 1 function selected, I just load the
- # first. It would probably be better to load the one nearest to the
- # middle of the current window on the listbox. But I am running out
- # of time for this round...
-
- if {[llength $f] > 1} {
- set f [lindex $f 0]
- }
-
- _fill_source $f
- } else {
- # If no function was chosen, try the file box...
-
- set f [$itk_component(file_box) getcurselection]
- if { $f != "" } {
- if {[llength $f] > 1} {
- set f [lindex $f 0]
- }
- _fill_source $f 0
- }
- }
- } else {
- if {!$in_constructor} {
- pref set gdb/browser/view_height \
- [winfo height $itk_component(view_hidden)]
- }
-
- $itk_component(view_label) configure -text {View Source}
- $itk_component(view_more) configure -image _MORE_
-
- grid propagate $itk_component(func_box) 0
- grid propagate $itk_component(file_box) 0
-
- set newTopHeight [expr {$topHeight - \
- [winfo height $itk_component(view_hidden)]}]
- wm geometry $_top ${topWidth}x$newTopHeight
-
- if {!$in_constructor} {
- grid rowconfigure $itk_component(hull) $componentToRow(browser) -weight 1
- grid forget $itk_component(view_hidden)
- grid rowconfigure $itk_component(hull) $componentToRow(view_hidden) \
- -minsize 0 -weight 0
- }
-
- set MoreVisible 0
-
- # Flush the changes
-
- update idletasks
-
- grid propagate $itk_component(func_box) 1
- grid propagate $itk_component(file_box) 1
-
- }
-
- # restore the bindings
-
- _bind_toplevel 1
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: _bind_toplevel
-# Setup the bindings for the toplevel.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_bind_toplevel {install} {
-
- set bindings [bindtags $_top]
- if {$install} {
- bindtags $_top [linsert $bindings 0 Configure_Browser_$this]
- } else {
- set bindLoc [lsearch $bindings Configure_Browser_$this]
- bindtags $_top [lreplace $bindings $bindLoc $bindLoc]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _do_resize
-# Does the actual work of the resize.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_do_resize {} {
-
- update idletasks
- debug "Running _do_resize"
-
- set width [winfo width $itk_component(hull)]
- pref set gdb/browser/width $width
- grid columnconfigure $itk_component(hull) 0 -minsize $width
-
- if {$MoreVisible} {
- set v_height [winfo height $itk_component(view_hidden)]
- pref set gdb/browser/view_height $v_height
- grid rowconfigure $itk_component(hull) $componentToRow(view_hidden) \
- -minsize $v_height
- grid rowconfigure $itk_component(hull) $componentToRow(browser)
- } else {
- set b_height [winfo height $itk_component(browser)]
- pref set gdb/browser/top_height $b_height
- grid rowconfigure $itk_component(hull) $componentToRow(browser) \
- -minsize $b_height
- }
-
- eval $labelUpdateCode
- pack propagate $_top 1
-
- set resize_after ""
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: _resize
-# Resize "itk_component(view_hidden)" after all configure events
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_resize {} {
-
- pack propagate $_top 0
-
- if {$MoreVisible} {
- grid rowconfigure $itk_component(hull) $componentToRow(view_hidden) \
- -minsize 0
- } else {
- grid rowconfigure $itk_component(hull) 1 -minsize 0
- }
-
- grid columnconfigure $itk_component(hull) 0 -minsize 0
-
- if {$resize_after != ""} {
- after cancel $resize_after
- }
- set resize_after [after 100 "[code $this _do_resize]"]
-
-}
-
-# ------------------------------------------------------------------
# METHOD: _process_file_selection
# This fills the func combo, and the more window if it
# is currently open with the hit in the File combobox.
@@ -660,7 +217,6 @@ itcl::body BrowserWin::_process_file_selection {y} {
}
search
-
}
# ------------------------------------------------------------------
@@ -680,7 +236,6 @@ itcl::body BrowserWin::_process_func_selection {y} {
set fileName $index_to_file($curIndex)
_fill_source $funcName 1 $fileName
}
-
}
# ------------------------------------------------------------------
@@ -737,7 +292,7 @@ itcl::body BrowserWin::_toggle_bp {y} {
# ------------------------------------------------------------------
# METHOD: _select
-# (Un/Highlight all files in the files list
+# Un/Highlight all files in the files list
# ------------------------------------------------------------------
itcl::body BrowserWin::_select {highlight} {
if {$highlight} {
@@ -765,10 +320,8 @@ itcl::body BrowserWin::_set_filter_mode {w mode} {
# Run when the "Hide .h files" preference is chosen.
# ------------------------------------------------------------------
itcl::body BrowserWin::_file_hide_h {} {
-
_fill_file_box
search
-
}
# ------------------------------------------------------------------
@@ -777,11 +330,6 @@ itcl::body BrowserWin::_file_hide_h {} {
# when needed.
# ------------------------------------------------------------------
itcl::body BrowserWin::_fill_source {f {funcp 1} {filename ""}} {
-
- if {!$MoreVisible } {
- return
- }
-
if {($funcp && [string compare $f $Current(function)]) \
|| [string compare $f $Current(filename)]} {
if {!$funcp} {
@@ -798,7 +346,6 @@ itcl::body BrowserWin::_fill_source {f {funcp 1} {filename ""}} {
lassign $linespec foo funcname name line addr pc_addr lib
set file_changed [string compare $Current(filename) $name]
- # fill srctextwin
if {$file_changed} {
# Set the file name label:
@@ -806,6 +353,7 @@ itcl::body BrowserWin::_fill_source {f {funcp 1} {filename ""}} {
_freeze_me
}
+ # fill srctextwin
$itk_component(view_src) location BROWSE_TAG $name $funcname \
$line $addr $pc_addr lib
@@ -821,7 +369,6 @@ itcl::body BrowserWin::_fill_source {f {funcp 1} {filename ""}} {
}
# Set current function in combo box
$itk_component(view_func) entryset $f
-
}
}
@@ -864,6 +411,7 @@ itcl::body BrowserWin::_goto_func {w {val ""}} {
}
}
}
+
# ------------------------------------------------------------------
# METHOD: _fill_file_box
# This private method fills the file listbox
@@ -888,6 +436,7 @@ itcl::body BrowserWin::_fill_file_box {} {
}
search
}
+
# ------------------------------------------------------------------
# METHOD: _fill_funcs_combo
# This private method fills the functions combo box
@@ -904,7 +453,7 @@ itcl::body BrowserWin::_fill_funcs_combo {name} {
-message "This file can not be found or does not contain\ndebugging information."
return
}
- foreach f [lsort -increasing $listfuncs] {
+ foreach f [lsort $listfuncs] {
lassign $f func mang
if {$func == "global constructors keyed to main"} {continue}
set _mangled_func($func) $mang
@@ -913,6 +462,270 @@ itcl::body BrowserWin::_fill_funcs_combo {name} {
set maxlen [string length $func]
}
}
+ # limit size to 40 chars because if we don't set a reasonable limit
+ # then the combobox can be wider than the screen
+ if {$maxlen > 40} {set maxlen 40}
+
$itk_component(view_func) configure -width [expr {$maxlen + 1}]
}
}
+
+# ------------------------------------------------------------------
+# METHOD: _build_filter_frame
+# This private method builds the filter frame
+# ------------------------------------------------------------------
+itcl::body BrowserWin::_build_filter_frame {parent} {
+
+ itk_component add filter {
+ iwidgets::labeledframe $parent.filter -labeltext "Function Filter" \
+ -relief groove -borderwidth 2 -ipadx 6 -ipady 4
+ }
+
+ # Set up the contents of the Filter frame
+ if {$_layout == 2} {
+ itk_component add filt_label {
+ label [$itk_component(filter) childsite].lbl -text "Show if function " \
+ -font global/fixed
+ }
+ }
+
+ itk_component add filt_type {
+ combobox::combobox [$itk_component(filter) childsite].type -height 4 \
+ -width 15 -editable 0 \
+ -command [code $this _set_filter_mode] \
+ -font global/fixed
+ } {
+ rename -background -textbackground textBackground Background
+ }
+
+ # Fill the filter mode combo-box
+ foreach elem $filter_modes {
+ $itk_component(filt_type) list insert end $elem
+ }
+
+ set cur_filter_mode [pref get gdb/search/filter_mode]
+ if {[lsearch $filter_modes $cur_filter_mode] < 0} {
+ set cur_filter_mode [lindex $filter_modes 0]
+ }
+ $itk_component(filt_type) entryset $cur_filter_mode
+
+ itk_component add filt_entry {
+ entry [$itk_component(filter) childsite].ent -font global/fixed \
+ -textvariable [pref varname gdb/search/last_symbol]
+ } {}
+ bind_plain_key $itk_component(filt_entry) Return [list $this search]
+
+ # Watch keystrokes into the entry box and filter on them...
+ trace variable [pref varname gdb/search/last_symbol] w \
+ [code $this _filter_trace_proc]
+
+ if {$_layout == 2} {
+ pack $itk_component(filt_label) -side left
+ }
+ pack $itk_component(filt_type) -side left -padx 4 -fill y -pady 5
+ pack $itk_component(filt_entry) -side right -fill both -expand 1 \
+ -padx 6 -pady 5
+
+ pack $itk_component(filter) -fill x -anchor n -pady 3
+}
+
+# ------------------------------------------------------------------
+# METHOD: _build_file_frame
+# This private method builds the files frame
+# ------------------------------------------------------------------
+itcl::body BrowserWin::_build_file_frame {parent} {
+
+ # Labeled Frame
+ itk_component add file_frame {
+ iwidgets::labeledframe $parent.file -labeltext "Files" \
+ -relief groove -borderwidth 2 -ipadx 6 -ipady 4
+ }
+
+ # Listbox with files
+ itk_component add file_box {
+ iwidgets::scrolledlistbox [$itk_component(file_frame) childsite].listbox \
+ -selectmode extended -exportselection false \
+ -hscrollmode dynamic -vscrollmode dynamic -foreground $::Colors(textfg) \
+ -textbackground $::Colors(textbg)
+ } {}
+
+ bind [$itk_component(file_box) component listbox] <ButtonRelease-1> \
+ [code $this _process_file_selection %y]
+
+ itk_component add file_sep {
+ frame [$itk_component(file_frame) childsite].sep -relief raised -height 2 \
+ -borderwidth 1
+ }
+
+ itk_component add file_hide {
+ checkbutton [$itk_component(file_frame) childsite].hide \
+ -text "Hide .h files" \
+ -variable [pref varname gdb/browser/hide_h] \
+ -command [code $this _file_hide_h]
+ }
+
+ itk_component add file_all {
+ button [$itk_component(file_frame) childsite].sel \
+ -text "Select All" \
+ -command [code $this _select 1]
+ }
+
+ # pack all the pieces
+ grid $itk_component(file_box) -column 0 -row 0 -columnspan 2 \
+ -sticky news
+ grid $itk_component(file_sep) -column 0 -row 1 -columnspan 2 \
+ -sticky ew -pady 8
+ grid $itk_component(file_hide) -column 0 -row 2 -padx 5 -sticky w
+ grid $itk_component(file_all) -column 1 -row 2 -padx 5 -sticky e
+
+ grid columnconfigure [$itk_component(file_frame) childsite] 0 -weight 1
+ grid rowconfigure [$itk_component(file_frame) childsite] 0 -weight 1
+
+ # finally pack the main frame
+ pack $itk_component(file_frame) -side left -fill both -expand yes
+}
+
+# ------------------------------------------------------------------
+# METHOD: _build_function_frame
+# This private method builds the functions frame
+# ------------------------------------------------------------------
+itcl::body BrowserWin::_build_function_frame {parent} {
+
+ # Labeled Frame
+ itk_component add func_frame {
+ iwidgets::labeledframe $parent.file -labeltext "Function" \
+ -relief groove -borderwidth 2 -ipadx 6 -ipady 4
+ }
+
+ # Functions Listbox
+ itk_component add func_box {
+ iwidgets::scrolledlistbox [$itk_component(func_frame) childsite].listbox \
+ -selectmode extended -hscrollmode dynamic -vscrollmode dynamic \
+ -exportselection false -foreground $::Colors(textfg) \
+ -textbackground $::Colors(textbg)
+ } {}
+
+ bind [$itk_component(func_box) component listbox] <ButtonRelease-1> \
+ [code $this _process_func_selection %y]
+ bind $itk_component(func_box) <3> [code $this _toggle_bp %y]
+
+ itk_component add func_sep {
+ frame [$itk_component(func_frame) childsite].sep -relief raised \
+ -height 2 -borderwidth 1
+ }
+
+ itk_component add func_add_bp {
+ button [$itk_component(func_frame) childsite].abp -text "Set BP" \
+ -command [code $this do_all_bp 1]
+ }
+
+ itk_component add func_remove_bp {
+ button [$itk_component(func_frame) childsite].rbp -text "Delete BP" \
+ -command [code $this do_all_bp 0]
+ }
+
+ # pack all the pieces
+ grid $itk_component(func_box) -column 0 -row 0 -columnspan 2 -sticky news
+ grid $itk_component(func_sep) -row 1 -column 0 -columnspan 2 \
+ -sticky ew -pady 8
+ grid $itk_component(func_remove_bp) -row 2 -column 0 -padx 5 -sticky w
+ grid $itk_component(func_add_bp) -row 2 -column 1 -padx 5 -sticky e
+
+ grid columnconfigure [$itk_component(func_frame) childsite] 0 -weight 1
+ grid rowconfigure [$itk_component(func_frame) childsite] 0 -weight 1
+
+ # finally pack the main frame
+ pack $itk_component(func_frame) -fill both -expand yes
+}
+
+# ------------------------------------------------------------------
+# METHOD: _build_view_frame
+# This private method builds the view frame
+# ------------------------------------------------------------------
+itcl::body BrowserWin::_build_view_frame {parent} {
+ itk_component add view {
+ frame $parent.view
+ }
+
+ itk_component add view_src {
+ SrcTextWin $itk_component(view).src -Tracing 0 \
+ -parent $this -ignore_var_balloons 0
+ } {
+ rename -background -textbackground textBackground Background
+ }
+
+ itk_component add view_bottom {
+ frame $itk_component(view).bottom
+ }
+
+ itk_component add view_name {
+ label $itk_component(view).name -font global/fixed
+ }
+
+ itk_component add view_func {
+ combobox::combobox $itk_component(view_bottom).combo -maxheight 15\
+ -font global/fixed -command [code $this _goto_func]
+ } {
+ rename -background -textbackground textBackground Background
+ }
+
+ itk_component add view_mode {
+ combobox::combobox $itk_component(view_bottom).mode -width 9 \
+ -font global/fixed -command [code $this mode]
+ } {
+ rename -background -textbackground textBackground Background
+ }
+
+ itk_component add view_search {
+ entry $itk_component(view_bottom).search -borderwidth 2 \
+ -font global/fixed -width 10 -background $::Colors(textbg)
+ } {}
+
+ # Pack all the components of view into the frame:
+ pack $itk_component(view_func) -side left -anchor w
+ pack $itk_component(view_mode) -side left -padx 5
+ pack $itk_component(view_search) -side right -padx 5 -expand 1 -anchor e
+ pack $itk_component(view_name) -side top -fill x -padx 5 -pady 3
+ pack $itk_component(view_bottom) -side bottom -fill x -pady 3 -padx 5
+ pack $itk_component(view_src) -fill both -expand 1 -padx 5 -pady 3
+
+ # Fill combo boxes
+ $itk_component(view_mode) list insert end SOURCE
+ $itk_component(view_mode) list insert end ASSEMBLY
+ $itk_component(view_mode) list insert end MIXED
+ # don't allow SRC+ASM mode... $itk_component(view_mode) insert end SRC+ASM
+ $itk_component(view_mode) entryset [$itk_component(view_src) mode_get]
+
+ # Key bindings
+ bind_plain_key $itk_component(view_search) Return \
+ [code $this _search_src forwards]
+ bind_plain_key $itk_component(view_search) Shift-Return \
+ [code $this _search_src backwards]
+
+ pack $itk_component(view) -fill both -expand yes
+}
+
+# ------------------------------------------------------------------
+# METHOD: _switch_layout
+# Switch between different layouts
+#
+# ------------------------------------------------------------------
+itcl::body BrowserWin::_switch_layout {} {
+ # only 2 right now, so toggle
+ if {$_layout == 1} {
+ set _layout 2
+ } else {
+ set _layout 1
+ }
+ pref set gdb/browser/layout $_layout
+ destroy $itk_interior.p
+ destroy $itk_component(popup)
+ set Current(filename) {}
+ set Current(function) {}
+ if {$filter_trace_after != ""} {
+ after cancel $filter_trace_after
+ }
+ trace vdelete [pref varname gdb/search/last_symbol] \
+ w [code $this _filter_trace_proc]
+ _build_win
+}
diff --git a/gdb/gdbtk/library/browserwin.ith b/gdb/gdbtk/library/browserwin.ith
index 00a8f54351b..d10011907de 100644
--- a/gdb/gdbtk/library/browserwin.ith
+++ b/gdb/gdbtk/library/browserwin.ith
@@ -1,5 +1,5 @@
-# Browser window class definition for GDBtk.
-# Copyright 1998, 1999 Cygnus Solutions
+# Browser window class definition for Insight.
+# Copyright 1998, 1999, 2003 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License (GPL) as published by
@@ -25,9 +25,7 @@ itcl::class BrowserWin {
}
private {
- method _bind_toplevel {install}
method _build_win {}
- method _do_resize {}
method _file_hide_h {}
method _fill_file_box {}
method _fill_funcs_combo {name}
@@ -37,25 +35,23 @@ itcl::class BrowserWin {
method _goto_func {w {val ""}}
method _process_file_selection {y}
method _process_func_selection {y}
- method _resize {}
method _search_src {direction}
method _select {highlight}
method _set_filter_mode {w mode}
method _toggle_bp {y}
- method _toggle_more {{in_constructor 0}}
+ method _build_filter_frame {parent}
+ method _build_file_frame {parent}
+ method _build_function_frame {parent}
+ method _build_view_frame {parent}
+ method _switch_layout
variable cur_filter_mode
-
- variable MoreVisible 0; #whether viewing source
- variable TopHalfHeight 0
- variable BottomHalfHeight 0
- variable CollapsedHeight 0; #height of the window when collapsed
variable Current;
variable labelUpdateCode ""
variable index_to_file
variable _mangled_func
- variable resize_after ""
variable filter_trace_after ""
+ variable _layout
common componentToRow
array set componentToRow {
@@ -64,7 +60,7 @@ itcl::class BrowserWin {
view 2
view_hidden 3
}
-
+
common filter_modes [list "starts with" \
"contains" \
"ends with" \
@@ -77,8 +73,5 @@ itcl::class BrowserWin {
"matches regexp" %s
}
}
-
- protected proc dont_remember_size {} {
- return 1
- }
}
+
diff --git a/gdb/gdbtk/library/help/browser.html b/gdb/gdbtk/library/help/browser.html
index a6a731f9925..df9203beedc 100644
--- a/gdb/gdbtk/library/help/browser.html
+++ b/gdb/gdbtk/library/help/browser.html
@@ -3,80 +3,75 @@
<TITLE>Function Browser Help</TITLE>
</HEAD>
<BODY>
-<CENTER><H1>The Function Browser</H1></CENTER>
-<BR>The Function Browser may be used to search for specific functions
+<H1>The Function Browser</H1>
+<img src="images/browser1.png" alt="layout1" width=164 height=171 align="right" border=0>
+<img src="images/browser2.png" alt="layout2" width=164 height=170 align="right" border=0>
+
+<h2>Overview</h2>
+<p>The Function Browser may be used to search for specific functions
in the executable, allowing the user to easily browse through source
code and set and clear breakpoints at anywhere in the executable
-with ease.
-
-<H3><A HREF="#display">Function Browser Display</A></H3>
-<UL>
- <LI><A HREF="#display_search">Searching for a Function</A>
- <LI><A HREF="#display_limit">Limiting the Search</A>
- <LI><A HREF="#display_break">Toggling Breakpoints</A>
- <LI><A HREF="#display_source">Viewing Source Code</A>
-</UL></P>
-
-<H2><A NAME="display">Function Browser Display</A></H2>
-The Function Browser display shows all the current search
-parameters specified by the user: search type, search expression,
-and files to search.
+with ease. Its powerful regular expression searches allow the user
+to easily set breakpoints on multiple functions at once.</p>
+<p>The Function Browser has two different layouts. Both layouts contain the same four sections;
+Files, Function Filter, Functions, and Source Display.</p>
-<H4><A NAME="display_search">Searching for a Function</A></H4>
-To search for a function, enter
-the name of the function into the "Search for" field at the top
-of the Function Browser and press the Enter key on the keyboard
-or press the Search button in the lower right-hand corner. The
-Function Browser searches through every file contained in the
-executable (including libraries and included files) for the
-specified function. If the function is found in the executable's
-symbol table, the Functions listing will contain the function's
-name.
+<h3>Files</h3>
+<p>The Files section displays a list of all the source files. The files are
+read from the debug information in the program being debugged. To see
+the list of functions in a file, click on it. The function list should appear
+in the Functions Display and the source should appear in the Source Display.
+You can select multiple files by using the Control or Shift keys while
+clicking the left mouse button. When multiple files are selected, all the functions in those files
+are displayed in the Functions Display.
+</p>
+<p>At the bottom of the Files Display, you should see a checkbutton labelled "Hide .h files"
+and a button labelled "Select All". Checking "Hide .h files" will remove all
+files ending in ".h" from the Files Display. Clicking "Select All" will select all files
+in the Files Display.</p>
-<H4><A NAME="display_limit">Limiting the Search</A></H4>
-Searches are not confined to one specific function. The Function
-Browser is capable of searching for any function which matches
-the expression entered into the "Search for" field. For example,
-to list all functions which start with the letters c, y, and g,
-enter "cyg" into the search field and press enter. Every function
-which begins with these three letters is displayed. To search
-for all functions which do <I>not</I> begin with the letters "a",
-"b", and "c", enter the regular expression "^[^a-c]" into the search
-field, click the "Use regular expression" checkbox, and then click
-Search (or press the Enter key on the keyboard). The Browser returns
-the names of all matching functions.
+<h3>Function Filter</h3>
+<p>Above the Function Display you should see a section labelled "Function Filter".
+The purpose of this section is to apply a filter to the list of functions in the Functions Display.
+For example, if you click "Select All" in the Files Display, then many hundreds of functions
+could appear in the Functions Display. To see all functions containing the string "print", for example, click on the combobox in the Function Filter and select "contains".
+Then type "print" into the box to the right and hit the enter or return key. You should see the Function
+Display updated with a list of all functions containing "print".</p>
-<P>Additionally, any search may be limited in two more ways:
-the Browser may be configured to search only specified files and
-list only static functions.</P>
+<p>Insight remember what the last filter you used was and will always open the Function
+Browser window with the last filter settings.
+</p>
-<P>To search specific files only, select the files to be searched
-using the Files list. To select all files for searching, click the
-Select All button at the bottom of the Files listing. Note that
-the Select All button changes to Select None, allowing the user to
-deselect all selected files. With no files selected, the Browser
-will search all files in the project.</P>
+<h3>Function Display</h3>
+<p>The Function Display contains the list of functions in the files that have been
+selected in the Files Display, after running them through any filter settings in the Filter Display.
+There are two buttons at the bottom of the display that allow you so set or delete breakpoints on every function
+in the Function Display in one operation.
+</p>
+<p>For example, to set a breakpoint of every function name containing "print", follow the example in the Function Filter section to
+get a list of all functions containing "print". Then simply click the "Set BP" button.</p>
-<P>To search for static functions only, click the "Only show
-functions declared 'static'" before searching.</P>
+<h3>Source Display</h3>
+<p>The Source Display shows the source code for any file selected in the File Display. If a function
+is selected in the Function Display, the first line of that function containing
+executable code will be highlighted. If no source file is found, then the function will be
+displayed disassembled.</p>
-<H4><A NAME="display_break">Toggling Breakpoints</A></H4>
-There are numerous ways to toggle
-breakpoints on functions using the Function Browser. To toggle the
-breakpoint at all listed matches in the Functions list, press the
-Toggle Breakpoint button. To toggle a breakpoint at some subset
-of functions listed in the Functions list, click the right mouse
-button on each function's name in the list. The last way to toggle
-breakpoints using the function browser involves viewing the function's
-source code.
+<p>At the bottom of the window are two comboboxes and a text field. The combobox on the far left
+contains the function name or file location to display. Normally this is just output for your information, however
+you can type the name of any function into this box to see its source.
+</p>
+<p>To the right of this is another combobox that allows you to toggle between source and assembly.
+</p>
+<p>To the far right is an empty field. You can type a string in it and hit enter to
+search the current source file for any string.</p>
+<p>In the source window itself, you can set breakpoints just like the source window.</p>
+<h3>Popup Menu</h3>
+<p>If you click the right mouse button while over the File Browser, you should get a simple menu
+with three options; <i>Toggle Layout</i>, <i>Help</i>, and <i>Close</i>. <i>Toggle Layout</i>
+switches you between the two different Browser Window layouts. Choose the one you like best;
+Insight will remember it between sessions. <i>Help</i> pops up this help window. <i>Close</i> closes the Function Browser.
+</p>
-<H4><A NAME="display_source">Viewing Source Code</A></H4>
-To view the source code for a function,
-select the function in the Functions list and click the "View Source"
-dropdown (if it is not already dropped down). A Source Viewer
-similar to the <A HREF="source.html#display">Source Window Display</A>
-appears at the bottom. Toggle breakpoints as described in
-<A HREF="source.html#setting_a_breakpoint">Setting a Breakpoint</A>
-in <A HREF="source.html">Source Window Help</A>.
</BODY>
</HTML>
diff --git a/gdb/gdbtk/library/prefs.tcl b/gdb/gdbtk/library/prefs.tcl
index b25d0b63da8..7e70f560acd 100644
--- a/gdb/gdbtk/library/prefs.tcl
+++ b/gdb/gdbtk/library/prefs.tcl
@@ -1,5 +1,5 @@
# Local preferences functions for Insight.
-# Copyright 1997, 1998, 1999, 2002 Red Hat
+# Copyright 1997, 1998, 1999, 2002, 2003 Red Hat
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License (GPL) as published by
@@ -376,10 +376,7 @@ proc pref_set_defaults {} {
pref define gdb/search/filter_mode "starts with"
pref define gdb/browser/hide_h 0
- pref define gdb/browser/width 0
- pref define gdb/browser/top_height 0
- pref define gdb/browser/view_height -1
- pref define gdb/browser/view_is_open 0
+ pref define gdb/browser/layout 2
# BP (breakpoint)
pref define gdb/bp/show_threads 0
diff --git a/gdb/gdbtk/library/tclIndex b/gdb/gdbtk/library/tclIndex
index 46650fbfa8f..657c54d226e 100644
--- a/gdb/gdbtk/library/tclIndex
+++ b/gdb/gdbtk/library/tclIndex
@@ -30,6 +30,7 @@ set auto_index(echo) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_fputs_error) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_fputs_log) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_fputs_target) [list source [file join $dir interface.tcl]]
+set auto_index(gdbtk_tcl_fputs_target_err) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_flush) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_start_variable_annotation) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_end_variable_annotation) [list source [file join $dir interface.tcl]]
@@ -85,6 +86,7 @@ set auto_index(gdbtk_signal) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_clear_file) [list source [file join $dir interface.tcl]]
set auto_index(initialize_gdbtk) [list source [file join $dir interface.tcl]]
set auto_index(gdbtk_tcl_architecture_changed) [list source [file join $dir interface.tcl]]
+set auto_index(gdbtk_console_read) [list source [file join $dir interface.tcl]]
set auto_index(LocalsWin) [list source [file join $dir locals.tcl]]
set auto_index(ModalDialog) [list source [file join $dir modal.tcl]]
set auto_index(pref_read) [list source [file join $dir prefs.tcl]]
@@ -139,7 +141,6 @@ set auto_index(Block) [list source [file join $dir blockframe.ith]]
set auto_index(Frame) [list source [file join $dir blockframe.ith]]
set auto_index(BpWin) [list source [file join $dir bpwin.ith]]
set auto_index(BrowserWin) [list source [file join $dir browserwin.ith]]
-set auto_index(::BrowserWin::dont_remember_size) [list source [file join $dir browserwin.ith]]
set auto_index(Console) [list source [file join $dir console.ith]]
set auto_index(DebugWin) [list source [file join $dir debugwin.ith]]
set auto_index(DebugWinDOpts) [list source [file join $dir debugwin.ith]]
@@ -225,10 +226,6 @@ set auto_index(::BrowserWin::_filter_trace_proc) [list source [file join $dir br
set auto_index(::BrowserWin::_filter_trace_after) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::_search_src) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::search) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_toggle_more) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_bind_toplevel) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_do_resize) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_resize) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::_process_file_selection) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::_process_func_selection) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::do_all_bp) [list source [file join $dir browserwin.itb]]
@@ -241,6 +238,11 @@ set auto_index(::BrowserWin::mode) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::_goto_func) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::_fill_file_box) [list source [file join $dir browserwin.itb]]
set auto_index(::BrowserWin::_fill_funcs_combo) [list source [file join $dir browserwin.itb]]
+set auto_index(::BrowserWin::_build_filter_frame) [list source [file join $dir browserwin.itb]]
+set auto_index(::BrowserWin::_build_file_frame) [list source [file join $dir browserwin.itb]]
+set auto_index(::BrowserWin::_build_function_frame) [list source [file join $dir browserwin.itb]]
+set auto_index(::BrowserWin::_build_view_frame) [list source [file join $dir browserwin.itb]]
+set auto_index(::BrowserWin::_switch_layout) [list source [file join $dir browserwin.itb]]
set auto_index(::Console::constructor) [list source [file join $dir console.itb]]
set auto_index(::Console::destructor) [list source [file join $dir console.itb]]
set auto_index(::Console::_build_win) [list source [file join $dir console.itb]]
@@ -255,6 +257,8 @@ set auto_index(::Console::_next) [list source [file join $dir console.itb]]
set auto_index(::Console::_last) [list source [file join $dir console.itb]]
set auto_index(::Console::_first) [list source [file join $dir console.itb]]
set auto_index(::Console::_setprompt) [list source [file join $dir console.itb]]
+set auto_index(::Console::gets) [list source [file join $dir console.itb]]
+set auto_index(::Console::_cancel) [list source [file join $dir console.itb]]
set auto_index(::Console::activate) [list source [file join $dir console.itb]]
set auto_index(::Console::invoke) [list source [file join $dir console.itb]]
set auto_index(::Console::_delete) [list source [file join $dir console.itb]]
@@ -418,12 +422,12 @@ set auto_index(::RegWin::_delete_from_display) [list source [file join $dir regw
set auto_index(::RegWin::_display_all) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_edit) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_move) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_post_menu) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_select_cell) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_unedit) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_get_value) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_change_format) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::_update_register) [list source [file join $dir regwin.itb]]
+set auto_index(::RegWin::_select_group) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::arch_changed) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::busy) [list source [file join $dir regwin.itb]]
set auto_index(::RegWin::idle) [list source [file join $dir regwin.itb]]