summaryrefslogtreecommitdiff
path: root/itcl/itk/doc
diff options
context:
space:
mode:
Diffstat (limited to 'itcl/itk/doc')
-rw-r--r--itcl/itk/doc/Archetype.n353
-rw-r--r--itcl/itk/doc/Toplevel.n133
-rw-r--r--itcl/itk/doc/Widget.n123
-rw-r--r--itcl/itk/doc/itk.n96
-rw-r--r--itcl/itk/doc/itkvars.n43
-rw-r--r--itcl/itk/doc/itkwish.155
-rw-r--r--itcl/itk/doc/license.terms27
-rw-r--r--itcl/itk/doc/man.macros236
-rw-r--r--itcl/itk/doc/usual.n76
9 files changed, 1142 insertions, 0 deletions
diff --git a/itcl/itk/doc/Archetype.n b/itcl/itk/doc/Archetype.n
new file mode 100644
index 00000000000..5389d32d19f
--- /dev/null
+++ b/itcl/itk/doc/Archetype.n
@@ -0,0 +1,353 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH Archetype n 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+Archetype \- base class for all [incr\ Tk] mega-widgets
+.SH "INHERITANCE"
+none
+.ta 4c 8c 12c
+.SH "WIDGET-SPECIFIC OPTIONS"
+.LP
+.nf
+Name: \fBclientData\fR
+Class: \fBClientData\fR
+Command-Line Switch: \fB-clientdata\fR
+.fi
+.IP
+This does not affect the widget operation in any way. It is
+simply a hook that clients can use to store a bit of data with
+each widget. This can come in handy when using widgets to
+build applications.
+.BE
+
+.SH DESCRIPTION
+.PP
+The \fBArchetype\fR class is the basis for all \fB[incr\ Tk]\fR
+mega-widgets. It keeps track of component widgets and provides
+methods like "configure" and "cget" that are used to access
+the composite configuration options. Each component widget
+must be registered with the \fBArchetype\fR base class using
+the "\fBitk_component add\fR" method. When the component
+is registered, its configuration options are integrated into
+the composite option list. Configuring a composite option
+like "-background" causes all of the internal components
+to change their background color.
+.PP
+It is not used as a widget by itself, but is used as a base
+class for more specialized widgets. The \fBWidget\fR base class
+inherits from \fBArchetype\fR, and adds a Tk frame which acts as
+the "hull" for the mega-widget. The \fBToplevel\fR base class
+inherits from \fBArchetype\fR, but adds a Tk toplevel which acts
+as the "hull".
+.PP
+\fIEach derived class must invoke the \fBitk_initialize\fP method
+within its constructor\fR, so that all options are properly
+integrated and initialized in the composite list.
+
+
+.SH "PUBLIC METHODS"
+.PP
+The following methods are provided to support the public
+interface of the mega-widget.
+.TP
+\fIpathName \fBcget\fR \fIoption\fR
+Returns the current value of the configuration option given
+by \fIoption\fR.
+.sp
+In this case, \fIoption\fR refers to a composite configuration
+option for the mega-widget. Individual components integrate
+their own configuration options onto the composite list when
+they are registered by the "\fBitk_component add\fR" method.
+.TP
+\fIpathName\fR \fBcomponent\fR ?\fIname\fR? ?\fIcommand arg arg ...\fR?
+Used to query or access component widgets within a mega-widget.
+With no arguments, this returns a list of symbolic names for
+component widgets that are accessible in the current scope.
+The symbolic name for a component is established when it is
+registered by the "\fBitk_component add\fR" method. Note that
+component widgets obey any public/protected/private access
+restriction that is in force when the component is created.
+.sp
+If a symbolic \fIname\fR is specified, this method returns the
+window path name for that component.
+.sp
+Otherwise, the \fIcommand\fR and any remaining \fIarg\fR arguments
+are invoked as a method on the component with the symbolic
+name \fIname\fR. This provides a well-defined way of accessing
+internal components without relying on specific window path
+names, which are really details of the implementation.
+.TP
+\fIpathName\fR \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
+Query or modify the configuration options of the widget.
+If no \fIoption\fR is specified, returns a list describing all of
+the available options for \fIpathName\fR (see \fBTk_ConfigureInfo\fR for
+information on the format of this list). If \fIoption\fR is specified
+with no \fIvalue\fR, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no \fIoption\fR is specified). If
+one or more \fIoption\-value\fR pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+.sp
+In this case, the \fIoptions\fR refer to composite configuration
+options for the mega-widget. Individual components integrate their
+own configuration options onto the composite list when they are
+registered by the "\fBitk_component add\fR" method.
+
+.SH "PROTECTED METHODS"
+.PP
+The following methods are used in derived classes as part of
+the implementation for a mega-widget.
+.TP
+\fBitk_component add\fR ?\fB-protected\fR? ?\fB-private\fR? ?\fB--\fR? \fIname createCmds\fR ?\fIoptionCmds\fR?
+Creates a component widget by executing the \fIcreateCmds\fR
+argument and registers the new component with the symbolic
+name \fIname\fR. The \fB-protected\fR and \fB-private\fR options
+can be used to keep the component hidden from the outside world.
+These options have a similar effect on component visibility as
+they have on class members.
+.sp
+The \fIcreateCmds\fR code can contain any
+number of commands, but it must return the window path name
+for the new component widget.
+.sp
+The \fIoptionCmds\fR script contains commands that describe
+how the configuration options for the new component should
+be integrated into the composite list for the mega-widget.
+It can contain any of the following commands:
+.RS
+.TP
+\fBignore \fIoption\fR ?\fIoption option ...\fR?
+Removes one or more configuration \fIoptions\fR from the
+composite list. All options are ignored by default,
+so the \fBignore\fR command is only used to negate the
+effect of a previous \fBkeep\fR or \fBrename\fR command.
+This is useful, for example, when the some of the options
+added by the \fBusual\fR command should not apply to
+a particular component, and need to be ignored.
+.TP
+\fBkeep \fIoption\fR ?\fIoption option ...\fR?
+Integrates one or more configuration \fIoptions\fR into the
+composite list, keeping the name the same. Whenever the
+mega-widget option is configured, the new value is also
+applied to the current component. Options like "-background"
+and "-cursor" are commonly found on the \fBkeep\fR list.
+.TP
+\fBrename \fIoption switchName resourceName resourceClass\fR
+Integrates the configuration \fIoption\fR into the composite
+list with a different name. The option will be called
+\fIswitchName\fR on the composite list. It will also be
+modified by setting values for \fIresourceName\fR and \fIresourceClass\fR
+in the X11 resource database. The "-highlightbackground"
+option is commonly renamed to "-background", so that when
+the mega-widget background changes, the background of the
+focus ring will change as well.
+.TP
+\fBusual ?\fItag\fR?
+Finds the usual option-handling commands for the specified
+\fItag\fR name and executes them. If the \fItag\fR is
+not specified, then the widget class name is used as the
+\fItag\fR name. The "usual" option-handling commands
+are registered via the \fBusual\fR command.
+.RE
+.sp
+If the \fIoptionCmds\fR script is not specified, the usual
+option-handling commands associated with the class of the
+component widget are used by default.
+
+.TP
+\fBitk_component delete\fR \fIname\fR ?\fIname name ...\fR?
+Removes the component widget with the symbolic name \fIname\fR
+from the mega-widget. The component widget will still exist,
+but it will no longer be accessible as a component of the
+mega-widget. Also, any options associated with the component
+are removed from the composite option list.
+.sp
+Note that you can destroy a component using the \fBdestroy\fR
+command, just as you would destroy any Tk widget. Components
+automatically detach themselves from their mega-widget parent
+when destroyed, so "\fBitk_component delete\fR" is rarely used.
+
+.TP
+\fBitk_initialize ?\fIoption value option value...\fR?
+\fIThis method must be invoked within the constructor for
+each class in a mega-widget hierarchy.\fR It makes sure
+that all options are properly integrated into the composite
+option list, and synchronizes all components to the initial
+option values. It is usually invoked near the bottom of
+the constructor, after all component widgets have been
+added.
+.sp
+If any \fIoption\fR/\fIvalue\fR pairs are specified, they
+override settings determined from the X11 resource database.
+The arguments to the constructor are usually passed along
+to this method as follows:
+.CS
+class MyWidget {
+ inherit Widget
+
+ constructor {args} {
+ .
+ .
+ .
+ eval itk_initialize $args
+ }
+}
+.CE
+
+.TP
+\fBitk_option add\fR \fIoptName\fR ?\fIoptName optName ...\fR?
+Adds one or more options to the composite option list for
+a mega-widget. Here, \fIoptName\fR can have one of the
+following forms:
+.RS
+.TP
+\fIcomponent\fR.\fIoption\fR
+Accesses an \fIoption\fR belonging to a component with the
+symbolic name \fIcomponent\fR. The \fIoption\fR name is
+specified without a leading "\fB-\fR" sign.
+.TP
+\fIclassName\fR::\fIoption\fR
+Accesses an \fIoption\fR defined by the "\fBitk_option define\fR"
+command in class \fIclassName\fR. The \fIoption\fR name is
+specified without a leading "\fB-\fR" sign.
+.RE
+.PP
+Options are normally integrated into the composite option list
+when a component widget is first created. This method can be
+used to add options at a later time. For example, the \fBWidget\fR
+and \fBToplevel\fR base classes keep only the bare minimum options
+for their "hull" component: -background and -cursor. A derived
+class can override this decision, and add options that control
+the border of the "hull" component as well:
+.CS
+class MyWidget {
+ inherit Widget
+
+ constructor {args} {
+ itk_option add hull.borderwidth hull.relief
+
+ itk_component add label {
+ label $itk_interior.l1 -text "Hello World!"
+ }
+ pack $itk_component(label)
+
+ eval itk_initialize $args
+ }
+}
+.CE
+
+.TP
+\fBitk_option define\fR \fIswitchName resourceName resourceClass init\fR ?\fIconfig\fR?
+This command is used at the level of the class definition to
+define a synthetic mega-widget option. Within the \fBconfigure\fR
+and \fBcget\fR methods, this option is referenced by \fIswitchName\fR,
+which must start with a "\fB-\fR" sign. It can also be
+modified by setting values for \fIresourceName\fR and \fIresourceClass\fR
+in the X11 resource database. The \fIinit\fR value string is used
+as a last resort to initialize the option if no other value can
+be used from an existing option, or queried from the X11 resource
+database. If any \fIconfig\fR code is specified, it is executed
+whenever the option is modified via the \fBconfigure\fR method.
+The \fIconfig\fR code can also be specified outside of the class
+definition via the \fBconfigbody\fR command.
+.sp
+In the following example, a synthetic "-background" option is
+added to the class, so that whenever the background changes, the
+new value is reported to standard output. Note that this synthetic
+option is integrated with the rest of the "-background" options
+that have been kept from component widgets:
+.CS
+class MyWidget {
+ inherit Widget
+ constructor {args} {
+ itk_component add label {
+ label $itk_interior.l1 -text "Hello World!"
+ }
+ pack $itk_component(label)
+
+ eval itk_initialize $args
+ }
+ itk_option define -background background Background #d9d9d9 {
+ puts "new background: $itk_option(-background)"
+ }
+}
+.CE
+
+.TP
+\fBitk_option remove\fR \fIoptName\fR ?\fIoptName optName ...\fR?
+Removes one or more options from the composite option list for
+a mega-widget. Here, \fIoptName\fR can have one of the forms
+described above for the "\fBitk_option add\fR" command.
+.sp
+Options are normally integrated into the composite option list
+when a component widget is first created. This method can be
+used to remove options at a later time. For example, a derived
+class can override an option defined in a base class by removing
+and redefining the option:
+.CS
+class Base {
+ inherit Widget
+ constructor {args} {
+ eval itk_initialize $args
+ }
+
+ itk_option define -foo foo Foo "" {
+ puts "Base: $itk_option(-foo)"
+ }
+}
+
+class Derived {
+ inherit Base
+
+ constructor {args} {
+ itk_option remove Base::foo
+ eval itk_initialize $args
+ }
+ itk_option define -foo foo Foo "" {
+ puts "Derived: $itk_option(-foo)"
+ }
+}
+.CE
+Without the "\fBitk_option remove\fR" command, the code fragments
+for both of the "-foo" options would be executed each time the
+composite "-foo" option is configured. In the example above,
+the \fCBase::foo\fR option is suppressed in all Derived class
+widgets, so only the \fCDerived::foo\fR option remains.
+
+.SH "PROTECTED VARIABLES"
+Derived classes can find useful information in the following
+protected variables.
+.TP
+itk_component(\fIname\fR)
+The "itk_component" array returns the real window path name
+for a component widget with the symbolic name \fIname\fR.
+The same information can be queried using the \fBcomponent\fR
+method, but accessing this array is faster and more convenient.
+.TP
+itk_interior
+This variable contains the name of the window that acts as
+a parent for internal components. It is initialized to the
+name of the "hull" component provided by the \fBWidget\fR
+and \fBToplevel\fR classes. Derived classes can override
+the initial setting to point to another interior window
+to be used for further-derived classes.
+.TP
+itk_option(\fIoption\fR)
+The "itk_option" array returns the current option value
+for the composite widget option named \fIoption\fR. Here,
+the \fIoption\fR name should include a leading "\fB-\fR" sign.
+The same information can be queried using the \fBcget\fR
+method, but accessing this array is faster and more convenient.
+
+.SH KEYWORDS
+itk, Widget, Toplevel, mega-widget
diff --git a/itcl/itk/doc/Toplevel.n b/itcl/itk/doc/Toplevel.n
new file mode 100644
index 00000000000..b11c4b2d029
--- /dev/null
+++ b/itcl/itk/doc/Toplevel.n
@@ -0,0 +1,133 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH Toplevel n 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+Toplevel \- base class for mega-widgets in a top-level window
+.SH "INHERITANCE"
+itk::Archetype <- itk::Toplevel
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 4c 8c 12c
+\fBbackground\fR \fBcursor\fR
+.fi
+.LP
+See the "options" manual entry for details on the standard options.
+.SH "WIDGET-SPECIFIC OPTIONS"
+.LP
+.nf
+Name: \fBtitle\fR
+Class: \fBTitle\fR
+Command-Line Switch: \fB-title\fR
+.fi
+.IP
+Sets the title that the window manager displays in the title bar
+above the window. The default title is the null string.
+.BE
+
+.SH DESCRIPTION
+.PP
+The \fBToplevel\fR class inherits everything from the \fBArchetype\fR
+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 \fBitk_interior\fR contains the window
+path name for the "hull" component. Derived classes specialize
+this widget by packing other widget components into the hull.
+.PP
+Since the hull for the \fBToplevel\fR class is implemented with
+a Tk toplevel, mega-widgets in the \fBToplevel\fR class have
+their own toplevel window. This class is used to create dialog
+boxes and other pop-up windows.
+
+.SH "COMPONENTS"
+.LP
+.nf
+Name: \fBhull\fR
+Class: \fBToplevel\fR
+.fi
+.IP
+The "hull" component acts as the body for the entire mega-widget.
+Other components are packed into the hull to further specialize
+the widget.
+
+.SH EXAMPLE
+.PP
+The following example implements a \fBMessageInfo\fR
+mega-widget. It creates a pop-up message that the
+user can dismiss by pushing the "Dismiss" button.
+.CS
+option add *MessageInfo.title "Notice" widgetDefault
+
+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
+ }
+}
+
+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"
+.CE
+
+.SH KEYWORDS
+itk, Archetype, Widget, mega-widget
diff --git a/itcl/itk/doc/Widget.n b/itcl/itk/doc/Widget.n
new file mode 100644
index 00000000000..0c74fd92ebe
--- /dev/null
+++ b/itcl/itk/doc/Widget.n
@@ -0,0 +1,123 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH Widget n 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+Widget \- base class for mega-widgets within a frame
+.SH "INHERITANCE"
+itk::Archetype <- itk::Widget
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 4c 8c 12c
+\fBbackground\fR \fBcursor\fR
+.fi
+.LP
+See the "options" manual entry for details on the standard options.
+.BE
+
+.SH DESCRIPTION
+.PP
+The \fBWidget\fR class inherits everything from the \fBArchetype\fR
+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 \fBitk_interior\fR contains the window
+path name for the "hull" component. Derived classes specialize
+this widget by packing other widget components into the hull.
+.PP
+Since the hull for the \fBWidget\fR class is implemented with a
+Tk frame, mega-widgets in the \fBWidget\fR class can be packed
+into other frames and toplevels.
+
+.SH "COMPONENTS"
+.LP
+.nf
+Name: \fBhull\fR
+Class: \fBFrame\fR
+.fi
+.IP
+The "hull" component acts as the body for the entire mega-widget.
+Other components are packed into the hull to further specialize
+the widget.
+
+.SH EXAMPLE
+.PP
+The following example implements a simple \fBTextDisplay\fR
+mega-widget. It creates a read-only display of text with
+a text widget and a scrollbar.
+.CS
+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 {
+ 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}
+}
+
+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]
+.CE
+
+.SH KEYWORDS
+itk, Archetype, Widget, mega-widget
diff --git a/itcl/itk/doc/itk.n b/itcl/itk/doc/itk.n
new file mode 100644
index 00000000000..6a58bb19948
--- /dev/null
+++ b/itcl/itk/doc/itk.n
@@ -0,0 +1,96 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH itk n 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+itk \- framework for building mega-widgets in Tcl/Tk
+.BE
+
+.SH DESCRIPTION
+.PP
+Mega-widgets are high-level widgets that are constructed using
+Tk widgets as component parts, usually without any C code. A
+fileselectionbox, for example, may have a few listboxes, some
+entry widgets and some control buttons. These individual widgets
+are put together in a way that makes them act like one big
+widget. A fileselectionbox mega-widget can be created with a
+command like:
+.CS
+fileselectionbox .fsb -background blue -foreground white
+.CE
+Once it has been created, it can be reconfigured with a command
+like:
+.CS
+\&.fsb configure -background green -foreground black
+.CE
+and all of its internal components will change color. Each
+mega-widget has a set of methods that can be used to manipulate
+it. For example, the current selection can be queried from a
+fileselectionbox like this:
+.CS
+set fileName [.fsb get]
+.CE
+In effect, a mega-widget looks and acts exactly like a Tk widget,
+but is considerably easier to implement.
+.PP
+\fB[incr\ Tk]\fR is a framework for building mega-widgets. It
+uses \fB[incr\ Tcl]\fR to support the object paradigm, and adds
+base classes which provide default widget behaviors.
+.PP
+All \fB[incr\ Tk]\fR widgets are derived from the \fBArchetype\fR
+base class. This class manages internal component widgets,
+and provides methods like "configure" and "cget" to access
+configuration options.
+.PP
+The \fBWidget\fR base class inherits everything from \fBArchetype\fR,
+and adds a Tk frame which acts as a container for the mega-widget.
+It is used to build mega-widgets that sit inside of other frames
+and toplevels. Derived classes create other internal components
+and pack them into the "hull" frame created by the \fBWidget\fR
+base class.
+.PP
+The \fBToplevel\fR base class inherits everything from \fBArchetype\fR,
+but adds a Tk toplevel which acts as a container for the mega-widget.
+It is used to build mega-widgets, such as dialog boxes, that have
+their own toplevel window. Derived classes create other internal
+components and pack them into the "hull" toplevel created by the
+\fBToplevel\fR base class.
+
+.SH [incr Widgets] LIBRARY
+.PP
+\fB[incr\ Widgets]\fR is a mega-widget library built using
+\fB[incr\ Tk]\fR. It can be used right out of the box, and
+contains more than 30 different widget classes, including:
+.IP -
+fileselectiondialog
+.IP -
+tabnotebook
+.IP -
+panedwindow
+.IP -
+combobox
+.IP -
+optionmenu
+.IP -
+scrolledlistbox
+.IP -
+scrolledframe
+.IP -
+messagedialog
+.IP -
+and many others...
+.LP
+The \fBcatalog\fR demo in the "iwidgets/demos" directory
+shows all of the available widgets in action. Each widget
+class has its own man page describing the features available.
+
+.SH KEYWORDS
+class, object, object-oriented, mega-widget
diff --git a/itcl/itk/doc/itkvars.n b/itcl/itk/doc/itkvars.n
new file mode 100644
index 00000000000..6271ae9821b
--- /dev/null
+++ b/itcl/itk/doc/itkvars.n
@@ -0,0 +1,43 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH itkvars n 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+itkvars \- variables used by [incr\ Tk]
+.BE
+
+.SH DESCRIPTION
+.PP
+The following global variables are created and managed automatically
+by the \fB[incr\ Tk]\fR library. Except where noted below, these
+variables should normally be treated as read-only by application-specific
+code and by users.
+.TP
+\fBitk::library\fR
+When an interpreter is created, \fB[incr\ Tk]\fR initializes this
+variable to hold the name of a directory containing the system library
+of \fB[incr\ Tk]\fR scripts. The initial value of \fBitk::library\fR
+is set from the ITK_LIBRARY environment variable if it exists,
+or from a compiled-in value otherwise.
+.sp
+When \fB[incr\ Tk]\fR is added to an interpreter, it executes
+the script "\fCinit.itk\fR" in this directory. This script,
+in turn, looks for other script files with the name "\fCinit.\fIxxx\fR".
+Mega-widget libraries will be automatically initialized if they
+install a script named "\fCinit.\fIxxx\fR" in this directory,
+where "\fIxxx\fR" is the name of the mega-widget library.
+For example, the \fB[incr\ Widgets]\fR library installs
+the script "\fCinit.iwidgets\fR" in this directory.
+This script establishes the "iwidgets" namespace, and sets
+up autoloading for all \fB[incr\ Widgets]\fR commands.
+
+.SH KEYWORDS
+itcl, itk, variables
diff --git a/itcl/itk/doc/itkwish.1 b/itcl/itk/doc/itkwish.1
new file mode 100644
index 00000000000..b6a12194b81
--- /dev/null
+++ b/itcl/itk/doc/itkwish.1
@@ -0,0 +1,55 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH itkwish 1 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+itkwish \- Simple windowing shell for [incr\ Tcl] / [incr\ Tk]
+.SH SYNOPSIS
+\fBitkwish\fR ?\fIfileName arg arg ...\fR?
+.SH OPTIONS
+.IP "\fB\-display \fIdisplay\fR" 20
+Display (and screen) on which to display window.
+.IP "\fB\-geometry \fIgeometry\fR" 20
+Initial geometry to use for window. If this option is specified, its
+value is stored in the \fBgeometry\fR global variable of the application's
+Tcl interpreter.
+.IP "\fB\-name \fIname\fR" 20
+Use \fIname\fR as the title to be displayed in the window, and
+as the name of the interpreter for \fBsend\fR commands.
+.IP "\fB\-sync\fR" 20
+Execute all X server commands synchronously, so that errors
+are reported immediately. This will result in much slower
+execution, but it is useful for debugging.
+.IP "\fB\-\|\-\fR" 20
+Pass all remaining arguments through to the script's \fBargv\fR
+variable without interpreting them.
+This provides a mechanism for passing arguments such as \fB\-name\fR
+to a script instead of having \fBitkwish\fR interpret them.
+.BE
+
+.SH DESCRIPTION
+.PP
+\fBitkwish\fR is a simple program consisting of the Tcl command
+language, the Tk toolkit, the \fB[incr\ Tcl]\fR extension for
+object-oriented programming, and the \fB[incr\ Tk]\fR extension
+for building mega-widgets. The main program creates an
+interpreter, creates a main window, and then processes Tcl
+commands from standard input or from a file.
+.PP
+\fBitkwish\fR is just like \fBwish\fR, but includes the
+\fB[incr\ Tcl]\fR / \fB[incr\ Tk]\fR extensions.
+.PP
+See the \fBwish\fR man page for details concerning usage. See
+the \fBitcl\fR and \fBitk\fR man pages for an overview of
+\fB[incr\ Tcl]\fR / \fB[incr\ Tk]\fR.
+
+.SH KEYWORDS
+Tcl, Tk, itcl, itk, interpreter, shell, toolkit
diff --git a/itcl/itk/doc/license.terms b/itcl/itk/doc/license.terms
new file mode 100644
index 00000000000..5ad564315d8
--- /dev/null
+++ b/itcl/itk/doc/license.terms
@@ -0,0 +1,27 @@
+------------------------------------------------------------------------
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [incr Tcl] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+ AUTHOR: Michael J. McLennan
+ Bell Labs Innovations for Lucent Technologies
+ mmclennan@lucent.com
+ http://www.tcltk.com/itcl
+========================================================================
+ Copyright (c) 1993-1996 Lucent Technologies
+========================================================================
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that the copyright notice and warranty disclaimer appear in
+supporting documentation, and that the names of Lucent Technologies
+any of their entities not be used in advertising or publicity
+pertaining to distribution of the software without specific, written
+prior permission.
+
+Lucent Technologies disclaims all warranties with regard to this
+software, including all implied warranties of merchantability and
+fitness. In no event shall Lucent be liable for any special, indirect
+or consequential damages or any damages whatsoever resulting from loss
+of use, data or profits, whether in an action of contract, negligence
+or other tortuous action, arising out of or in connection with the use
+or performance of this software.
+========================================================================
diff --git a/itcl/itk/doc/man.macros b/itcl/itk/doc/man.macros
new file mode 100644
index 00000000000..3af2da92934
--- /dev/null
+++ b/itcl/itk/doc/man.macros
@@ -0,0 +1,236 @@
+'\" The definitions below are for supplemental macros used in Tcl/Tk
+'\" manual entries.
+'\"
+'\" .AP type name in/out ?indent?
+'\" Start paragraph describing an argument to a library procedure.
+'\" type is type of argument (int, etc.), in/out is either "in", "out",
+'\" or "in/out" to describe whether procedure reads or modifies arg,
+'\" and indent is equivalent to second arg of .IP (shouldn't ever be
+'\" needed; use .AS below instead)
+'\"
+'\" .AS ?type? ?name?
+'\" Give maximum sizes of arguments for setting tab stops. Type and
+'\" name are examples of largest possible arguments that will be passed
+'\" to .AP later. If args are omitted, default tab stops are used.
+'\"
+'\" .BS
+'\" Start box enclosure. From here until next .BE, everything will be
+'\" enclosed in one large box.
+'\"
+'\" .BE
+'\" End of box enclosure.
+'\"
+'\" .CS
+'\" Begin code excerpt.
+'\"
+'\" .CE
+'\" End code excerpt.
+'\"
+'\" .VS ?version? ?br?
+'\" Begin vertical sidebar, for use in marking newly-changed parts
+'\" of man pages. The first argument is ignored and used for recording
+'\" the version when the .VS was added, so that the sidebars can be
+'\" found and removed when they reach a certain age. If another argument
+'\" is present, then a line break is forced before starting the sidebar.
+'\"
+'\" .VE
+'\" End of vertical sidebar.
+'\"
+'\" .DS
+'\" Begin an indented unfilled display.
+'\"
+'\" .DE
+'\" End of indented unfilled display.
+'\"
+'\" .SO
+'\" Start of list of standard options for a Tk widget. The
+'\" options follow on successive lines, in four columns separated
+'\" by tabs.
+'\"
+'\" .SE
+'\" End of list of standard options for a Tk widget.
+'\"
+'\" .OP cmdName dbName dbClass
+'\" Start of description of a specific option. cmdName gives the
+'\" option's name as specified in the class command, dbName gives
+'\" the option's name in the option database, and dbClass gives
+'\" the option's class in the option database.
+'\"
+'\" .UL arg1 arg2
+'\" Print arg1 underlined, then print arg2 normally.
+'\"
+'\" SCCS: @(#) man.macros 1.9 97/08/22 18:50:59
+'\"
+'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+'\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ie !"\\$3"" \{\
+.ta \\n()Au \\n()Bu
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+'\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+'\" # BS - start boxed text
+'\" # ^y = starting y location
+'\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+'\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+'\" # VS - start vertical sidebar
+'\" # ^Y = starting y location
+'\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+'\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+'\" # Special macro to handle page bottom: finish off current
+'\" # box/sidebar if in box/sidebar mode, then invoked standard
+'\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+'\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+'\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+'\" # SO - start of list of standard options
+.de SO
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 4c 8c 12c
+.ft B
+..
+'\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\fBoptions\\fR manual entry for details on the standard options.
+..
+'\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+'\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+'\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
diff --git a/itcl/itk/doc/usual.n b/itcl/itk/doc/usual.n
new file mode 100644
index 00000000000..0e2c4646c6c
--- /dev/null
+++ b/itcl/itk/doc/usual.n
@@ -0,0 +1,76 @@
+'\"
+'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: $Id$
+'\"
+.so man.macros
+.TH usual n 3.0 itk "[incr\ Tk]"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+usual \- access default option-handling commands
+.br
+ for a mega-widget component
+.SH SYNOPSIS
+\fBusual ?\fItag\fR? ?\fIcommands\fR?
+.BE
+
+.SH DESCRIPTION
+.PP
+The \fBusual\fR command is used outside of an \fB[incr\ Tcl]\fR
+class definition to define the usual set of option-handling
+commands for a component widget. Option-handling commands
+are used when a component is registered with the \fBArchetype\fR
+base class via the "\fBitk_component add\fR" method. They
+specify how the component's configuration options should be
+integrated into the composite option list for the mega-widget.
+Options can be kept, renamed, or ignored, as described in the
+\fBArchetype\fR man page.
+.PP
+It is tedious to include the same declarations again and again
+whenever components are added. The \fBusual\fR command allows
+a standard code fragment to be registered for each widget class,
+which is used by default to handle the options. All of the
+standard Tk widgets have \fBusual\fR declarations defined in
+the \fB[incr\ Tk]\fR library. Similar \fBusual\fR declarations
+should be created whenever a new mega-widget class is conceived.
+Only the most-generic options should be included in the \fBusual\fR
+declaration.
+.PP
+The \fItag\fR name is usually the name of a widget class,
+which starts with a capital letter; however, any string registered
+here can be used later with the \fBusual\fR command described
+on the \fBArchetype\fR man page.
+.PP
+If the \fIcommands\fR argument is specified, it is associated
+with the \fItag\fR string, and can be accessed later via
+\fBitk_component add\fR.
+.PP
+If only the \fItag\fR argument is specified, this command looks for
+an existing \fItag\fR name and returns the commands associated
+with it. If there are no commands associated with \fItag\fR,
+this command returns the null string.
+.PP
+If no arguments are specified, this command returns a list of
+all \fItag\fR names previously registered.
+
+.SH EXAMPLE
+Following is the \fBusual\fR declaration for the standard
+Tk button widget:
+.CS
+usual Button {
+ keep -background -cursor -foreground -font
+ keep -activebackground -activeforeground -disabledforeground
+ keep -highlightcolor -highlightthickness
+ rename -highlightbackground -background background Background
+}
+.CE
+Only the options that would be common to all buttons in a
+single mega-widget are kept or renamed. Options like "-text"
+that would be unique to a particular button are ignored.
+
+.SH KEYWORDS
+itk, Archetype, component, mega-widget