blob: 03e9b4ee8e40e8055291b4a72d6bb4b6dc79adbd [file] [log] [blame]
# 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
}
}