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

FreeBSD Manual Pages

  
 
  

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

NAME
       Toplevel	- base class for mega-widgets in a top-level window

INHERITANCE
       itk::Archetype <- itk::Toplevel

STANDARD OPTIONS
       background      cursor

       See the "options" manual	entry for details on the standard options.

WIDGET-SPECIFIC	OPTIONS
       Name:   title
       Class:  Title
       Command-Line Switch:    -title

	      Sets the title that the window manager displays in the title bar
	      above the	window.	 The default title is the null string.

DESCRIPTION
       The Toplevel class inherits everything from the	Archetype  class,  and
       adds a Tk toplevel 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	 Toplevel  class  is  implemented  with	 a  Tk
       toplevel,  mega-widgets	in  the	Toplevel class have their own toplevel
       window.	This class is used to create dialog  boxes  and	 other	pop-up
       windows.

COMPONENTS
       Name:	       hull
       Class:	       Toplevel

	      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 MessageInfo mega-widget.  It creates
       a pop-up	message	that the user can dismiss  by  pushing	the  "Dismiss"
       button.	option add *MessageInfo.title "Notice" widgetDefault

       itcl::class MessageInfo {
	   inherit itk::Toplevel

	   constructor {args} {
	       itk_component add dismiss {
		   button      $itk_interior.dismiss	  -text	     "Dismiss"
       -command	"destroy $itk_component(hull)"
	       }
	       pack $itk_component(dismiss) -side bottom -pady 4

	       itk_component add separator {
		   frame $itk_interior.sep -height 2  -borderwidth  1  -relief
       sunken
	       }
	       pack $itk_component(separator) -side bottom -fill x -padx 4

	       itk_component add icon {
		   label $itk_interior.icon -bitmap info
	       }
	       pack $itk_component(icon) -side left -padx 8 -pady 8

	       itk_component add infoFrame {
		   frame $itk_interior.info
	       }
	       pack   $itk_component(infoFrame)	  -side	  left	 -expand   yes
       -fill both -padx	4 -pady	4

	       itk_component add message {
		   label $itk_interior.mesg -width 20
	       } {
		   usual
		   rename -text	-message message Text
	       }
	       pack $itk_component(message) -expand yes	-fill both

	       eval itk_initialize $args

	       after idle [code	$this centerOnScreen]
	   }

	   protected method centerOnScreen {} {
	       update idletasks
	       set wd [winfo reqwidth $itk_component(hull)]
	       set ht [winfo reqheight $itk_component(hull)]
	       set x [expr ([winfo screenwidth $itk_component(hull)]-$wd)/2]
	       set y [expr ([winfo screenheight	$itk_component(hull)]-$ht)/2]
	       wm geometry $itk_component(hull)	+$x+$y
	   } }

       itk::usual MessageInfo {
	   keep	-background -cursor -foreground	-font
	   keep	-activebackground -activeforeground -disabledforeground
	   keep	-highlightcolor	-highlightthickness }

       # # EXAMPLE:  Create a notice window: # MessageInfo .m  -message	 "File
       not found:\n/usr/local/bin/foo"

KEYWORDS
       itk, Archetype, Widget, mega-widget

itk				      3.0			   Toplevel(n)

NAME | INHERITANCE | STANDARD OPTIONS | WIDGET-SPECIFIC OPTIONS | DESCRIPTION | COMPONENTS | EXAMPLE | KEYWORDS

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

home | help