Provided by: itk3-doc_3.4.2-2_all bug

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