# Source window class definition for GDBtk. # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 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. # ---------------------------------------------------------------------- # Implements a source display widget using primitive widgets as the # building blocks. # # The main display for SrcWin is a SrcTextWin widget. This file # should contain all the code for controlling the SrcTextWin. # SrcTextWin should just display the requested file and lines, without # having to be very intelligent. If there are problems, error codes # should be returned and SrcWin should figure out what to do. # ---------------------------------------------------------------------- itcl::class SrcWin { inherit TopLevelWin GDBWin public { method constructor {args} method destructor {} method download_progress { section num tot {msg ""} } method edit {} method enable_ui { on } method fillNameCB {} method fillFuncCB {name} method goto_func {w {val ""}} method location {tag linespec} method mode {w new_mode {go 1}} method no_inferior {} method print {} method reconfig {} method reset {} method set_status { {msg ""} {tmp 0} } method set_execution_status { {line ""} {pc ""}} method stack {cmd} method test_get {var {private_func 0}} method toggle_updates {value} method toolbar {state} method inferior {action} method clear_file {} method get_file {} method is_fixed {} method search {direction string} proc choose_and_update {} proc choose_and_display {tag linespec} proc point_to_main {} # # GDB Events # method busy {event} method idle {event} method update {event} } private { method _build_win {} method _exit {} method _name {w {val ""}} method _set_name { val {found 1} } method _set_state {varname} method _update_title {name} method _update {loc} method get_top {} method _set_tag_to_stack {} proc _choose_window {file} variable _statbar variable _status variable _toolbar variable _statusframe variable top variable twin variable current variable need_files 0 variable do_updates 1 ;# if the window does updates variable _mangled_func variable Tracing variable saved_msg "" ;# static # statics used for downloads variable last_section "" variable last_section_start 0 variable last_done 0 # These keep track of the current PC window and the list of all # source windows. common window_list "" common pc_window "" # fenceposts variable Running 0 variable NoRun 0 } }