DragonFly On-Line Manual Pages
    
    
	
Widget(n)                          [incr Tk]                         Widget(n)
See the file man.macros.
NAME
       Widget - base class for mega-widgets within a frame
INHERITANCE
       itk::Archetype <- itk::Widget
STANDARD OPTIONS
       background      cursor
       See the "options" manual entry for details on the standard options.
DESCRIPTION
       The Widget class inherits everything from the Archetype class, and adds
       a Tk frame called the "hull" component to represent the body of the
       mega-widget.  The window class name for the hull is set to the most-
       specific class name for the mega-widget.  The protected variable
       itk_interior contains the window path name for the "hull" component.
       Derived classes specialize this widget by packing other widget
       components into the hull.
       Since the hull for the Widget class is implemented with a Tk frame,
       mega-widgets in the Widget class can be packed into other frames and
       toplevels.
COMPONENTS
       Name:           hull
       Class:          Frame
              The "hull" component acts as the body for the entire mega-
              widget.  Other components are packed into the hull to further
              specialize the widget.
EXAMPLE
       The following example implements a simple TextDisplay mega-widget.  It
       creates a read-only display of text with a text widget and a scrollbar.
       option add *TextDisplay.wrap none widgetDefault option add
       *TextDisplay.textBackground ivory widgetDefault option add
       *TextDisplay.width 40 widgetDefault option add *TextDisplay.height 10
       widgetDefault
       itcl::class TextDisplay {
           inherit itk::Widget
           constructor {args} {
               itk_component add text {
                   text $itk_interior.info -state disabled
       -yscrollcommand [code $itk_interior.sbar set]
               } {
                   usual
                   keep -tabs -wrap -width -height
                   rename -background -textbackground textBackground
       Background
               }
               pack $itk_component(text) -side left -expand yes -fill both
               itk_component add scrollbar {
                   scrollbar $itk_interior.sbar                 -command [code
       $itk_interior.info yview]
               }
               pack $itk_component(scrollbar) -side right -fill y
               eval itk_initialize $args
           }
           public method display {info}
           public method append {info} }
       itcl::body TextDisplay::display {info} {
           $itk_component(text) configure -state normal
           $itk_component(text) delete 1.0 end
           $itk_component(text) insert 1.0 $info
           $itk_component(text) configure -state disabled }
       itcl::body TextDisplay::append {info} {
           $itk_component(text) configure -state normal
           $itk_component(text) insert end $info
           $itk_component(text) configure -state disabled }
       itk::usual TextDisplay {
           keep -background -cursor -foreground -font
           keep -activebackground -activerelief
           keep -highlightcolor -highlightthickness
           keep -insertbackground -insertborderwidth -insertwidth
           keep -insertontime -insertofftime
           keep -selectbackground -selectborderwidth -selectforeground
           keep -textbackground -troughcolor }
       # # EXAMPLE:  Display the /etc/passwd file # TextDisplay .file
       -background red pack .file
       .file display [exec cat /etc/passwd]
KEYWORDS
       itk, Archetype, Widget, mega-widget
itk                                   3.0                            Widget(n)