# 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
# the Free Software Foundation; either version 2 of the License, or (at
# your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

itcl::class BrowserWin {
 inherit EmbeddedWin

  public {
    method constructor {args}
    method destructor {}
    method mode {w {mode ""} {go 1}}
    method search {}
    method test_get {var}
    method do_all_bp {onp}

  }

  private {
    method _build_win {}
    method _file_hide_h {}
    method _fill_file_box {}
    method _fill_funcs_combo {name}
    method _fill_source {f {funcp 1} {filename ""}}
    method _filter_trace_proc {v1 v2 mode}
    method _filter_trace_after {}
    method _goto_func {w {val ""}}
    method _process_file_selection {y}
    method _process_func_selection {y}
    method _search_src {direction}
    method _select {highlight}
    method _set_filter_mode {w mode}
    method _toggle_bp {y}
    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 Current;
    variable labelUpdateCode ""
    variable index_to_file
    variable _mangled_func
    variable filter_trace_after ""
    variable _layout

    common componentToRow
    array set componentToRow {
      filter      0
      browser     1
      view        2
      view_hidden 3
    }
    
    common filter_modes [list "starts with" \
			   "contains" \
			   "ends with" \
			   "matches regexp"]
    common filter_regexp
    array set filter_regexp {
      "starts with" ^%s
      "contains" %s
      "ends with" %s$
      "matches regexp" %s
    }
  }
}

