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

              class TextDisplay {
                  inherit itk::Widget

                  constructor {args} {
                      itk_component add text {

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

              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
              }

              body TextDisplay::append {info} {
                  $itk_component(text) configure -state normal
                  $itk_component(text) insert end $info
                  $itk_component(text) configure -state disabled
              }

              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


Man(1) output converted with man2html