Provided by: itk3-doc_3.3-4ubuntu1_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