| # 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 |
| } |
| } |