URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [insight/] [gdb/] [gdbtcl/] [pluginwin.itcl] - Rev 1765
Compare with Previous | Blame | View Log
# PluginWindow# Copyright 2001 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 menu and a toolbar that are attached to a source window.## PUBLIC ATTRIBUTES:### METHODS:## configure ....... used to change public attributes## PRIVATE METHODS## X11 OPTION DATABASE ATTRIBUTES### ----------------------------------------------------------------------class PluginWindow {inherit ManagedWin GDBEventHandler# ------------------------------------------------------------------# CONSTRUCTOR - create widget# ------------------------------------------------------------------constructor {args} {# Create a menu widget for the plug-in windowset menubar [GDBMenuBar $itk_interior.menubar]# Create a toolbar widget for the plug-in windowset toolbar [GDBToolBar $itk_interior.toolbar]# Pack the toolbarpack $toolbar -expand 1 -fill both# Create a frame for the subclass to useset child [frame $itk_interior.child]# Pack the childsitepack $child -expand 1 -fill botheval itk_initialize $argsadd_hook gdb_no_inferior_hook [code $this no_inferior]}# ------------------------------------------------------------------# DESTRUCTOR - destroy window containing widget# ------------------------------------------------------------------destructor {remove_hook gdb_no_inferior_hook [code $this no_inferior]#destroy $this}# ------------------------------------------------------------------# ACCESSOR METHOD - Retrieve childsite# ------------------------------------------------------------------public method childsite {} {return $child}###################################################################### State control methods used by both the menu and the toolbar###################################################################### ------------------------------------------------------------------# METHOD: idle - handle IdleEvent# ------------------------------------------------------------------protected method idle {event} {debug "PluginWindow::idle"enable_ui 1}# ------------------------------------------------------------------# METHOD: busy - BusyEvent handler# Invoked when gdb is going to run the inferior# ------------------------------------------------------------------public method busy {event} {debug "PluginWindow::busy"enable_ui 0}# ------------------------------------------------------------------# METHOD: no_inferior# Invoked when gdb detects the inferior is gone# ------------------------------------------------------------------protected method no_inferior {} {debugenable_ui 2}##################################################################### The following method enables/disables both menus and buttons.##################################################################### ------------------------------------------------------------------# METHOD: enable_ui - enable/disable the appropriate buttons and menus# Called from the busy, idle, and no_inferior hooks.## on must be:# value Control Other State# 0 off off gdb is busy# 1 on on gdb has inferior, and is idle# 2 off on gdb has no inferior, and is idle# ------------------------------------------------------------------public method enable_ui {on} {global tcl_platformdebug "$on"# Do the enabling so that all the disabling happens first, this way if a# button belongs to two groups, enabling takes precedence, which is# probably right.switch $on {0 {# Busyset enable_list {Control disabled \Other disabled}}1 {# Idle, with inferiorset enable_list {Control normal \Other normal}}2 {# Idle, no inferiorset enable_list {Control disabled \Other normal}}default {debug "Unknown type: $on in enable_ui"return}}$menubar set_class_state $enable_list$toolbar set_class_state $enable_list}###################################################################### PRIVATE DATA###################################################################### The childsiteprivate variable child###################################################################### PROTECTED DATA###################################################################### The GdbMenuBar componentprotected variable menubar# The GdbToolBar componentprotected variable toolbar###################################################################### PUBLIC DATA###################################################################### None.}
