⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.itk

📁 windows下的GDB insight前端
💻 ITK
字号:
## Mainwindow# ----------------------------------------------------------------------# This class implements a mainwindow containing a menubar, toolbar,# mousebar, childsite, status line, and help line.  Each item may# be filled and configured to suit individual needs.## ----------------------------------------------------------------------#  AUTHOR: Mark L. Ulferts              EMAIL: mulferts@austin.dsccc.com##  @(#) RCS: $Id: mainwindow.itk,v 1.2 2001/08/07 19:56:48 smithc Exp $# ----------------------------------------------------------------------#            Copyright (c) 1997 DSC Technologies Corporation# ======================================================================# Permission to use, copy, modify, distribute and license this software # and its documentation for any purpose, and without fee or written # agreement with DSC, is hereby granted, provided that the above copyright # notice appears in all copies and that both the copyright notice and # warranty disclaimer below appear in supporting documentation, and that # the names of DSC Technologies Corporation or DSC Communications # Corporation not be used in advertising or publicity pertaining to the # software without specific, written prior permission.# # DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-# INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE# AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL # DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS # SOFTWARE.# ======================================================================# ------------------------------------------------------------------#                             MAINWINDOW# ------------------------------------------------------------------itcl::class iwidgets::Mainwindow {    inherit iwidgets::Shell    constructor {args} {}    itk_option define -helpline helpLine HelpLine 1    itk_option define -statusline statusLine StatusLine 1    public {	method childsite {}	method menubar {args}	method mousebar {args}	method msgd {args}	method toolbar {args}    }    protected {	method _exitCB {}	common _helpVar	common _statusVar    }}## Provide a lowercased access method for the ::iwidgets::Mainwindow class.# proc iwidgets::mainwindow {pathName args} {    uplevel ::iwidgets::Mainwindow $pathName $args}# ------------------------------------------------------------------#                           CONSTRUCTOR# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::constructor {args} {    itk_option add hull.width hull.height    pack propagate $itk_component(hull) no    wm protocol $itk_component(hull) WM_DELETE_WINDOW [itcl::code $this _exitCB]    #    # Create a menubar, renaming the font, foreground, and background    # so they may be separately set.  The help variable will be setup    # as well.    #    itk_component add menubar {	iwidgets::Menubar $itk_interior.menubar \	  -helpvariable [itcl::scope _helpVar($this)]     } {	keep -disabledforeground -cursor \	    -highlightbackground -highlightthickness	rename -font \	    -menubarfont menuBarFont Font	rename -foreground \	    -menubarforeground menuBarForeground Foreground	rename -background \	    -menubarbackground menuBarBackground Background    }    #    # Add a toolbar beneath the menubar.    #    itk_component add toolbar {	iwidgets::Toolbar $itk_interior.toolbar -orient horizontal \	    -helpvariable [itcl::scope _helpVar($this)]     } {	keep -balloonbackground -balloondelay1 -balloondelay2 \	    -balloonfont -balloonforeground -disabledforeground -cursor \	    -highlightbackground -highlightthickness	rename -font -toolbarfont toolbarFont Font	rename -foreground -toolbarforeground toolbarForeground Foreground	rename -background -toolbarbackground toolbarBackground Background    }    #    # Add a mouse bar on the left.      #    itk_component add mousebar {	iwidgets::Toolbar $itk_interior.mousebar -orient vertical \	    -helpvariable [itcl::scope _helpVar($this)]     } {	keep -balloonbackground -balloondelay1 -balloondelay2 \	    -balloonfont -balloonforeground -disabledforeground -cursor \	    -highlightbackground -highlightthickness	rename -font -toolbarfont toolbarFont Font	rename -foreground -toolbarforeground toolbarForeground Foreground	rename -background -toolbarbackground toolbarBackground Background    }    #    # Create the childsite window window.    #    itk_component add -protected mwchildsite {	frame $itk_interior.mwchildsite    }     #    # Add the help and system status lines    #    itk_component add -protected lineframe {	frame $itk_interior.lineframe    }    itk_component add help {	label $itk_component(lineframe).help \	    -textvariable [itcl::scope _helpVar($this)] \	    -relief sunken -borderwidth 2 -width 10    }    itk_component add status {	label $itk_component(lineframe).status \	    -textvariable [itcl::scope _statusVar($this)] \	    -relief sunken -borderwidth 2 -width 10    }    #    # Create the message dialog for use throughout the mainwindow.    #    itk_component add msgd {	iwidgets::Messagedialog $itk_interior.msgd -modality application    } {      usual      ignore -modality    }    #    # Use the grid to pack together the menubar, toolbar, mousebar,    # childsite, and status area.    #    grid $itk_component(menubar) -row 0 -column 0 -columnspan 2 -sticky ew    grid $itk_component(toolbar) -row 1 -column 0 -columnspan 2 -sticky ew    grid $itk_component(mousebar) -row 2 -column 0 -sticky ns     grid $itk_component(mwchildsite) -row 2 -column 1 -sticky nsew \	-padx 5 -pady 5     grid $itk_component(lineframe) -row 3 -column 0 -columnspan 2 -sticky ew    grid columnconfigure $itk_interior 1 -weight 1    grid rowconfigure $itk_interior 2 -weight 1    #    # Set the interior to be the childsite for derived classes.    #    set itk_interior $itk_component(mwchildsite)    #    # Initialize all the configuration options.    #    eval itk_initialize $args}# ------------------------------------------------------------------#                             OPTIONS# ------------------------------------------------------------------# ------------------------------------------------------------------# OPTION: -helpline## Specifies whether or not to display the help line.  The value# may be given in any of the forms acceptable to Tk_GetBoolean.# ------------------------------------------------------------------itcl::configbody iwidgets::Mainwindow::helpline {    if {$itk_option(-helpline)} {	pack $itk_component(help) -side left -fill x -expand yes -padx 2    } else {	pack forget $itk_component(help)    }}# ------------------------------------------------------------------# OPTION: -statusline## Specifies whether or not to display the status line.  The value# may be given in any of the forms acceptable to Tk_GetBoolean.# ------------------------------------------------------------------itcl::configbody iwidgets::Mainwindow::statusline {    if {$itk_option(-statusline)} {	pack $itk_component(status) -side right -fill x -expand yes -padx 2    } else {	pack forget $itk_component(status)    }}# ------------------------------------------------------------------#                            METHODS# ------------------------------------------------------------------# ------------------------------------------------------------------# METHOD: childsite## Return the childsite widget.# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::childsite {} {    return $itk_component(mwchildsite)}# ------------------------------------------------------------------# METHOD: menubar ?args?## Evaluate the args against the Menubar component.# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::menubar {args} {    if {[llength $args] == 0} {	return $itk_component(menubar)    } else {	return [eval $itk_component(menubar) $args]    }}# ------------------------------------------------------------------# METHOD: toolbar ?args?## Evaluate the args against the Toolbar component.# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::toolbar {args} {    if {[llength $args] == 0} {	return $itk_component(toolbar)    } else {	return [eval $itk_component(toolbar) $args]    }}# ------------------------------------------------------------------# METHOD: mousebar ?args?## Evaluate the args against the Mousebar component.# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::mousebar {args} {    if {[llength $args] == 0} {	return $itk_component(mousebar)    } else {	return [eval $itk_component(mousebar) $args]    }}# ------------------------------------------------------------------# METHOD: msgd ?args?## Evaluate the args against the Messagedialog component.# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::msgd {args} {    if {[llength $args] == 0} {	return $itk_component(msgd)    } else {	return [eval $itk_component(msgd) $args]    }}# ------------------------------------------------------------------# PRIVATE METHOD: _exitCB## Menu callback for the exit option from the file menu.  The method# confirms the user's request to exit the application prior to# taking the action.# ------------------------------------------------------------------itcl::body iwidgets::Mainwindow::_exitCB {} {    #    # Configure the message dialog for confirmation of the exit request.    #    msgd configure -title Confirmation -bitmap questhead \	    -text "Exit confirmation\n\		   Are you sure ?"    msgd buttonconfigure OK -text Yes    msgd buttonconfigure Cancel -text No    msgd default Cancel    msgd center $itk_component(hull)    #    # Activate the message dialog and given a positive response     # proceed to exit the application    #    if {[msgd activate]} {	::exit    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -