Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Widget(n)			   [incr Tk]			     Widget(n)

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	compo-
       nents 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-wid-
	      get.  Other components are packed	into the hull to further  spe-
	      cialize 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 *TextDis-
       play.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	 Back-
       ground
	       }
	       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	-back-
       ground red pack .file

       .file display [exec cat /etc/passwd]

KEYWORDS
       itk, Archetype, Widget, mega-widget

itk				      3.0			     Widget(n)

NAME | INHERITANCE | STANDARD OPTIONS | DESCRIPTION | COMPONENTS | EXAMPLE | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Widget&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help