OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/base.git] / util / src / TclTk / blt2.5 / html / hiertable.html
diff --git a/util/src/TclTk/blt2.5/html/hiertable.html b/util/src/TclTk/blt2.5/html/hiertable.html
new file mode 100644 (file)
index 0000000..7f56d0e
--- /dev/null
@@ -0,0 +1,2331 @@
+                     <!-- manual page source format generated by PolyglotMan v3.0.8+XFree86, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>treeview(n) manual page</TITLE>
+</HEAD>
+<BODY BGCOLOR="#efefef" TEXT="black" LINK="blue" VLINK="#551A8B" ALINK="red">
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">Name</A></H2>
+treeview - Create and manipulate hierarchical
+table widgets 
+<H2><A NAME="sect1" HREF="#toc1">Synopsis</A></H2>
+<B>treeview</B> <I>pathName </I>?<I>options</I>? 
+<H2><A NAME="sect2" HREF="#toc2">Description</A></H2>
+The <B>treeview</B>
+widget displays a tree of data.  It replaces both the <B>hiertable</B> and <B>hierbox</B>
+widgets.  The <B>treeview</B> is 100% syntax compatible with the <B>hiertable</B> widget.
+ The <B>hiertable</B> command is retained for sake of script-level compatibility.
+ This widget obsoletes the <B>hierbox</B> widget.  It does everything the old <B>hierbox</B>
+widget did, but also provides data sharing (via <I>tree data objects</I>) and
+the ability to tag nodes. 
+<H2><A NAME="sect3" HREF="#toc3">Introduction</A></H2>
+The <B>treeview</B> widget displays hierarchical
+data.  Data is represented as nodes in a general-ordered tree.  Each node
+may have sub-nodes and these nodes can in turn has their own children. <P>
+A
+node is displayed as a row entry in the widget.  Each entry has a text label
+and icon.  When a node has children, its entry is drawn with a small button
+to the left of the label.  Clicking the mouse over this button opens or
+closes the node.  When a node is <I>open</I>, its children are exposed.  When it
+is <I>closed</I>, the children and their descedants are hidden.  The button is
+normally a <I>+</I> or <I>-</I> symbol (ala Windows Explorer), but can be replaced with
+a pair of Tk images (open and closed images). <P>
+If the node has data associated
+with it, they can be displayed in columns running vertically on either
+side the tree.  You can control the color, font, etc of each entry.  Any
+entry label or data field can be edited in-place. 
+<H2><A NAME="sect4" HREF="#toc4">Tree Data Object</A></H2>
+The tree
+is not stored inside the widget but in a tree data object (see the <B>tree</B>
+command for a further explanation).  Tree data objects can be shared among
+different clients, such as a <B>treeview</B> widget or the <B>tree</B> command.  You can
+walk the tree and manage its data with the <B>tree</B> command tree, while displaying
+it with the <B>treeview</B> widget.  Whenever the tree is updated, the <B>treeview</B>
+widget is automatically redrawn. <P>
+By default, the <B>treeview</B> widget creates
+its own tree object. The tree initially contains just a root node.  But you
+can also display trees created by the <B>tree</B> command using the <B>-tree</B> configuration
+option.  <B>Treeview</B> widgets can share the same tree object, possibly displaying
+different views of the same data. <P>
+A tree object has both a Tcl and C API.
+ You can insert or delete nodes using <B>treeview</B> widget or <B>tree</B> command operations,
+but also from C code.  For example, you can load the tree from your C code
+while still managing and displaying the tree from Tcl. The widget is automatically
+notified whenever the tree is modified via C or Tcl. 
+<H2><A NAME="sect5" HREF="#toc5">Syntax</A></H2>
+<BR>
+<P>
+<CODE><B>treeview <I>pathName </I></B>?<I>option value</I>?...<BR>
+</CODE><P>The <B>treeview</B> command creates a new window <I>pathName</I> and makes it into a
+<B>treeview</B> widget.  At the time this command is invoked, there must not exist
+a window named <I>pathName</I>, but <I>pathName</I>'s parent must exist.  Additional options
+may be specified on the command line or in the option database to configure
+aspects of the widget such as its colors and font.  See the <B>configure</B> operation
+below for the exact details about what <I>option</I> and <I>value</I> pairs are valid.
+<P>
+If successful, <B>treeview</B> returns the path name of the widget.  It also creates
+a new Tcl command by the same name.  You can use this command to invoke
+various operations that query or modify the widget. The general form is:
+<BR>
+<P>
+<CODE><I>pathName <I>operation</I></I> ?<I>arg</I>?...<BR>
+</CODE><P>Both <I>operation</I> and its arguments determine the exact behavior of the command.
+ The operations available are described in the <FONT SIZE=-1><B>TREEVIEW OPERATIONS</B></FONT>
+  section.
+
+<H2><A NAME="sect6" HREF="#toc6">IDs and Tags</A></H2>
+Nodes can be inserted into a tree using the <B>treeview</B> widget
+ <BR>
+<CODE>blt::treeview .t<BR>
+set node [.t insert end root "one"]<BR>
+</CODE><P>or <B>tree</B> command.  <BR>
+<CODE>set tree [blt::tree create]<BR>
+set node [$tree insert root "one"]<BR>
+</CODE><P>In both cases, a number identifying the node is returned (the value of
+<I>$node</I>).  This serial number or <I>id</I> uniquely identifies the node.  Please note
+that you can't infer a location or position of a node from its id.  The only
+exception is that the root node is always id <I>0</I>. Since nodes may have the
+same labels or be moved within the tree, ids provide an convenient way
+to identify nodes.  If a tree is shared, the ids will be the same regardless
+if you are using by the <B>treeview</B> widget or the <B>tree</B> command.  Ids are recycled
+when the node deleted. <P>
+A node may also have any number of <I>tags</I> associated
+with it.  A tag is just a string of characters, and it may take any form
+except that of an integer.  For example, "<I>x123</I>" is valid, but "<I>123</I>" isn't.
+ The same tag may be associated with many different nodes.  This is typically
+done to associate a group of nodes.  Many operations in the <B>treeview</B> widget
+take either node ids or tag names as arguments.  Using a tag says to apply
+the operation to all nodes with that tag. <P>
+The tag <B>all</B> is implicitly associated
+with every node in the tree.  It may be used to invoke operations on all
+the nodes in the tree.  <P>
+Tags may be shared, just like trees, between clients.
+ For example, you can use the tags created by the <B>tree</B> command with <B>treeview</B>
+widgets. 
+<H2><A NAME="sect7" HREF="#toc7">Special Node IDs</A></H2>
+There are also several special non-numeric ids. 
+Special ids differ from tags in that they are always translated to their
+numeric equivalent.  They also take precedence over tags.  For example, you
+can't use a tag name that is a special id.  These ids are specific to the
+<B>treeview</B> widget. 
+<DL>
+
+<DT><B>active</B> </DT>
+<DD>The node where the mouse pointer is currently located.
+When a node is active, it is drawn using its active icon  (see the <B>-activeicon</B>
+option). The <B>active</B> id is changed automatically by moving the mouse pointer
+over another node or by using the <B>entry activate</B> operation. Note that there
+can be only one active node at a time. </DD>
+
+<DT><B>anchor</B> </DT>
+<DD>The node representing the
+fixed end of the current selection.   The anchor is set by the <B>selection
+anchor</B> operation. </DD>
+
+<DT><B>current</B> </DT>
+<DD>The node where the mouse pointer is currently
+located. But unlike <B>active</B>, this id changes while the selection is dragged.
+ It is used to determine the current node during button drags. </DD>
+
+<DT><B>down</B> </DT>
+<DD>The
+next open node from the current focus. The <B>down</B> of the last open node is
+the same. </DD>
+
+<DT><B>end</B> </DT>
+<DD>The last open node (in depth-first order) on the tree.   </DD>
+
+<DT><B>focus</B>
+</DT>
+<DD>The node that currently has focus.  When a node has focus, it receives key
+events.  To indicate focus, the node is drawn with a dotted line around
+its label.  You can change the  focus using the <B>focus</B> operation. </DD>
+
+<DT><B>last</B> </DT>
+<DD>The
+last open node from the current focus. But unlike <B>up</B>, when the focus is
+at root, <B>last</B> wraps around to the last open node in the tree. </DD>
+
+<DT><B>mark</B> </DT>
+<DD>The node
+representing the non-fixed end of the current selection.   The mark is set
+by the <B>selection mark</B> operation. </DD>
+
+<DT><B>next</B> </DT>
+<DD>The next open node from the current
+focus.  But unlike <B>down</B>, when the focus is on last open node, <B>next</B> wraps
+around to the  root node. </DD>
+
+<DT><B>nextsibling</B> </DT>
+<DD>The next sibling from the node with
+the current focus.  If the node is already the last sibling then it is the
+<B>nextsibling<B>. </DD>
+
+<DT><B>parent</B></B></B> </DT>
+<DD>The parent of the node with the current focus. The <B>parent</B>
+of the root is also the root. </DD>
+
+<DT><B>prevsibling</B> </DT>
+<DD>The previous sibling from the
+node with the current focus.  If the node is already the first sibling then
+it is the <B>prevsibling<B>. </DD>
+
+<DT><B>root</B></B></B> </DT>
+<DD>The root node. You can also use id <I>0</I> to indicate
+the root. </DD>
+
+<DT><B>up</B> </DT>
+<DD>The last open node (in depth-first order) from the current focus.
+The <B>up</B> of the root node (i.e. the root has focus) is also the root. </DD>
+
+<DT><B>view.top</B>
+</DT>
+<DD>First node that's current visible in the widget. </DD>
+
+<DT><B>view.bottom</B> </DT>
+<DD>Last node that's
+current visible in the widget. </DD>
+
+<DT><I>path</I>  </DT>
+<DD>Absolute path of a node.  Path names
+refer to the node name, not their entry labels. Paths don't have to start
+with a separator (see the <B>-separator</B> configuration option), but component
+names must be separated by the designated separator. </DD>
+
+<DT><B>@<I>x<B>,<I>y</I></B></I></B> </DT>
+<DD>Indicates the
+node that covers the point in the treeview window specified by <I>x</I> and <I>y</I>
+(in pixel coordinates).  If no part of the entryd covers that point, then
+the closest node to that point is used. </DD>
+</DL>
+<P>
+A node may be specified as an id
+or tag. If the specifier is an integer then it is assumed to refer to the
+single node with that id. If the specifier is not an integer, it's checked
+to see if it's a special id (such as focus).  Otherwise, it's assumed to be
+tag.  Some operations only operate on a single node at a time; if a tag
+refers to more than one node, then an error is generated. 
+<H2><A NAME="sect8" HREF="#toc8">Data Fields</A></H2>
+A node
+in the tree can have <I>data fields</I>.  A data field is a name-value pair, used
+to represent arbitrary data in the node.  Nodes can contain different fields
+(they aren't required to contain the same fields).  You can optionally display
+these fields in the <B>treeview</B> widget in columns running on either side of
+the displayed tree.  A node's value for the field is drawn in the column
+along side its node in the hierarchy.  Any node that doesn't have a specific
+field is left blank.  Columns can be interactively resized, hidden, or,
+moved. 
+<H2><A NAME="sect9" HREF="#toc9">Entry Bindings</A></H2>
+You can bind Tcl commands to be invoked when events
+occur on nodes (much like Tk canvas items).  You can bind a node using its
+id or its <I>bindtags</I>.  Bindtags are simply names that associate a binding
+with one or more nodes.  There is a built-in tag <I>all</I> that all node entries
+automatically have. 
+<H2><A NAME="sect10" HREF="#toc10">Treeview Operations</A></H2>
+The <B>treeview</B> operations are the invoked
+by specifying the widget's pathname, the operation, and any arguments that
+pertain  to that operation.  The general form is: <P>
+<BR>
+<CODE><I>pathName operation </I>?<I>arg arg ...</I>?<BR>
+<P>
+</CODE><P><I>Operation</I> and the <I>arg</I>s determine the exact behavior of the command.  The
+following operation are available for <B>treeview</B> widgets: 
+<DL>
+
+<DT><I>pathName <B>bbox</B></I> ?<B>-screen</B>?
+<I>tagOrId...</I> </DT>
+<DD>Returns a list of 4 numbers, representing a bounding box of around
+the specified entries. The entries is given by one or more <I>tagOrId</I>  arguments.
+  If the <B>-screen</B> flag is given, then the x-y coordinates of the bounding
+box are returned as screen coordinates, not  virtual coordinates. Virtual
+coordinates start from <I>0</I> from the root node. The returned list contains
+the following values. <blockquote></DD>
+
+<DT><I>x</I>  </DT>
+<DD>X-coordinate of the upper-left corner of the bounding
+box. </DD>
+
+<DT><I>y</I> </DT>
+<DD>Y-coordinate of the upper-left corner of the bounding box. </DD>
+
+<DT><I>width</I> </DT>
+<DD>Width
+of the bounding box. </DD>
+
+<DT><I>height</I> </DT>
+<DD>Height of the bounding box. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>bind</B></I> <I>tagName</I>
+?<I>sequence command</I>? </DT>
+<DD>Associates <I>command</I> with <I>tagName</I> such that whenever the
+event sequence given by <I>sequence</I> occurs for a node with this tag, <I>command</I>
+will be invoked.  The syntax is similar to the  <B>bind</B> command except that
+it operates on <B>treeview</B> entries,  rather than widgets. See the <B>bind</B> manual
+entry for complete details on <I>sequence</I> and the substitutions performed
+on  <I>command</I> before invoking it.   <P>
+If all arguments are specified then a
+new binding is created, replacing  any existing binding for the same <I>sequence</I>
+and <I>tagName</I>. If the first character of <I>command</I> is <I>+</I> then <I>command</I>  augments
+an existing binding rather than replacing it.  If no <I>command</I> argument is
+provided then the command currently associated with <I>tagName</I> and <I>sequence</I>
+(it's an error occurs  if there's no such binding) is returned.  If both <I>command</I>
+and  <I>sequence</I> are missing then a list of all the event sequences for  which
+bindings have been defined for <I>tagName</I>.  </DD>
+
+<DT><I>pathName <B>button <I>operation</I></B></I> ?<I>args</I>?
+</DT>
+<DD>This command is used to control the button selectors within a  <B>treeview</B>
+widget.   It has several forms, depending on <I>operation</I>: <blockquote></DD>
+
+<DT><I>pathName <B>button
+activate</B></I> <I>tagOrId</I> </DT>
+<DD>Designates the node given by <I>tagOrId</I> as active.   When
+a node is active it's entry is drawn using its active icon  (see the <B>-activeicon</B>
+option).  Note that there can be only one active entry at a time. The special
+id <B>active</B> indicates the currently active node. </DD>
+
+<DT><I>pathName <B>button bind</B></I> <I>tagName</I>
+?<I>sequence command</I>? </DT>
+<DD>Associates <I>command</I> with <I>tagName</I> such that whenever the
+event sequence given by <I>sequence</I> occurs for an button of a node entry with
+this tag, <I>command</I> will be invoked.  The syntax is similar to the <B>bind</B> command
+except that it operates on <B>treeview</B> buttons, rather than widgets. See the
+<B>bind</B> manual entry for complete details on <I>sequence</I> and the substitutions
+performed on <I>command</I> before invoking it. <P>
+If all arguments are specified
+then a new binding is created, replacing  any existing binding for the
+same <I>sequence</I> and <I>tagName</I>. If the first character of <I>command</I> is <I>+</I> then <I>command</I>
+ augments an existing binding rather than replacing it.  If no <I>command</I> argument
+is provided then the command currently associated with <I>tagName</I> and <I>sequence</I>
+(it's an error occurs  if there's no such binding) is returned.  If both <I>command</I>
+and  <I>sequence</I> are missing then a list of all the event sequences for  which
+bindings have been defined for <I>tagName</I>.  </DD>
+
+<DT><I>pathName <B>button cget</B></I> <I>option</I> </DT>
+<DD>Returns
+the current value of the configuration option given by <I>option</I>. <I>Option</I> may
+have any of the values accepted by the <B>configure</B> operation described below.
+</DD>
+
+<DT><I>pathName <B>button configure</B></I> ?<I>option</I>? ?<I>value option value ...</I>? </DT>
+<DD>Query or modify
+the configuration options of the widget. If no <I>option</I> is specified, returns
+a list describing all of the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B>
+for information on the format of this list).  If <I>option</I> is specified with
+no <I>value</I>, 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 <I>option</I> is specified).  If one or more <I>option-value</I> 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. <I>Option</I>
+and <I>value</I> are described in the section  <FONT SIZE=-1><B>BUTTON OPTIONS</B></FONT>
+  below. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName
+<B>cget</B></I> <I>option</I> </DT>
+<DD>Returns the current value of the configuration option given
+by <I>option</I>. <I>Option</I> may have any of the values accepted by the <B>configure</B> operation
+described below. </DD>
+
+<DT><I>pathName <B>close </B></I>?<B>-recurse</B>? <I>tagOrId...</I> </DT>
+<DD>Closes the node specified
+by <I>tagOrId</I>.  In addition, if a Tcl script was specified by the <B>-closecommand</B>
+option, it is invoked.  If the node is already closed, this command has
+no effect. If the <B>-recurse</B> flag is present, each child node is recursively
+closed. </DD>
+
+<DT><I>pathName <B>column <I>operation</I></B></I> ?<I>args</I>? </DT>
+<DD>The following operations are available
+for treeview columns. <blockquote></DD>
+
+<DT><I>pathName <B>column activate</B></I> <I>column</I> </DT>
+<DD>Sets the active column
+to <I>column</I>.  <I>Column</I> is the name of a column in the widget. When a column is
+active, it's drawn using its <B>-activetitlebackground</B> and <B>-activetitleforeground</B>
+options.  If <I>column</I> is the <I>""</I>, then no column will be active.  If no column
+argument is provided, then the name of the currently active column is returned.
+</DD>
+
+<DT><I>pathName <B>column cget</B></I> <I>name</I> <I>option</I> </DT>
+<DD>Returns the current value of the column
+configuration option given by <I>option</I> for <I>name</I>.  <I>Name</I> is the name of column
+that corresponds to a data field. <I>Option</I> may have any of the values accepted
+by the <B>configure</B> operation described below. </DD>
+
+<DT><I>pathName <B>column configure</B></I> <I>name</I>
+?<I>option</I>? ?<I>value option value ...</I>? </DT>
+<DD>Query or modify the configuration options
+of the column designated by <I>name</I>. <I>Name</I> is the name of the column corresponding
+to a data field. If no <I>option</I> is specified, returns a list describing all
+of the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for information
+on the format of this list).  If <I>option</I> is specified with no <I>value</I>, 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 <I>option</I>
+is specified).  If one or more <I>option-value</I> 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. <I>Option</I> and <I>value</I> are
+described in the section <FONT SIZE=-1><B>COLUMN OPTIONS</B></FONT>
+  below. </DD>
+
+<DT><I>pathName <B>column delete</B></I> <I>field</I>
+?<I>field</I>...? </DT>
+<DD>Deletes one of more columns designated by <I>field</I>.  Note that this
+does not delete the data fields themselves. </DD>
+
+<DT><I>pathName <B>column insert</B></I> <I>position</I>
+<I>field</I> ?<I>options</I>...? </DT>
+<DD>Inserts one of more columns designated by <I>field</I>.  A column
+displays each node's data field by the same name.  If the node doesn't have
+the given field, the cell is left blank. <I>Position</I> indicates where in the
+list of columns to add the new column.  It may be either a number or <I>end</I>.
+ </DD>
+
+<DT><I>pathName <B>column invoke</B></I> <I>field</I> </DT>
+<DD>Invokes the Tcl command associated with the
+column <I>field</I>,  if there is one (using the column's <B>-command</B> option).   The
+command is ignored if the column's <B>-state</B> option  set to <I>disabled</I>. </DD>
+
+<DT><I>pathName
+<B>column move <I>name</I></B></I> <I>dest</I>  </DT>
+<DD>Moves the column <I>name</I> to the destination position.
+  <I>Dest</I> is the name of another column or a screen position in the form <I>@<I>x<I>,<I>y</I></I></I></I>.
+</DD>
+
+<DT><I>pathName <B>column names</B></I> </DT>
+<DD>Returns a list of the names of all columns in the
+widget. The list is ordered as the columns are drawn from left-to-right. </DD>
+
+<DT><I>pathName
+<B>column nearest</B></I> <I>x</I> ?<I>y</I>? </DT>
+<DD>Returns the name of the column closest to the given
+X-Y screen coordinate.  If you provide a <I>y</I> argument (it's optional), a name
+is returned only when if the point is over a column's title. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>configure</B></I>
+?<I>option</I>? ?<I>value option value ...</I>? </DT>
+<DD>Query or modify the configuration options
+of the widget. If no <I>option</I> is specified, returns a list describing all
+of the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for information
+on the format of this list).  If <I>option</I> is specified with no <I>value</I>, 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 <I>option</I>
+is specified).  If one or more <I>option-value</I> 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. <I>Option</I> and <I>value</I> are
+described in the section <FONT SIZE=-1><B>TREEVIEW OPTIONS</B></FONT>
+  below. </DD>
+
+<DT><I>pathName <B>curselection</B></I>
+</DT>
+<DD>Returns a list containing the ids of all of the entries that are  currently
+selected. If there are no entries selected, then the empty string is returned.
+</DD>
+
+<DT><I>pathName <B>delete <I>tagOrId</I></B></I>... </DT>
+<DD>Deletes one or more entries given by <I>tagOrId</I> and
+its children. </DD>
+
+<DT><I>pathName <B>entry <I>operation</I></B></I> ?<I>args</I>? </DT>
+<DD>The following operations are
+available for treeview entries. <blockquote></DD>
+
+<DT><I>pathName <B>entry activate</B></I> <I>tagOrId</I> </DT>
+<DD>Sets the
+active entry to the one specified by <I>tagOrId</I>.   When an entry is active
+it is drawn using its active icon  (see the <B>-activeicon</B> option).  Note that
+there can be only one active node at a time. The special id of the currently
+active node is <B>active</B>. </DD>
+
+<DT><I>pathName <B>entry cget</B></I> <I>option</I> </DT>
+<DD>Returns the current value
+of the configuration option given by <I>option</I>. <I>Option</I> may have any of the
+values accepted by the <B>configure</B> operation described below. </DD>
+
+<DT><I>pathName <B>entry
+children</B></I> <I>tagOrId</I>  ?<I>first</I>? ?<I>last</I>? </DT>
+<DD>Returns a list of ids for the given range
+of children of <I>tagOrId</I>.   <I>TagOrId</I> is the id or tag of the node to be examined.
+If only a <I>first</I> argument is present, then the id  of the that child at
+that numeric position is returned.  If both <I>first</I>  and <I>last</I> arguments are
+given, then the ids of all the children in that range are returned.  Otherwise
+the ids of all children are returned.   </DD>
+
+<DT><I>pathName <B>entry configure</B></I> ?<I>option</I>?
+?<I>value option value ...</I>? </DT>
+<DD>Query or modify the configuration options of the
+widget. If no <I>option</I> is specified, returns a list describing all of the
+available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for information on
+the format of this list).  If <I>option</I> is specified with no <I>value</I>, 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 <I>option</I>
+is specified).  If one or more <I>option-value</I> 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. <I>Option</I> and <I>value</I> are
+described below: </DD>
+
+<DT><I>pathName <B>entry delete</B></I> <I>tagOrId</I> ?<I>first</I> ?<I>last</I>? </DT>
+<DD>Deletes the
+one or more children nodes of the parent <I>tagOrId</I>. If <I>first</I> and <I>last</I> arguments
+are present, they are positions designating a range of children nodes to
+be deleted. </DD>
+
+<DT><I>pathName <B>entry isbefore <I>tagOrId1</I></B></I> <I>tagOrId2</I> </DT>
+<DD>Returns 1 if <I>tagOrId1</I>
+is before <I>tagOrId2</I> and 0 otherwise. </DD>
+
+<DT><I>pathName <B>entry ishidden <I>tagOrId</I></B></I> </DT>
+<DD>Returns
+1 if the node is currently hidden and 0 otherwise.  A node is also hidden
+if any of its ancestor nodes are closed or hidden. </DD>
+
+<DT><I>pathName <B>entry isopen
+<I>tagOrId</I></B></I> </DT>
+<DD>Returns 1 if the node is currently open and 0 otherwise. </DD>
+
+<DT><I>pathName
+<B>entry size</B></I> <B>-recurse</B> <I>tagOrId</I> </DT>
+<DD>Returns the number of children for parent node
+<I>tagOrId</I>.   If the <B>-recurse</B> flag is set, the number of all  its descendants
+is returned.  The node itself is not counted. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>find </B></I>?<I>flags</I>? <I>first</I>
+<I>last</I> </DT>
+<DD>Finds for all entries matching the criteria given by <I>flags</I>.  A list
+of ids for all matching nodes is returned. <I>First</I> and <I>last</I> are ids designating
+the range of the search in depth-first order. If <I>last</I> is before <I>first</I>, then
+nodes are searched in reverse order.  The valid flags are: <blockquote></DD>
+
+<DT><B>-name<I> pattern</I></B>
+</DT>
+<DD>Specifies pattern to match against node names. </DD>
+
+<DT><B>-full<I> pattern</I></B> </DT>
+<DD>Specifies pattern
+to match against node pathnames. </DD>
+
+<DT><B>-<I>option<I> pattern</I></I></B> </DT>
+<DD>Specifies pattern to match
+against the node entry's configuration option. </DD>
+
+<DT><B>-exact</B> </DT>
+<DD>Patterns must match
+exactly.  The is the default. </DD>
+
+<DT><B>-glob</B> </DT>
+<DD>Use global pattern matching.  Matching
+is done in a fashion similar to that used by the C-shell.  For  the  two
+strings  to match, their contents must be identical except that the  following
+ special  sequences  may appear in pattern: <blockquote></DD>
+
+<DT><I>*</I> </DT>
+<DD>Matches  any  sequence  of
+ characters in string, including a null string. </DD>
+
+<DT><I>?</I> </DT>
+<DD>Matches any single character
+in string. </DD>
+
+<DT><I>[<I>chars<I>]</I></I></I> </DT>
+<DD>Matches any character in the set given by <I>chars</I>. If a
+sequence of the form <I>x</I>-<I>y</I> appears in <I>chars</I>, then any character between  <I>x</I>
+and <I>y</I>, inclusive, will match. </DD>
+
+<DT><I>\<I>x</I></I> </DT>
+<DD>Matches  the  single  character  <I>x</I>.  This
+provides a way of  avoiding  the  special interpretation of the characters
+<I>*?[]\</I> in the pattern. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-regexp</B> </DT>
+<DD>Use regular expression pattern matching (i.e.
+the same as implemented by the <B>regexp</B> command).   </DD>
+
+<DT><B>-nonmatching</B> </DT>
+<DD>Pick entries
+that don't match.   </DD>
+
+<DT><B>-exec<I> string</I></B> </DT>
+<DD>Specifies a Tcl script to be invoked for
+each matching node. Percent substitutions are performed on <I>string</I> before
+ it is executed.  The following substitutions are valid: <blockquote></DD>
+
+<DT><I>%W</I> </DT>
+<DD>The pathname
+of the widget. </DD>
+
+<DT><I>%p</I> </DT>
+<DD>The name of the node. </DD>
+
+<DT><I>%P</I> </DT>
+<DD>The full pathname of the node.
+</DD>
+
+<DT><I>%#</I> </DT>
+<DD>The id of the node. </DD>
+
+<DT><I>%%</I> </DT>
+<DD>Translates to a single percent. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-count<I> number</I></B> </DT>
+<DD>Stop
+searching after <I>number</I> matches. </DD>
+
+<DT><B>--</B> </DT>
+<DD>Indicates the end of flags. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>focus
+</B></I> <I>tagOrId</I> </DT>
+<DD>Sets the focus to the node given by <I>tagOrId</I>.  When a node has focus,
+it can receive keyboard events.    The special id <B>focus</B> designates the node
+that currently has focus. </DD>
+
+<DT><I>pathName <B>get </B></I>?<B>-full</B>? <I>tagOrId</I> <I>tagOrId</I>... </DT>
+<DD>Translates
+one or more ids to their node entry names.  It returns a list of  names
+for all the ids specified.  If the <B>-full</B> flag is set, then the full pathnames
+are returned. </DD>
+
+<DT><I>pathName <B>hide </B></I>?<B>flags</B>? <I>tagOrId</I>... </DT>
+<DD>Hides all nodes matching the
+criteria given by <I>flags</I>.  The search is performed recursively for each node
+given by <I>tagOrId</I>. The valid flags are described below: <blockquote></DD>
+
+<DT><B>-name<I> pattern</I></B> </DT>
+<DD>Specifies
+pattern to match against node names. </DD>
+
+<DT><B>-full<I> pattern</I></B> </DT>
+<DD>Specifies pattern to match
+against node pathnames. </DD>
+
+<DT><B>-<I>option<I> pattern</I></I></B> </DT>
+<DD>Specifies pattern to match against
+the node entry's configuration option. </DD>
+
+<DT><B>-exact</B> </DT>
+<DD>Match patterns exactly.  The
+is the default. </DD>
+
+<DT><B>-glob</B> </DT>
+<DD>Use global pattern matching.  Matching is done in a
+fashion similar to that used by the C-shell.  For  the  two strings  to match,
+their contents must be identical except that the  following  special  sequences
+ may appear in pattern: <blockquote></DD>
+
+<DT><I>*</I> </DT>
+<DD>Matches  any  sequence  of  characters in string,
+including a null string. </DD>
+
+<DT><I>?</I> </DT>
+<DD>Matches any single character in string. </DD>
+
+<DT><I>[<I>chars<I>]</I></I></I>
+</DT>
+<DD>Matches any character in the set given by <I>chars</I>. If a sequence of the form
+<I>x</I>-<I>y</I> appears in <I>chars</I>, then any character between  <I>x</I> and <I>y</I>, inclusive, will
+match. </DD>
+
+<DT><I>\<I>x</I></I> </DT>
+<DD>Matches  the  single  character  <I>x</I>.  This provides a way of  avoiding
+ the  special interpretation of the characters <I>*?[]\</I> in the pattern. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-regexp</B>
+</DT>
+<DD>Use regular expression pattern matching (i.e. the same as implemented by
+the <B>regexp</B> command).   </DD>
+
+<DT><B>-nonmatching</B> </DT>
+<DD>Hide nodes that don't match.   </DD>
+
+<DT><B>--</B> </DT>
+<DD>Indicates
+the end of flags. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>index </B></I>?<B>-at</B> <I>tagOrId</I>? <I>string</I>  </DT>
+<DD>Returns the id of
+the node specified by <I>string</I>.  <I>String</I> may be a tag or node id. Some special
+ids are normally relative to the node that  has focus.  The <B>-at</B> flag lets
+you select another node. </DD>
+
+<DT><I>pathName <B>insert </B></I>?<B>-at <I>tagOrId</I></B>? <I>position</I> <I>path</I> ?<I>options...</I>?
+?<I>path</I>? ?<I>options...</I>?  </DT>
+<DD>Inserts one or more nodes at <I>position</I>.  <I>Position</I> is the
+location (number or <I>end</I>) where the new nodes are added to the parent node.
+ <I>Path</I> is the pathname of the new node. Pathnames can be formated either
+as a Tcl list (each element is a path component) or as a string separated
+by a special character sequence (using the <B>-separator</B> option).  Pathnames
+are normally absolute, but the <B>-at</B> switch lets you select a relative starting
+point.  Its value is the id of the starting node.   <P>
+All ancestors of the
+new node must already exist, unless the <B>-autocreate</B> option is set.  It is
+also an error if a node already exists, unless the <B>-allowduplicates</B> option
+is set. <P>
+<I>Option</I> and <I>value</I> may have any of the values accepted by the  <B>entry
+configure</B> operation described in the <FONT SIZE=-1><B>ENTRY OPERATIONS</B></FONT>
+  section below.  This
+command returns a list of the ids of the new entries. </DD>
+
+<DT><I>pathName <B>move <I>tagOrId</I></B></I>
+<I>how</I> <I>destId</I> </DT>
+<DD>Moves the node given by <I>tagOrId</I> to the destination node.  The
+node can not be an ancestor of the destination.  <I>DestId</I> is the id of the
+destination node and can not be the root of the tree.  In conjunction with
+<I>how</I>, it describes how the move is performed. <blockquote></DD>
+
+<DT><I>before</I> </DT>
+<DD>Moves the node before
+the destination node. </DD>
+
+<DT><I>after</I> </DT>
+<DD>Moves the node after the destination node. </DD>
+
+<DT><I>into</I>
+</DT>
+<DD>Moves the node to the end of the destination's list of children. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName
+<B>nearest <I>x y</I></B></I> ?<I>varName</I>? </DT>
+<DD>Returns the id of the node entry closest to the given
+X-Y screen coordinate.  The optional argument <I>varName</I> is the name of variable
+which is set to either <I>button</I> or <I>select</I> to indicate over what part of the
+node the coordinate lies.   If the coordinate is not directly over any node,
+then <I>varName</I> will contain the empty string. </DD>
+
+<DT><I>pathName <B>open </B></I>?<B>-recurse</B>? <I>tagOrId...</I>
+</DT>
+<DD>Opens the one or more nodes specified by <I>tagOrId</I>.   If a node is not already
+open, the Tcl script specified by the  <B>-opencommand</B> option is invoked. If
+the <B>-recurse</B> flag  is present, then each descendant is recursively opened.
+  </DD>
+
+<DT><I>pathName <B>range</B></I> ?<B>-open</B>? <I>first last</I> </DT>
+<DD>Returns the ids in depth-first order
+of the nodes between the <I>first</I> and <I>last</I> ids.  If the <B>-open</B> flag is present,
+it indicates to consider only open nodes. If <I>last</I> is before <I>first</I>, then
+the ids are returned in reverse order. </DD>
+
+<DT><I>pathName <B>scan</B></I> <I>option args</I> </DT>
+<DD>This command
+implements scanning.  It has two forms, depending on <I>option</I>: <blockquote></DD>
+
+<DT><I>pathName <B>scan
+mark <I>x y</I></B></I> </DT>
+<DD>Records <I>x</I> and <I>y</I> and the current view in the treeview window; 
+used in conjunction with later <B>scan dragto</B> commands. Typically this command
+is associated with a mouse button press in the widget.  It returns an empty
+string. </DD>
+
+<DT><I>pathName <B>scan dragto <I>x y</I></B></I>. </DT>
+<DD>Computes the difference between its <I>x</I> and
+<I>y</I> arguments and the <I>x</I> and <I>y</I> arguments to the last <B>scan mark</B> command for
+the widget. It then adjusts the view by 10 times the difference in coordinates.
+ This command is typically associated with mouse motion events in the widget,
+to produce the effect of dragging the list at high speed through the window.
+ The return value is an empty string. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>see</B></I> ?<B>-anchor <I>anchor</I></B>? <I>tagOrId</I>
+</DT>
+<DD>Adjusts the view of entries so that the node given by <I>tagOrId</I> is visible
+in the widget window.  It is an error if <B>tagOrId</B> is a tag that refers to
+more than one node.  By default the node's entry is displayed in the middle
+of the window.  This can changed using the <B>-anchor</B> flag.  Its value is a Tk
+anchor position. </DD>
+
+<DT><I>pathName <B>selection <I>option arg</I></B></I> </DT>
+<DD>This command is used to adjust
+the selection within a <B>treeview</B> widget.  It has several forms, depending
+on <I>option</I>: <blockquote></DD>
+
+<DT><I>pathName <B>selection anchor <I>tagOrId</I></B></I> </DT>
+<DD>Sets the selection anchor
+to the node given by <I>tagOrId</I>. If <I>tagOrId</I> refers to a non-existent node, then
+the closest node is used. The selection anchor is the end of the selection
+that is fixed while dragging out a selection with the mouse. The special
+id <B>anchor</B> may be used to refer to the anchor node. </DD>
+
+<DT><I>pathName <B>selection cancel</B></I>
+</DT>
+<DD>Clears the temporary selection of entries back to the current anchor.  Temporary
+selections are created by  the <B>selection mark</B> operation. </DD>
+
+<DT><I>pathName <B>selection
+clear <I>first </I></B></I>?<I>last</I>? </DT>
+<DD>Removes the entries between <I>first</I> and <I>last</I> (inclusive)
+from the selection.  Both <I>first</I> and  <I>last</I> are ids representing a range of
+entries. If <I>last</I> isn't given, then only <I>first</I> is deselected. Entries outside
+the selection are not affected. </DD>
+
+<DT><I>pathName <B>selection clearall</B></I> </DT>
+<DD>Clears the entire
+selection.   </DD>
+
+<DT><I>pathName <B>selection mark <I>tagOrId</I></B></I> </DT>
+<DD>Sets the selection mark to
+the node given by <I>tagOrId</I>.  This causes the range of entries between the
+anchor and the mark to be temporarily added to the selection.  The selection
+mark is the end of the selection that is fixed while dragging out a selection
+with the mouse.  The special id <B>mark</B> may be used to refer to the current
+ mark node. If <I>tagOrId</I> refers to a non-existent node, then the mark is ignored.
+Resetting the mark will unselect the previous range.  Setting the anchor
+finalizes the range. </DD>
+
+<DT><I>pathName <B>selection includes <I>tagOrId</I></B></I> </DT>
+<DD>Returns 1 if the
+node given by <I>tagOrId</I> is currently selected, 0 if it isn't. </DD>
+
+<DT><I>pathName <B>selection
+present</B></I> </DT>
+<DD>Returns 1 if any nodes are currently selected and 0 otherwise. </DD>
+
+<DT><I>pathName
+<B>selection set <I>first </I></B></I>?<I>last</I>? </DT>
+<DD>Selects all of the nodes in the range between
+<I>first</I> and <I>last</I>, inclusive, without affecting the selection state of nodes
+outside that range. </DD>
+
+<DT><I>pathName <B>selection toggle <I>first </I></B></I>?<I>last</I>? </DT>
+<DD>Selects/deselects
+nodes in the range between <I>first</I> and <I>last</I>, inclusive, from the selection.
+If a node is currently selected, it becomes deselected, and visa versa.
+</DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>show </B></I>?<B>flags</B>? <I>tagOrId</I>... </DT>
+<DD>Exposes all nodes matching the criteria given
+by <I>flags</I>.  This is the inverse of the <B>hide</B> operation.  The search is performed
+recursively for each node given by <I>tagOrId</I>.  The valid flags are described
+below: <blockquote></DD>
+
+<DT><B>-name<I> pattern</I></B> </DT>
+<DD>Specifies pattern to match against node names. </DD>
+
+<DT><B>-full<I>
+pattern</I></B> </DT>
+<DD>Specifies pattern to match against node pathnames. </DD>
+
+<DT><B>-<I>option<I> pattern</I></I></B>
+</DT>
+<DD>Specifies pattern to match against the entry's configuration option. </DD>
+
+<DT><B>-exact</B>
+</DT>
+<DD>Match patterns exactly.  The is the default. </DD>
+
+<DT><B>-glob</B> </DT>
+<DD><B>-glob</B> Use global pattern
+matching.  Matching is done in a fashion similar to that used by the C-shell.
+ For  the  two strings  to match, their contents must be identical except
+that the  following  special  sequences  may appear in pattern: <blockquote></DD>
+
+<DT><I>*</I> </DT>
+<DD>Matches
+ any  sequence  of  characters in string, including a null string. </DD>
+
+<DT><I>?</I> </DT>
+<DD>Matches
+any single character in string. </DD>
+
+<DT><I>[<I>chars<I>]</I></I></I> </DT>
+<DD>Matches any character in the set
+given by <I>chars</I>. If a sequence of the form <I>x</I>-<I>y</I> appears in <I>chars</I>, then any
+character between  <I>x</I> and <I>y</I>, inclusive, will match. </DD>
+
+<DT><I>\<I>x</I></I> </DT>
+<DD>Matches  the  single
+ character  <I>x</I>.  This provides a way of  avoiding  the  special interpretation
+of the characters <I>*?[]\</I> in the pattern. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-regexp</B> </DT>
+<DD>Use regular expression pattern
+matching (i.e. the same as implemented by the <B>regexp</B> command).   </DD>
+
+<DT><B>-nonmatching</B>
+</DT>
+<DD>Expose nodes that don't match.   </DD>
+
+<DT><B>--</B> </DT>
+<DD>Indicates the end of flags. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>sort</B></I>
+?<I>operation</I>? <I>args...</I> </DT>
+<DD><blockquote></DD>
+
+<DT><I>pathName <B>sort auto</B></I> ?<I>boolean</I> </DT>
+<DD>Turns on/off automatic sorting
+of node entries.  If <I>boolean</I> is true, entries will be automatically sorted
+as they are opened, closed, inserted, or deleted.  If no <I>boolean</I> argument
+is provided, the current state is returned. </DD>
+
+<DT><I>pathName <B>sort cget</B></I> <I>option</I> </DT>
+<DD>Returns
+the current value of the configuration option given by <I>option</I>. <I>Option</I> may
+have any of the values accepted by the <B>configure</B> operation described below.
+</DD>
+
+<DT><I>pathName <B>sort configure</B></I> ?<I>option</I>? ?<I>value option value ...</I>? </DT>
+<DD>Query or modify
+the sorting configuration options of the widget. If no <I>option</I> is specified,
+returns a list describing all of the available options for <I>pathName</I> (see
+<B>Tk_ConfigureInfo</B> for information on the format of this list).  If <I>option</I>
+is specified with no <I>value</I>, 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 <I>option</I> is specified).  If one or more
+<I>option-value</I> pairs are specified, then the command modifies the given sorting
+option(s) to have the given value(s);  in this case the command returns
+an empty string. <I>Option</I> and <I>value</I> are described below: <blockquote></DD>
+
+<DT><B>-column<I> string</I></B> </DT>
+<DD>Specifies
+the column to sort. Entries in the widget are rearranged according to this
+column.  If <I>column</I> is <I>""</I> then no sort is performed. </DD>
+
+<DT><B>-command<I> string</I></B> </DT>
+<DD>Specifies
+a Tcl procedure to be called when sorting nodes.  The procedure is called
+with three arguments: the pathname of the widget and the fields of two
+entries.  The procedure returns 1 if the first node is greater than the
+second, -1 is the second is greater, and 0 if equal.   </DD>
+
+<DT><B>-decreasing<I> boolean</I></B>
+</DT>
+<DD>Indicates to sort in ascending/descending order.  If <I>boolean</I>  is true, then
+the entries as in descending order. The default is  <I>no</I>. </DD>
+
+<DT><B>-mode<I> string</I></B> </DT>
+<DD>Specifies
+how to compare entries when sorting. <I>String</I> may be one of the following:
+<blockquote></DD>
+
+<DT><I>ascii</I> </DT>
+<DD>Use string comparison based upon the ASCII collation order. </DD>
+
+<DT><I>dictionary</I>
+ </DT>
+<DD>Use dictionary-style comparison.  This is the same as <I>ascii</I> except (a) case
+is ignored except as a tie-breaker and (b) if two strings contain embedded
+numbers, the numbers compare as integers, not characters.  For example,
+"bigBoy" sorts between "bigbang" and "bigboy", and "x10y" sorts between
+"x9y" and "x11y". </DD>
+
+<DT><I>integer</I> </DT>
+<DD>Compares fields as integers. </DD>
+
+<DT><I>real</I> </DT>
+<DD>Compares fields
+as floating point numbers. </DD>
+
+<DT><I>command</I> </DT>
+<DD>Use the Tcl proc specified by the <B>-command</B>
+option to compare entries  when sorting.   If no command is specified, the
+sort reverts to  <I>ascii</I> sorting. </DD>
+</DL>
+</blockquote>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>sort once</B></I> ?<I>flags</I>? <I>tagOrId...</I> </DT>
+<DD>Sorts
+the children for each entries specified by <I>tagOrId</I>.   By default, entries
+are sorted by name, but you can specify a  Tcl proc to do your own comparisons.
+<blockquote></DD>
+
+<DT><B>-recurse</B> </DT>
+<DD>Recursively sort the entire branch, not just the children. </DD>
+</DL>
+</blockquote>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName
+<B>tag <I>operation args</I></B></I> </DT>
+<DD>Tags are a general means of selecting and marking nodes
+in the tree. A tag is just a string of characters, and it may take any form
+except that of an integer.  The same tag may be associated with many different
+nodes.   <P>
+Both <I>operation</I> and its arguments determine the exact behavior of
+the command.  The operations available for tags are listed below. <blockquote></DD>
+
+<DT><I>pathName</I>
+<B>tag add</B> <I>string</I> <I>id</I>... </DT>
+<DD>Adds the tag <I>string</I> to one of more entries. </DD>
+
+<DT><I>pathName</I> <B>tag
+delete</B> <I>string</I> <I>id</I>... </DT>
+<DD>Deletes the tag <I>string</I> from one or more entries.   </DD>
+
+<DT><I>pathName</I>
+<B>tag forget</B> <I>string</I> </DT>
+<DD>Removes the tag <I>string</I> from all entries.  It's not an error
+if no entries are tagged as <I>string</I>. </DD>
+
+<DT><I>pathName</I> <B>tag names</B> ?<I>id</I>? </DT>
+<DD>Returns a list
+of tags used.  If an <I>id</I> argument is present, only those tags used by the
+node designated by <I>id</I>  are returned. </DD>
+
+<DT><I>pathName</I> <B>tag nodes</B> <I>string</I> </DT>
+<DD>Returns a
+list of ids that have the tag <I>string</I>.  If no node is tagged as <I>string</I>, then
+an empty string is returned. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>text <I>operation</I></B></I> ?<I>args</I>? </DT>
+<DD>This operation
+is used to provide text editing for cells (data  fields in a column) or
+entry labels. It has several forms, depending on <I>operation</I>: <blockquote></DD>
+
+<DT><I>pathName <B>text
+apply</B></I> </DT>
+<DD>Applies the edited buffer, replacing the entry label or data field.
+The edit window is hidden. </DD>
+
+<DT><I>pathName <B>text cancel</B></I> </DT>
+<DD>Cancels the editing operation,
+reverting the entry label  or data value back to the previous value. The
+edit window is hidden. </DD>
+
+<DT><I>pathName <B>text cget<I> value</I></B></I> </DT>
+<DD>Returns the current value
+of the configuration option given by <I>option</I>. <I>Option</I> may have any of the
+values accepted by the <B>configure</B> operation described below. </DD>
+
+<DT><I>pathName <B>text
+configure</B></I> ?<I>option value</I>? </DT>
+<DD>Query or modify the configuration options of the
+edit window. If no <I>option</I> is specified, returns a list describing all of
+the available options (see <B>Tk_ConfigureInfo</B> for information on the format
+of this list).  If <I>option</I> is specified with no <I>value</I>, 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 <I>option</I> is specified).
+ If one or more <I>option-value</I> 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. <I>Option</I> and <I>value</I> are described in the section
+ <FONT SIZE=-1><B>TEXT EDITING OPTIONS</B></FONT>
+  below. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>text delete<I> first last</I></B></I> </DT>
+<DD>Deletes the
+characters in the edit buffer between the two given character positions.
+  </DD>
+
+<DT><I>pathName <B>text get</B></I> ?<I>-root</I>? <I>x y</I> </DT>
+<DD></DD>
+
+<DT><I>pathName <B>text icursor<I> index</I></B></I> </DT>
+<DD></DD>
+
+<DT><I>pathName <B>text
+index<I> index</I></B></I> </DT>
+<DD>Returns the text index of given <I>index</I>. </DD>
+
+<DT><I>pathName <B>text insert<I>
+index string</I></B></I> </DT>
+<DD>Insert the text string <I>string</I> into the edit buffer at the
+index  <I>index</I>.  For example, the index 0 will prepend the buffer. </DD>
+
+<DT><I>pathName
+<B>text selection<I> args</I></B></I> </DT>
+<DD>This operation controls the selection of the editing
+window.  Note that this differs from the selection of entries. It has the
+following forms: <blockquote></DD>
+
+<DT><I>pathName <B>text selection adjust<I> index</I></B></I> </DT>
+<DD>Adjusts either the
+first or last index of the selection. </DD>
+
+<DT><I>pathName <B>text selection clear</B></I> </DT>
+<DD>Clears
+the selection. </DD>
+
+<DT><I>pathName <B>text selection from<I> index</I></B></I> </DT>
+<DD>Sets the anchor of the
+selection. </DD>
+
+<DT><I>pathName <B>text selection present</B></I> </DT>
+<DD>Indicates if a selection is present.
+</DD>
+
+<DT><I>pathName <B>text selection range<I> start end</I></B></I> </DT>
+<DD>Sets both the anchor and mark of
+the selection. </DD>
+
+<DT><I>pathName <B>text selection to<I> index</I></B></I> </DT>
+<DD>Sets the unanchored end
+(mark) of the selection. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>toggle <I>tagOrId</I></B></I> </DT>
+<DD>Opens or closes the node
+given by <I>tagOrId</I>.  If the corresponding  <B>-opencommand</B> or <B>-closecommand</B> option
+is set, then that command is also invoked.  </DD>
+
+<DT><I>pathName <B>xview <I>args</I></B></I> </DT>
+<DD>This command
+is used to query and change the horizontal position of the information
+in the widget's window.  It can take any of the following forms: <blockquote></DD>
+
+<DT><I>pathName
+<B>xview</B></I> </DT>
+<DD>Returns a list containing two elements. Each element is a real fraction
+between 0 and 1;  together they describe the horizontal span that is visible
+in the window. For example, if the first element is .2 and the second element
+is .6, 20% of the <B>treeview</B> widget's text is off-screen to the left,  the middle
+40% is visible in the window, and 40% of the text is off-screen to the right.
+These are the same values passed to scrollbars via the <B>-xscrollcommand</B> option.
+</DD>
+
+<DT><I>pathName <B>xview</B></I> <I>tagOrId</I> </DT>
+<DD>Adjusts the view in the window so that the character
+position given by <I>tagOrId</I> is displayed at the left edge of the window. Character
+positions are defined by the width of the character <B>0</B>. </DD>
+
+<DT><I>pathName <B>xview moveto<I>
+fraction</I></B></I> </DT>
+<DD>Adjusts the view in the window so that <I>fraction</I> of the total width
+of the <B>treeview</B> widget's text is off-screen to the left. <I>fraction</I> must be
+a fraction between 0 and 1. </DD>
+
+<DT><I>pathName <B>xview scroll <I>number what</I></B></I> </DT>
+<DD>This command
+shifts the view in the window left or right according to <I>number</I> and <I>what</I>.
+<I>Number</I> must be an integer. <I>What</I> must be either <B>units</B> or <B>pages</B> or an abbreviation
+of one of these. If <I>what</I> is <B>units</B>, the view adjusts left or right by <I>number</I>
+character units (the width of the <B>0</B> character) on the display;  if it is
+<B>pages</B> then the view adjusts by <I>number</I> screenfuls. If <I>number</I> is negative
+then characters farther to the left become visible;  if it is positive
+then characters farther to the right become visible. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><I>pathName <B>yview <I>?args</I></B></I>?
+</DT>
+<DD>This command is used to query and change the vertical position of the text
+in the widget's window. It can take any of the following forms: <blockquote></DD>
+
+<DT><I>pathName
+<B>yview</B></I> </DT>
+<DD>Returns a list containing two elements, both of which are real fractions
+between 0 and 1. The first element gives the position of the node at the
+top of the window, relative to the widget as a whole (0.5 means it is halfway
+through the treeview window, for example). The second element gives the
+position of the node just after the last one in the window, relative to
+the widget as a whole. These are the same values passed to scrollbars via
+the <B>-yscrollcommand</B> option. </DD>
+
+<DT><I>pathName <B>yview</B></I> <I>tagOrId</I> </DT>
+<DD>Adjusts the view in the
+window so that the node given by <I>tagOrId</I> is displayed at the top of the
+window. </DD>
+
+<DT><I>pathName <B>yview moveto<I> fraction</I></B></I> </DT>
+<DD>Adjusts the view in the window so
+that the node given by <I>fraction</I> appears at the top of the window. <I>Fraction</I>
+is a fraction between 0 and 1;  0 indicates the first node, 0.33 indicates
+the node one-third the way through the <B>treeview</B> widget, and so on. </DD>
+
+<DT><I>pathName
+<B>yview scroll <I>number what</I></B></I> </DT>
+<DD>This command adjusts the view in the window up
+or down according to <I>number</I> and <I>what</I>. <I>Number</I> must be an integer. <I>What</I> must
+be either <B>units</B> or <B>pages</B>. If <I>what</I> is <B>units</B>, the view adjusts up or down
+by <I>number</I> lines;  if it is <B>pages</B> then the view adjusts by <I>number</I> screenfuls.
+If <I>number</I> is negative then earlier nodes become visible;  if it is positive
+then later nodes become visible. </DD>
+</DL>
+</blockquote>
+
+<H2><A NAME="sect11" HREF="#toc11">Treeview Options</A></H2>
+In addition to the <B>configure</B>
+operation, widget configuration options may also be set by the Tk <B>option</B>
+command.  The class resource name is <I>TreeView</I>. <BR>
+<CODE>option add *TreeView.Foreground white<BR>
+option add *TreeView.Background blue<BR>
+</CODE><P>The following widget options are available: 
+<DL>
+
+<DT><B>-activebackground <I>color</I></B> </DT>
+<DD>Sets
+the background color for active entries.  A node is active when the mouse
+passes over it's entry or using the  <B>activate</B> operation.   </DD>
+
+<DT><B>-activeforeground
+<I>color</I></B> </DT>
+<DD>Sets the foreground color of the active node.  A node is active when
+the mouse passes over it's entry or using the  <B>activate</B> operation.   </DD>
+
+<DT><B>-activeicons
+<I>images</I></B> </DT>
+<DD>Specifies images to be displayed for an entry's icon when it is active.
+<I>Images</I> is a list of two Tk images:  the first image is displayed when the
+node is open, the second when it is closed. </DD>
+
+<DT><B>-autocreate <I>boolean</I></B> </DT>
+<DD>If <I>boolean</I>
+is true, automatically create missing ancestor  nodes when inserting new
+nodes. Otherwise flag an error. The default is <I>no</I>. </DD>
+
+<DT><B>-allowduplicates <I>boolean</I></B>
+</DT>
+<DD>If <I>boolean</I> is true, allow nodes with duplicate pathnames when inserting
+new nodes.  Otherwise flag an error. The default is <I>no</I>. </DD>
+
+<DT><B>-background <I>color</I></B> </DT>
+<DD>Sets
+the background color of the widget.  The default is <I>white</I>. </DD>
+
+<DT><B>-borderwidth <I>pixels</I></B>
+</DT>
+<DD>Sets the width of the 3-D border around the outside edge of the widget. 
+The <B>-relief</B> option determines if the border is to be drawn.  The default
+is <I>2</I>. </DD>
+
+<DT><B>-closecommand <I>string</I></B> </DT>
+<DD>Specifies a Tcl script to be invoked when a node
+is closed.  You can overrider this for individual entries using the entry's
+<B>-closecommand</B>  option. The default is <I>""</I>. Percent substitutions are performed
+on <I>string</I> before  it is executed.  The following substitutions are valid:
+<blockquote></DD>
+
+<DT><I>%W</I> </DT>
+<DD>The pathname of the widget. </DD>
+
+<DT><I>%p</I> </DT>
+<DD>The name of the node. </DD>
+
+<DT><I>%P</I> </DT>
+<DD>The full pathname
+of the node. </DD>
+
+<DT><I>%#</I> </DT>
+<DD>The id of the node. </DD>
+
+<DT><I>%%</I> </DT>
+<DD>Translates to a single percent. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-cursor
+<I>cursor</I></B> </DT>
+<DD>Specifies the widget's cursor.  The default cursor is <I>""</I>. </DD>
+
+<DT><B>-dashes <I>number</I></B>
+</DT>
+<DD>Sets the dash style of the horizontal and vertical lines drawn connecting
+ entries. <I>Number</I> is the length in pixels of the dashes and gaps in the line.
+If <I>number</I> is <I>0</I>, solid lines will  be drawn. The default is <I>1</I> (dotted). </DD>
+
+<DT><B>-exportselection
+<I>boolean</I></B>  </DT>
+<DD>Indicates if the selection is exported.  If the widget is exporting
+its selection then it will observe the standard X11 protocols for handling
+the selection.  Selections are available as type <B>STRING</B>; the value of the
+selection will be the label of the selected nodes, separated by newlines.
+ The default is <I>no</I>. </DD>
+
+<DT><B>-flat <I>boolean</I></B> </DT>
+<DD>Indicates whether to display the tree as
+a flattened list.  If <I>boolean</I> is true, then the hierarchy will be a list
+of full paths for the nodes.  This option also has affect on sorting.  See
+the  <FONT SIZE=-1><B>SORT OPERATIONS</B></FONT>
+  section for more information. The default is <I>no</I>. </DD>
+
+<DT><B>-focusdashes
+<I>dashList</I></B>  </DT>
+<DD>Sets the dash style of the outline rectangle drawn around the
+entry label of the node that current has focus. <I>Number</I> is the length in
+pixels of the dashes and gaps in the line.  If <I>number</I> is <I>0</I>, a solid line
+will be drawn. The default is <I>1</I>. </DD>
+
+<DT><B>-focusforeground <I>color</I></B>  </DT>
+<DD>Sets the color of
+the focus rectangle.  The default is <I>black</I>. </DD>
+
+<DT><B>-font <I>fontName</I></B>  </DT>
+<DD>Specifies the
+font for entry labels.  You can override this for individual entries with
+the entry's <B>-font</B> configuration option.  The default is <I>*-Helvetica-Bold-R-Normal-*-12-120-*</I>.
+</DD>
+
+<DT><B>-foreground <I>color</I></B>  </DT>
+<DD>Sets the text color of entry labels.  You can override
+this for individual entries with the entry's <B>-foreground</B> configuration option.
+  The default is <I>black</I>. </DD>
+
+<DT><B>-height <I>pixels</I></B> </DT>
+<DD>Specifies the requested height of
+widget.  The default is <I>400</I>. </DD>
+
+<DT><B>-hideroot <I>boolean</I></B> </DT>
+<DD>If <I>boolean</I> is true, it indicates
+that no entry for the root node  should be displayed.  The default is <I>no</I>.
+</DD>
+
+<DT><B>-highlightbackground  <I>color</I></B> </DT>
+<DD>Specifies the normal color of the traversal
+highlight region when the widget does not have the input focus.   </DD>
+
+<DT><B>-highlightcolor
+<I>color</I></B> </DT>
+<DD>Specifies the color of the traversal highlight rectangle when the
+widget has the input focus.  The default is <I>black</I>. </DD>
+
+<DT><B>-highlightthickness <I>pixels</I></B>
+</DT>
+<DD>Specifies the width of the highlight rectangle indicating when the widget
+has input focus. The value may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+ If the value is zero, no focus highlight will be displayed.  The default
+is <I>2</I>. </DD>
+
+<DT><B>-icons <I>images</I></B> </DT>
+<DD>Specifies images for the entry's icon. <I>Images</I> is a list
+of two Tk images:  the first image is displayed when the node is open,
+the second when it is closed. </DD>
+
+<DT><B>-linecolor <I>color</I></B> </DT>
+<DD>Sets the color of the connecting
+lines drawn between entries.   The default is <I>black</I>. </DD>
+
+<DT><B>-linespacing <I>pixels</I></B> </DT>
+<DD>Sets
+the number of pixels spacing between entries.   The default is <I>0</I>. </DD>
+
+<DT><B>-linewidth
+<I>pixels</I></B> </DT>
+<DD>Set the width of the lines drawn connecting entries.  If <I>pixels</I> is
+<I>0</I>, no vertical or horizontal lines are drawn.  The default is <I>1</I>. </DD>
+
+<DT><B>-opencommand
+<I>string</I></B> </DT>
+<DD>Specifies a Tcl script to be invoked when a node is open.   You can
+override this for individual entries with the entry's <B>-opencommand</B> configuration
+option.  The default is <I>""</I>. Percent substitutions are performed on <I>string</I>
+before  it is executed.  The following substitutions are valid: <blockquote></DD>
+
+<DT><I>%W</I> </DT>
+<DD>The pathname
+of the widget. </DD>
+
+<DT><I>%p</I> </DT>
+<DD>The name of the node. </DD>
+
+<DT><I>%P</I> </DT>
+<DD>The full pathname of the node.
+</DD>
+
+<DT><I>%#</I> </DT>
+<DD>The id of the node. </DD>
+
+<DT><I>%%</I> </DT>
+<DD>Translates to a single percent. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-relief <I>relief</I></B> </DT>
+<DD>Specifies
+the 3-D effect for the widget.  <I>Relief</I> specifies how the <B>treeview</B> widget
+should appear relative to widget  it is packed into; for example, <I>raised</I>
+means the <B>treeview</B> widget  should appear to protrude.  The default is <I>sunken</I>.
+</DD>
+
+<DT><B>-scrollmode <I>mode</I></B>  </DT>
+<DD>Specifies the style of scrolling to be used.  The following
+styles are valid.  This is the default is <I>hierbox</I>. <blockquote></DD>
+
+<DT><I>listbox</I> </DT>
+<DD>Like the <B>listbox</B>
+widget, the last entry can always be scrolled to the top of the widget
+window.  This allows the scrollbar thumb to shrink as the last entry is
+scrolled upward. </DD>
+
+<DT><I>hierbox</I> </DT>
+<DD>Like the <B>hierbox</B> widget, the last entry can only
+be viewed at the bottom of the widget window.  The scrollbar stays a constant
+size.   </DD>
+
+<DT><I>canvas</I> </DT>
+<DD>Like the <B>canvas</B> widget, the entries are bound within the
+scrolling area.  </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-selectbackground <I>color</I></B> </DT>
+<DD>Sets the background color selected
+node entries. The default is <I>#ffffea</I>. </DD>
+
+<DT><B>-selectborderwidth <I>pixels</I></B> </DT>
+<DD>Sets the width
+of the raised 3-D border drawn around the labels  of selected entries. The
+default is <I>0</I>. <B>-selectcommand <I>string</I></B> Specifies a Tcl script to invoked when
+the set of selected nodes changes. The default is <I>""</I>. </DD>
+
+<DT><B>-selectforeground <I>color<B>
+</B></I></B></DT>
+<DD>Sets the color of the labels of selected node entries.  The default is <I>black</I>.
+</DD>
+
+<DT><B>-selectmode <I>mode</I></B> </DT>
+<DD>Specifies the selection mode. If <I>mode</I> is  <I>single</I>, only one
+node can be selected at a time.  If <I>multiple</I> more than one node can be selected.
+The default is <I>single</I>. </DD>
+
+<DT><B>-separator <I>string</I></B> </DT>
+<DD>Specifies the character sequence
+to use when spliting the path components.   The separator may be several
+characters wide (such as "::") Consecutive separators in a pathname are
+treated as one. If <I>string</I> is the empty string, the pathnames are Tcl lists.
+ Each element is a path component.   The default is <I>""</I>. </DD>
+
+<DT><B>-showtitles <I>boolean</I></B>
+</DT>
+<DD>If <I>boolean</I> is false, column titles are not be displayed.   The default is
+<I>yes</I>. </DD>
+
+<DT><B>-sortselection <I>boolean</I></B> </DT>
+<DD>If <I>boolean</I> is true, nodes in the selection are
+ordered as they are currently displayed (depth-first or sorted), not in
+the order they were selected. The default is <I>no</I>. </DD>
+
+<DT><B>-takefocus</B> <I>focus</I>  </DT>
+<DD>Provides
+information used when moving the focus from window to window via keyboard
+traversal (e.g., Tab and Shift-Tab).  If <I>focus</I> is <I>0</I>, this means that this window
+should be skipped entirely during keyboard traversal.  <I>1</I> means that the
+this window should always receive the input focus.  An empty value means
+that the traversal scripts make the decision whether to focus on the window.
+The default is <I>"1"</I>. </DD>
+
+<DT><B>-trim <I>string</I></B> </DT>
+<DD>Specifies a string leading characters to
+trim from entry pathnames  before parsing.  This only makes sense if the
+<B>-separator</B> is also set.  The default is <I>""</I>. </DD>
+
+<DT><B>-width <I>pixels</I></B> </DT>
+<DD>Sets the requested
+width of the widget.  If <I>pixels</I> is 0, then the with is computed from the
+contents of the <B>treeview</B> widget. The default is <I>200</I>. </DD>
+
+<DT><B>-xscrollcommand <I>string</I></B>
+</DT>
+<DD>Specifies the prefix for a command used to communicate with horizontal
+scrollbars.  Whenever the horizontal view in the widget's window  changes,
+the widget will generate a Tcl command by concatenating the  scroll command
+and two numbers.  If this option is not specified, then  no command will
+be executed. </DD>
+
+<DT><B>-xscrollincrement</B> <I>pixels</I> </DT>
+<DD>Sets the horizontal scrolling distance.
+The default is 20 pixels. </DD>
+
+<DT><B>-yscrollcommand <I>string</I></B> </DT>
+<DD>Specifies the prefix for
+a command used to communicate with vertical scrollbars.   Whenever the vertical
+view in the widget's window  changes, the widget will generate a Tcl command
+by concatenating the  scroll command and two numbers.  If this option is
+not specified, then  no command will be executed. </DD>
+
+<DT><B>-yscrollincrement</B> <I>pixels</I>
+</DT>
+<DD>Sets the vertical scrolling distance. The default is 20 pixels. </DD>
+</DL>
+
+<H2><A NAME="sect12" HREF="#toc12">Entry Options</A></H2>
+Many
+widget configuration options have counterparts in entries.  For example,
+there is a <B>-closecommand</B> configuration option for both widget itself and
+for individual entries.  Options set at the widget level are global for
+all entries.  If the entry configuration option is set, then it overrides
+the widget option.  This is done to avoid wasting memory by replicated options.
+ Most entries will have redundant options. <P>
+There is no resource class or
+name for entries. 
+<DL>
+
+<DT><B>-activeicons <I>images</I></B> </DT>
+<DD>Specifies images to be displayed as
+the entry's icon when it is active. This overrides the global <B>-activeicons</B>
+configuration option for the specific entry. <I>Images</I> is a list of two Tk
+images:  the first image is displayed when the node is open, the second
+when it is closed. </DD>
+
+<DT><B>-bindtags <I>tagList</I></B> </DT>
+<DD>Specifies the binding tags for nodes.
+ <I>TagList</I> is a list of binding tag names.  The tags and their order will
+determine how events are handled for nodes.  Each tag in the list matching
+the current  event sequence will have its Tcl command executed.  The default
+value  is <I>all</I>. </DD>
+
+<DT><B>-button <I>string</I></B> </DT>
+<DD>Indicates whether a button should be displayed
+on the left side of the node entry.  <I>String</I> can be <I>yes</I>, <I>no</I>,  or <I>auto</I>.  If
+<I>auto</I>, then a button is automatically displayed if the node has children.
+ This is the default. </DD>
+
+<DT><B>-closecommand <I>string</I></B> </DT>
+<DD>Specifies a Tcl script to be invoked
+when the node is closed.  This overrides the global <B>-closecommand</B> option
+for this entry. The default is <I>""</I>. Percent substitutions are performed on
+<I>string</I> before  it is executed.  The following substitutions are valid: <blockquote></DD>
+
+<DT><I>%W</I>
+</DT>
+<DD>The pathname of the widget. </DD>
+
+<DT><I>%p</I> </DT>
+<DD>The name of the node. </DD>
+
+<DT><I>%P</I> </DT>
+<DD>The full pathname
+of the node. </DD>
+
+<DT><I>%#</I> </DT>
+<DD>The id of the node. </DD>
+
+<DT><I>%%</I> </DT>
+<DD>Translates to a single percent. </DD>
+</DL>
+</blockquote>
+
+<DL>
+
+<DT><B>-data
+<I>string</I></B> </DT>
+<DD>Sets data fields for the node.  <I>String</I> is a list of  name-value pairs
+to be set. The default is <I>""</I>. </DD>
+
+<DT><B>-font <I>fontName</I></B>  </DT>
+<DD>Sets the font for entry labels.
+ This overrides the widget's <B>-font</B> option for this node.  The default is <I>*-Helvetica-Bold-R-Normal-*-12-120-*</I>.
+</DD>
+
+<DT><B>-foreground <I>color</I></B>  </DT>
+<DD>Sets the text color of the entry label.  This overrides
+the widget's <B>-foreground</B> configuration option.  The default is <I>""</I>. </DD>
+
+<DT><B>-icons <I>images</I></B>
+</DT>
+<DD>Specifies images to be displayed for the entry's icon. This overrides the
+global <B>-icons</B> configuration option. <I>Images</I> is a list of two Tk images:  the
+first image is displayed when the node is open, the second when it is closed.
+</DD>
+
+<DT><B>-label <I>string</I></B> </DT>
+<DD>Sets the text for the entry's label.  If not set, this  defaults
+to the name of the node. The default is <I>""</I>. </DD>
+
+<DT><B>-opencommand <I>string</I></B> </DT>
+<DD>Specifies
+a Tcl script to be invoked when the entry is opened.   This overrides the
+widget's <B>-opencommand</B> option for this node.   The default is <I>""</I>.  Percent substitutions
+are performed on <I>string</I> before  it is executed.  The following substitutions
+are valid: <blockquote></DD>
+
+<DT><I>%W</I> </DT>
+<DD>The pathname of the widget. </DD>
+
+<DT><I>%p</I> </DT>
+<DD>The name of the node. </DD>
+
+<DT><I>%P</I> </DT>
+<DD>The
+full pathname of the node. </DD>
+
+<DT><I>%#</I> </DT>
+<DD>The id of the node. </DD>
+
+<DT><I>%%</I> </DT>
+<DD>Translates to a single
+percent. </DD>
+</DL>
+</blockquote>
+
+<H2><A NAME="sect13" HREF="#toc13">Button Options</A></H2>
+Button configuration options may also be set by the
+<B>option</B> command. The resource subclass is <I>Button</I>.   The resource name is always
+<I>button</I>. <BR>
+<CODE>option add *TreeView.Button.Foreground white<BR>
+option add *TreeView.button.Background blue<BR>
+</CODE><P>The following are the configuration options available for buttons. 
+<DL>
+
+<DT><B>-activebackground
+<I>color</I></B> </DT>
+<DD>Sets the background color of active buttons.  A button is made active
+when the mouse passes over it or by the  <B>button activate</B> operation.   </DD>
+
+<DT><B>-activeforeground
+<I>color</I></B> </DT>
+<DD>Sets the foreground color of active buttons.  A button is made active
+when the mouse passes over it or by the  <B>button activate</B> operation.   </DD>
+
+<DT><B>-background
+<I>color</I></B> </DT>
+<DD>Sets the background of the button.  The default is <I>white</I>. </DD>
+
+<DT><B>-borderwidth
+<I>pixels</I></B> </DT>
+<DD>Sets the width of the 3-D border around the button.   The <B>-relief</B> option
+determines if a border is to be drawn.  The default is <I>1</I>. </DD>
+
+<DT><B>-closerelief <I>relief</I></B>
+</DT>
+<DD>Specifies the 3-D effect for the closed button.  <I>Relief</I> indicates how the
+button should appear relative to the widget;  for example, <I>raised</I> means
+the button should appear to protrude.  The default is <I>solid</I>. </DD>
+
+<DT><B>-cursor <I>cursor</I></B>
+</DT>
+<DD>Sets the widget's cursor.  The default cursor is <I>""</I>. </DD>
+
+<DT><B>-foreground <I>color</I></B>  </DT>
+<DD>Sets
+the foreground color of buttons.  The default is <I>black</I>. </DD>
+
+<DT><B>-images <I>images</I></B> </DT>
+<DD>Specifies
+images to be displayed for the button. <I>Images</I> is a list of two Tk images:
+ the first image is displayed when the button is open, the second when
+it is closed.  If the <I>images</I> is the empty string, then a plus/minus gadget
+is drawn.  The default is <I>""</I>. </DD>
+
+<DT><B>-openrelief <I>relief</I></B> </DT>
+<DD>Specifies the 3-D effect of
+the open button.  <I>Relief</I> indicates how the button should appear relative
+to the widget;  for example, <I>raised</I> means the button should appear to protrude.
+ The default is <I>flat</I>. </DD>
+
+<DT><B>-size <I>pixels</I></B> </DT>
+<DD>Sets the requested size of the button.
+  The default is <I>0</I>. </DD>
+</DL>
+</blockquote>
+
+<H2><A NAME="sect14" HREF="#toc14">Column Options</A></H2>
+Column configuration options may also
+be set by the <B>option</B> command. The resource subclass is <I>Column</I>.   The resource
+name is the  name of the column. <BR>
+<CODE>option add *TreeView.Column.Foreground white<BR>
+option add *TreeView.treeView.Background blue<BR>
+</CODE><P>The following configuration options are available for columns. 
+<DL>
+
+<DT><B>-background
+<I>color</I></B> </DT>
+<DD>Sets the background color of the column.  This overrides the widget's
+<B>-background</B> option. The default is <I>white</I>. </DD>
+
+<DT><B>-borderwidth <I>pixels</I></B> </DT>
+<DD>Sets the width
+of the 3-D border of the column.   The <B>-relief</B> option determines if a border
+is to be drawn.  The default is <I>0</I>. </DD>
+
+<DT><B>-edit <I>boolean</I></B> </DT>
+<DD>Indicates if the column's
+data fields can be edited. If <I>boolean</I> is  false, the data fields in the
+column may not be edited. The default is <I>yes</I>. </DD>
+
+<DT><B>-foreground <I>color</I></B>  </DT>
+<DD>Specifies
+the foreground color of the column.  You can override this for individual
+entries with the entry's  <B>-foreground</B> option. The default is <I>black</I>. </DD>
+
+<DT><B>-font <I>fontName</I></B>
+ </DT>
+<DD>Sets the font for a column.  You can override this for individual entries
+with the entry's <B>-font</B> option.  The default is <I>*-Helvetica-Bold-R-Normal-*-12-120-*</I>.
+</DD>
+
+<DT><B>-hide <I>boolean</I></B> </DT>
+<DD>If <I>boolean</I> is true, the column is not displayed. The default
+is <I>yes</I>. </DD>
+
+<DT><B>-justify <I>justify</I></B> </DT>
+<DD>Specifies how the column data fields title should
+be justified within the column.  This matters only when the column is wider
+than the  data field to be display. <I>Justify</I> must be <I>left</I>, <I>right</I>, or <I>center</I>.
+  The default is <I>left</I>. </DD>
+
+<DT><B>-pad <I>pad</I></B> </DT>
+<DD>Specifies how much padding for the left and
+right sides of the column. <I>Pad</I> is a list of one or two screen distances.
+ If <I>pad</I> has two elements, the left side of the column is padded by the
+first distance and the right side by the second.  If <I>pad</I> has just one distance,
+both the left and right sides are padded evenly.  The default is <I>2</I>. </DD>
+
+<DT><B>-relief
+<I>relief</I></B> </DT>
+<DD>Specifies the 3-D effect of the column.  <I>Relief</I> specifies how the
+column should appear relative to the widget;  for example, <I>raised</I> means
+the column should appear to protrude.  The default is <I>flat</I>. </DD>
+
+<DT><B>-state <I>state</I></B> </DT>
+<DD>Sets
+the state of the column. If <I>state</I> is <I>disable</I> then the column title can not
+be activated nor invoked. The default is <I>normal</I>. </DD>
+
+<DT><B>-text <I>string</I></B> </DT>
+<DD>Sets the title
+for the column. The default is <I>""</I>. </DD>
+
+<DT><B>-titleforeground <I>color</I></B>  </DT>
+<DD>Sets the foreground
+color of the column title.  The default is <I>black</I>. </DD>
+
+<DT><B>-titleshadow <I>color</I></B>  </DT>
+<DD>Sets
+the color of the drop shadow of the column title.   The default is <I>""</I>. </DD>
+
+<DT><B>-width
+<I>pixels</I></B> </DT>
+<DD>Sets the requested width of the column.  This overrides the computed
+with of the column.  If <I>pixels</I> is 0, the width is computed as from the contents
+of the column. The default is <I>0</I>. </DD>
+</DL>
+</blockquote>
+
+<H2><A NAME="sect15" HREF="#toc15">Text Editing Options</A></H2>
+Text edit window configuration
+options may also be set by the  <B>option</B> command. The resource class is <I>TreeViewEditor</I>.
+The resource name is always <I>edit</I>. <BR>
+<CODE>option add *TreeViewEditor.Foreground white<BR>
+option add *edit.Background blue<BR>
+</CODE><P>The following are the configuration options available for the text editing
+window. 
+<DL>
+
+<DT><B>-background <I>color</I></B> </DT>
+<DD>Sets the background of the text edit window.  The
+default is <I>white</I>. </DD>
+
+<DT><B>-borderwidth <I>pixels</I></B> </DT>
+<DD>Sets the width of the 3-D border around
+the edit window.   The <B>-relief</B> option determines if a border is to be drawn.
+ The default is <I>1</I>. </DD>
+
+<DT><B>-exportselection <I>boolean</I></B> </DT>
+<DD>Indicates if the text selection
+is exported.  If the edit window is  exporting its selection then it will
+observe the standard X11 protocols  for handling the selection.  Selections
+are available as type <B>STRING</B>. The default is <I>no</I>. </DD>
+
+<DT><B>-relief <I>relief</I></B> </DT>
+<DD>Specifies
+the 3-D effect of the edit window.  <I>Relief</I> indicates how the background should
+appear relative to the edit window; for example, <I>raised</I> means the background
+should appear to protrude.  The default is <I>solid</I>. </DD>
+
+<DT><B>-selectbackground <I>color</I></B>
+</DT>
+<DD>Sets the background of the selected text in the edit window.   The default
+is <I>white</I>. </DD>
+
+<DT><B>-selectborderwidth <I>pixels</I></B> </DT>
+<DD>Sets the width of the 3-D border around
+the selected text in the  edit window.  The <B>-selectrelief</B> option determines
+if a border  is to be drawn.  The default is <I>1</I>. </DD>
+
+<DT><B>-selectforeground <I>color</I></B> </DT>
+<DD>Sets
+the foreground of the selected text in the edit window.   The default is
+<I>white</I>. </DD>
+
+<DT><B>-selectrelief <I>relief</I></B> </DT>
+<DD>Specifies the 3-D effect of the selected text
+in the edit window.   <I>Relief</I> indicates how the text should appear relative
+to the edit window; for example, <I>raised</I> means the text should appear to
+protrude.  The default is <I>flat</I>. </DD>
+</DL>
+</blockquote>
+
+<H2><A NAME="sect16" HREF="#toc16">Default Bindings</A></H2>
+Tk automatically creates
+class bindings for treeviews that give them Motif-like behavior.  Much of
+the behavior of a <B>treeview</B> widget is determined by its <B>-selectmode</B> option,
+which selects one of two ways of dealing with the selection. <P>
+If the selection
+mode is <B>single</B>, only one node can be  selected at a time. Clicking button
+1 on an node selects it and deselects any other selected item. <P>
+If the selection
+mode is <B>multiple</B>, any number of entries may be selected at once, including
+discontiguous ranges.  Clicking Control-Button-1 on a node entry toggles its
+selection state without affecting any other entries. Pressing Shift-Button-1
+on a node entry selects it, extends the selection. 
+<OL>
+<LI>In <B>extended</B> mode, the
+selected range can be adjusted by pressing button 1 with the Shift key
+down:  this modifies the selection to consist of the entries between the
+anchor and the entry under the mouse, inclusive. The un-anchored end of this
+new selection can also be dragged with the button down. </LI><LI>In <B>extended</B> mode,
+pressing button 1 with the Control key down starts a toggle operation:
+the anchor is set to the entry under the mouse, and its selection state
+is reversed.  The selection state of other entries isn't changed. If the mouse
+is dragged with button 1 down, then the selection state of all entries
+between the anchor and the entry under the mouse is set to match that of
+the anchor entry;  the selection state of all other entries remains what
+it was before the toggle operation began. </LI><LI>If the mouse leaves the treeview
+window with button 1 down, the window scrolls away from the mouse, making
+information visible that used to be off-screen on the side of the mouse.
+The scrolling continues until the mouse re-enters the window, the button
+is released, or the end of the hierarchy is reached. </LI><LI>Mouse button 2 may
+be used for scanning. If it is pressed and dragged over the <B>treeview</B> widget,
+the contents of the hierarchy drag at high speed in the direction the mouse
+moves. </LI><LI>If the Up or Down key is pressed, the location cursor (active entry)
+moves up or down one entry. If the selection mode is <B>browse</B> or <B>extended</B>
+then the new active entry is also selected and all other entries are deselected.
+In <B>extended</B> mode the new active entry becomes the selection anchor. </LI><LI>In <B>extended</B>
+mode, Shift-Up and Shift-Down move the location cursor (active entry) up
+or down one entry and also extend the selection to that entry in a fashion
+similar to dragging with mouse button 1. </LI><LI>The Left and Right keys scroll
+the <B>treeview</B> widget view left and right by the width of the character <B>0</B>.
+Control-Left and Control-Right scroll the <B>treeview</B> widget view left and right
+by the width of the window. Control-Prior and Control-Next also scroll left
+and right by the width of the window. </LI><LI>The Prior and Next keys scroll the
+<B>treeview</B> widget view up and down by one page (the height of the window).
+</LI><LI>The Home and End keys scroll the <B>treeview</B> widget horizontally to the left
+and right edges, respectively. </LI><LI>Control-Home sets the location cursor to the
+the first entry,  selects that entry, and deselects everything else in
+the widget. </LI><LI>Control-End sets the location cursor to the the last entry, 
+selects that entry, and deselects everything else in the widget. </LI><LI>In <B>extended</B>
+mode, Control-Shift-Home extends the selection to the first entry and Control-Shift-End
+extends the selection to the last entry. </LI><LI>In <B>multiple</B> mode, Control-Shift-Home
+moves the location cursor to the first entry and Control-Shift-End moves
+the location cursor to the last entry. </LI><LI>The space and Select keys make a
+selection at the location cursor (active entry) just as if mouse button
+1 had been pressed over this entry. </LI><LI>In <B>extended</B> mode, Control-Shift-space
+and Shift-Select extend the selection to the active entry just as if button
+1 had been pressed with the Shift key down. </LI><LI>In <B>extended</B> mode, the Escape
+key cancels the most recent selection and restores all the entries in the
+selected range to their previous selection state. </LI><LI>Control-slash selects everything
+in the widget, except in <B>single</B> and <B>browse</B> modes, in which case it selects
+the active entry and deselects everything else. </LI><LI>Control-backslash deselects
+everything in the widget, except in <B>browse</B> mode where it has no effect.
+</LI><LI>The F16 key (labelled Copy on many Sun workstations) or Meta-w copies the
+selection in the widget to the clipboard, if there is a selection. </LI>
+</OL>
+<P>
+The behavior
+of <B>treeview</B> widgets can be changed by defining new bindings  for individual
+widgets or by redefining the class bindings. 
+<H3><A NAME="sect17" HREF="#toc17">Widget Bindings</A></H3>
+In addition
+to the above behavior, the following additional behavior is defined by
+the default widget class (TreeView) bindings. 
+<DL>
+
+<DT><I>&lt;ButtonPress-2&gt;</I></DT>
+<DD>Starts scanning.
+ </DD>
+
+<DT><I>&lt;B2-Motion&gt;</I></DT>
+<DD>Adjusts the scan. </DD>
+
+<DT><I>&lt;ButtonRelease-2&gt;</I></DT>
+<DD>Stops scanning. </DD>
+
+<DT><I>&lt;B1-Leave&gt;</I></DT>
+<DD>Starts auto-scrolling.
+</DD>
+
+<DT><I>&lt;B1-Enter&gt;</I></DT>
+<DD>Starts auto-scrolling  </DD>
+
+<DT><I>&lt;KeyPress-Up&gt;</I></DT>
+<DD>Moves the focus to the previous
+entry. </DD>
+
+<DT><I>&lt;KeyPress-Down&gt;</I></DT>
+<DD>Moves the focus to the next entry. </DD>
+
+<DT><I>&lt;Shift-KeyPress-Up&gt;</I></DT>
+<DD>Moves
+the focus to the previous sibling. </DD>
+
+<DT><I>&lt;Shift-KeyPress-Down&gt;</I></DT>
+<DD>Moves the focus to the
+next sibling. </DD>
+
+<DT><I>&lt;KeyPress-Prior&gt;</I></DT>
+<DD>Moves the focus to first entry.  Closed or hidden
+entries are ignored. </DD>
+
+<DT><I>&lt;KeyPress-Next&gt;</I></DT>
+<DD>Move the focus to the last entry. Closed
+or hidden entries are ignored. </DD>
+
+<DT><I>&lt;KeyPress-Left&gt;</I></DT>
+<DD>Closes the entry.  It is not an
+error if the entry has no children. </DD>
+
+<DT><I>&lt;KeyPress-Right&gt;</I></DT>
+<DD>Opens the entry, displaying
+its children.  It is not an error if the entry has no children. </DD>
+
+<DT><I>&lt;KeyPress-space&gt;</I></DT>
+<DD>In
+"single" select mode this selects the entry.  In "multiple" mode, it toggles
+the entry (if it was previous selected, it is not deselected). </DD>
+
+<DT><I>&lt;KeyRelease-space&gt;</I></DT>
+<DD>Turns
+off select mode. </DD>
+
+<DT><I>&lt;KeyPress-Return&gt;</I></DT>
+<DD>Sets the focus to the current entry. </DD>
+
+<DT><I>&lt;KeyRelease-Return&gt;</I></DT>
+<DD>Turns
+off select mode. </DD>
+
+<DT><I>&lt;KeyPress&gt;</I></DT>
+<DD>Moves to the next entry whose label starts with
+the letter typed. </DD>
+
+<DT><I>&lt;KeyPress-Home&gt;</I></DT>
+<DD>Moves the focus to first entry.  Closed or
+hidden entries are ignored. </DD>
+
+<DT><I>&lt;KeyPress-End&gt;</I></DT>
+<DD>Move the focus to the last entry.
+Closed or hidden entries are ignored. </DD>
+
+<DT><I>&lt;KeyPress-F1&gt;</I></DT>
+<DD>Opens all entries. </DD>
+
+<DT><I>&lt;KeyPress-F2&gt;</I></DT>
+<DD>Closes
+all entries (except root). </DD>
+</DL>
+
+<H3><A NAME="sect18" HREF="#toc18">Button Bindings</A></H3>
+Buttons have bindings.  There are
+associated with the "all" bindtag (see the entry's -bindtag option).  You
+can use the <B>bind</B> operation to change them. 
+<DL>
+
+<DT><I>&lt;Enter&gt;</I></DT>
+<DD>Highlights the button of
+the current entry. </DD>
+
+<DT><I>&lt;Leave&gt;</I></DT>
+<DD>Returns the button back to its normal state. </DD>
+
+<DT><I>&lt;ButtonRelease-1&gt;</I></DT>
+<DD>Adjust
+the view so that the current entry is visible. </DD>
+</DL>
+
+<H3><A NAME="sect19" HREF="#toc19">Entry Bindings</A></H3>
+Entries have
+default bindings.  There are associated with the "all" bindtag (see the
+entry's -bindtag option).  You can use the <B>bind</B> operation to modify them. 
+<DL>
+
+<DT><I>&lt;Enter&gt;</I></DT>
+<DD>Highlights
+the current entry. </DD>
+
+<DT><I>&lt;Leave&gt;</I></DT>
+<DD>Returns the entry back to its normal state. </DD>
+
+<DT><I>&lt;ButtonPress-1&gt;</I></DT>
+<DD>Sets
+the selection anchor the current entry. </DD>
+
+<DT><I>&lt;Double-ButtonPress-1&gt;</I></DT>
+<DD>Toggles the selection
+of the current entry. </DD>
+
+<DT><I>&lt;B1-Motion&gt;</I></DT>
+<DD>For "multiple" mode only.  Saves the current
+location of the pointer for auto-scrolling.  Resets the selection mark.  
+</DD>
+
+<DT><I>&lt;ButtonRelease-1&gt;</I></DT>
+<DD>For "multiple" mode only.  Sets the selection anchor to the
+ current entry. </DD>
+
+<DT><I>&lt;Shift-ButtonPress-1&gt;</I></DT>
+<DD>For "multiple" mode only. Extends the selection.
+</DD>
+
+<DT><I>&lt;Shift-Double-ButtonPress-1&gt;</I></DT>
+<DD>Place holder. Does nothing. </DD>
+
+<DT><I>&lt;Shift-B1-Motion&gt;</I></DT>
+<DD>Place holder.
+Does nothing. </DD>
+
+<DT><I>&lt;Shift-ButtonRelease-1&gt;</I></DT>
+<DD>Stop auto-scrolling. </DD>
+
+<DT><I>&lt;Control-ButtonPress-1&gt;</I></DT>
+<DD>For
+"multiple" mode only.  Toggles and extends the selection. </DD>
+
+<DT><I>&lt;Control-Double-ButtonPress-1&gt;</I></DT>
+<DD>Place
+holder. Does nothing. </DD>
+
+<DT><I>&lt;Control-B1-Motion&gt;</I></DT>
+<DD>Place holder. Does nothing. </DD>
+
+<DT><I>&lt;Control-ButtonRelease-1&gt;</I></DT>
+<DD>Stops
+auto-scrolling. </DD>
+
+<DT><I>&lt;Control-Shift-ButtonPress-1&gt;</I></DT>
+<DD>??? </DD>
+
+<DT><I>&lt;Control-Shift-Double-ButtonPress-1&gt;</I></DT>
+<DD>Place
+holder. Does nothing. </DD>
+
+<DT><I>&lt;Control-Shift-B1-Motion&gt;</I></DT>
+<DD>Place holder. Does nothing. </DD>
+</DL>
+
+<H3><A NAME="sect20" HREF="#toc20">Column
+Bindings</A></H3>
+Columns have bindings too.  They are associated with the column's
+"all" bindtag (see the column -bindtag option).  You can use the <B>column bind</B>
+operation to change them. 
+<DL>
+
+<DT><I>&lt;Enter&gt;</I></DT>
+<DD>Highlights the current column title. </DD>
+
+<DT><I>&lt;Leave&gt;</I></DT>
+<DD>Returns
+the column back to its normal state. </DD>
+
+<DT><I>&lt;ButtonRelease-1&gt;</I></DT>
+<DD>Invokes the command (see
+the column's -command option) if one if specified.   </DD>
+</DL>
+
+<H3><A NAME="sect21" HREF="#toc21">Column Rule Bindings</A></H3>
+
+<DL>
+
+<DT><I>&lt;Enter&gt;</I></DT>
+<DD>Highlights
+the current and activates the ruler. </DD>
+
+<DT><I>&lt;Leave&gt;</I></DT>
+<DD>Returns the column back to its
+normal state. Deactivates the ruler. </DD>
+
+<DT><I>&lt;ButtonPress-1&gt;</I></DT>
+<DD>Sets the resize anchor for
+the column. </DD>
+
+<DT><I>&lt;B1-Motion&gt;</I></DT>
+<DD>Sets the resize mark for the column. </DD>
+
+<DT><I>&lt;ButtonRelease-1&gt;</I></DT>
+<DD>Adjust
+the size of the column, based upon the resize anchor and mark positions.
+</DD>
+</DL>
+
+<H2><A NAME="sect22" HREF="#toc22">Example</A></H2>
+The <B>treeview</B> command creates a new widget.   <BR>
+<CODE>treeview .h -bg white<BR>
+</CODE><P>A new Tcl command <I>.h</I> is also created.  This command can be used to query
+and modify the <B>treeview</B> widget.  For example, to change the  background
+color of the table to "green", you use the new command and the widget's
+<B>configure</B> operation. <BR>
+<CODE># Change the background color.<BR>
+.h configure -background "green"<BR>
+</CODE><P>By default, the <B>treeview</B> widget will automatically create a new tree object
+to contain the data.  The name of the new tree is the pathname of the widget.
+ Above, the new tree object name is ".h".  But you can use the <B>-tree</B> option
+to specify the name of another tree. <BR>
+<CODE># View the tree "myTree".<BR>
+.h configure -tree "myTree"<BR>
+</CODE><P>When a new tree is created, it contains only a root node.  The node is automatically
+opened.  The id of the root node is always <I>0</I> (you can use also use the special
+id <I>root</I>). The <B>insert</B> operation lets you insert one or more new entries into
+the tree.  The last argument is the node's <I>pathname</I>.   <BR>
+<CODE># Create a new entry named "myEntry"<BR>
+set id [.h insert end "myEntry"]<BR>
+</CODE><P>This appends a new node named "myEntry".  It will positioned as the last
+child of the root of the tree (using the position "end").  You can supply
+another position to order the node within its siblings. <BR>
+<CODE># Prepend "fred".<BR>
+set id [.h insert 0 "fred"]<BR>
+</CODE><P>Entry names do not need to be unique.  By default, the node's label is its
+name.  To supply a different text label, add the <B>-label</B> option. <BR>
+<CODE># Create a new node named "fred"<BR>
+set id [.h insert end "fred" -label "Fred Flintstone"]<BR>
+</CODE><P>The <B>insert</B> operation returns the id of the new node.  You can also use the
+<B>index</B> operation to get this information. <BR>
+<CODE># Get the id of "fred"<BR>
+.h index "fred"<BR>
+</CODE><P>To insert a node somewhere other than root, use the <B>-at</B> switch. It takes
+the id of the node where the new child will be added. <BR>
+<CODE># Create a new node "barney" in "fred".<BR>
+.h insert -at $id end "barney" <BR>
+</CODE><P>A pathname describes the path to an entry in the hierarchy.  It's a list
+of entry names that compose the path in the tree.  Therefore, you can also
+add "barney" to "fred" as follows. <BR>
+<CODE># Create a new sub-entry of "fred"<BR>
+.h insert end "fred barney" <BR>
+</CODE><P>Every name in the list is ancestor of the next.  All ancestors must already
+exist.  That means that an entry "fred" is an ancestor of "barney" and must
+already exist.  But you can use the <B>-autocreate</B> configuration option to force
+the creation of ancestor nodes. <BR>
+<CODE># Force the creation of ancestors.<BR>
+.h configure -autocreate yes <BR>
+.h insert end "fred barney wilma betty" <BR>
+</CODE><P>Sometimes the pathname is already separated by a character sequence rather
+than formed as a list.  A file name is a good example of this. You can use
+the <B>-separator</B> option to specify a separator string to split the path into
+its components.  Each pathname inserted is automatically split using the
+separator string as a separator. Multiple separators are treated as one.
+<BR>
+<CODE>.h configure -separator /<BR>
+.h insert end "/usr/local/tcl/bin" <BR>
+</CODE><P>If the path is prefixed by extraneous characters, you can automatically
+trim it off using the <B>-trim</B> option.  It removed the string from the path
+before it is parsed. <BR>
+<CODE>.h configure -trim C:/windows -separator /<BR>
+.h insert end "C:/window/system" <BR>
+</CODE><P>You can insert more than one entry at a time with the <B>insert</B> operation.
+ This can be much faster than looping over a list of names. <BR>
+<CODE># The slow way<BR>
+foreach f [glob $dir/*] {<BR>
+    .h insert end $f<BR>
+}<BR>
+# The fast way<BR>
+eval .h insert end [glob $dir/*]<BR>
+</CODE><P>In this case, the <B>insert</B> operation will return a list of ids of the new
+entries. <P>
+You can delete entries with the <B>delete</B> operation.  It takes one
+or more tags of ids as its argument. It deletes the entry and all its children.
+<BR>
+<CODE>.h delete $id<BR>
+</CODE><P>Entries have several configuration options.  They control the appearance
+of the entry's icon and label.  We have already seen the <B>-label</B> option that
+sets the entry's text label.   The <B>entry configure</B> operation lets you set
+or modify an entry's configuration options. <BR>
+<CODE>.h entry configure $id -color red -font fixed<BR>
+</CODE><P>You can hide an entry and its children using the <B>-hide</B> option. <BR>
+<CODE>.h entry configure $id -hide yes<BR>
+</CODE><P>More that one entry can be configured at once.  All entries specified are
+configured with the same options. <BR>
+<CODE>.h entry configure $i1 $i2 $i3 $i4 -color brown <BR>
+</CODE><P>An icon is displayed for each entry.  It's a Tk image drawn to the left of
+the label.  You can set the icon with the entry's <B>-icons</B> option.  It takes
+a list of two image names: one to represent the open entry, another when
+it is closed. <BR>
+<CODE>set im1 [image create photo -file openfolder.gif]<BR>
+set im2 [image create photo -file closefolder.gif]<BR>
+.h entry configure $id -icons "$im1 $im2"<BR>
+</CODE><P>If <B>-icons</B> is set to the empty string, no icons are display. <P>
+If an entry has
+children, a button is displayed to the left of the icon. Clicking the mouse
+on this button opens or closes the sub-hierarchy.  The button is normally
+a <I>+</I> or <I>-</I> symbol, but can be configured in a variety of ways using the <B>button
+configure</B> operation.  For example, the <I>+</I> and <I>-</I> symbols can be replaced with
+Tk images. <BR>
+<CODE>set im1 [image create photo -file closefolder.gif]<BR>
+set im2 [image create photo -file downarrow.gif]<BR>
+.h button configure $id -images "$im1 $im2" \<BR>
+    -openrelief raised -closerelief raised<BR>
+</CODE><P>Entries can contain an arbitrary number of <I>data fields</I>.  Data fields are
+name-value pairs.  Both the value and name are strings. The entry's <B>-data</B> option
+lets you set data fields. <BR>
+<CODE>.h entry configure $id -data {mode 0666 group users}<BR>
+</CODE><P>The <B>-data</B> takes a list of name-value pairs.   <P>
+You can display these data fields
+as <I>columns</I> in the <B>treeview</B> widget.  You can create and configure columns
+with the <B>column</B> operation.  For example, to add a new column to the widget,
+use the <B>column insert</B> operation.  The last argument is the name of the data
+field that you want to display. <BR>
+<CODE>.h column insert end "mode"<BR>
+</CODE><P>The column title is displayed at the top of the column.  By default, it's
+is the field name.  You can override this using the column's <B>-text</B> option.
+<BR>
+<CODE>.h column insert end "mode" -text "File Permissions"<BR>
+</CODE><P>Columns have several configuration options.  The <B>column configure</B> operation
+lets you query or modify column options. <BR>
+<CODE>.h column configure "mode" -justify left<BR>
+</CODE><P>The <B>-justify</B> option says how the data is justified within in the column.
+ The <B>-hide</B> option indicates whether the column is displayed. <BR>
+<CODE>.h column configure "mode" -hide yes<BR>
+</CODE><P>Entries can be selected by clicking on the mouse.  Selected entries are
+drawn using the colors specified by the <B>-selectforeground</B>  and <B>-selectbackground</B>
+configuration options. The selection itself is managed by the <B>selection</B>
+operation. <BR>
+<CODE># Clear all selections<BR>
+.h selection clear 0 end<BR>
+# Select the root node<BR>
+.h selection set 0 <BR>
+</CODE><P>The <B>curselection</B> operation returns a list of ids of all the selected entries.
+<BR>
+<CODE>set ids [.h curselection]<BR>
+</CODE><P>You can use the <B>get</B> operation to convert the ids to  their pathnames. <BR>
+<CODE>set names [eval .h get -full $ids]<BR>
+</CODE><P>If a treeview is exporting its selection (using the <B>-exportselection</B> option),
+then it will observe the standard X11 protocols for handling the selection.
+ Treeview selections are available as type <B>STRING</B>; the value of the selection
+will be the pathnames of the selected entries, separated by newlines. <P>
+The
+<B>treeview</B> supports two modes of selection: <I>single</I> and <I>multiple</I>.  In single
+select mode, only one entry can be selected at a time, while multiple select
+mode allows several entries to be selected.  The mode is set by the widget's
+<B>-selectmode</B> option. <BR>
+<CODE>.h configure -selectmode "multiple"<BR>
+</CODE><P>You can be notified when the list of selected entries changes.  The widget's
+<B>-selectcommand</B> specifies a Tcl procedure that is called whenever the selection
+changes. <BR>
+<CODE>proc SelectNotify { widget } {<BR>
+   set ids [$widget curselection]<BR>
+}<BR>
+.h configure -selectcommand "SelectNotify .h"<BR>
+</CODE><P>The widget supports the standard Tk scrolling and scanning operations. The
+<B>treeview</B> can be both horizontally and vertically. You can attach scrollbars
+to the <B>treeview</B> the same way as the listbox or canvas widgets. <BR>
+<CODE>scrollbar .xbar -orient horizontal -command ".h xview"<BR>
+scrollbar .ybar -orient vertical -command ".h yview"<BR>
+.h configure -xscrollcommand ".xbar set" \<BR>
+    -yscrollcommand ".ybar set"<BR>
+</CODE><P>There are three different modes of scrolling: <I>listbox</I>, <I>canvas</I>, and <I>hierbox</I>.
+ In <I>listbox</I> mode, the last entry can always be scrolled to the top of the
+widget.  In <I>hierbox</I> mode, the last entry is always drawn at the bottom of
+the widget. The scroll mode is set by the widget's <B>-selectmode</B> option. <BR>
+<CODE>.h configure -scrollmode "listbox"<BR>
+</CODE><P>Entries can be programmatically opened or closed using the <B>open</B> and <B>close</B>
+operations respectively.   <BR>
+<CODE>.h open $id<BR>
+.h close $id<BR>
+</CODE><P>When an entry is opened, a Tcl procedure can be automatically invoked. The
+<B>-opencommand</B> option specifies this procedure.  This procedure can lazily
+insert entries as needed. <BR>
+<CODE>proc AddEntries { dir } {<BR>
+   eval .h insert end [glob -nocomplain $dir/*] <BR>
+}<BR>
+.h configure -opencommand "AddEntries %P"<BR>
+</CODE><P>Now when an entry is opened, the procedure <I>AddEntries</I> is called and adds
+children to the entry.  Before the command is invoked, special "%" substitutions
+(like <B>bind</B>) are performed. Above, <I>%P</I> is translated to the pathname of the
+entry. <P>
+The same feature exists when an entry is closed.  The <B>-closecommand</B>
+option specifies the procedure. <BR>
+<CODE>proc DeleteEntries { id } {<BR>
+   .h entry delete $id 0 end<BR>
+}<BR>
+.h configure -closecommand "DeleteEntries %#"<BR>
+</CODE><P>When an entry is closed, the procedure <I>DeleteEntries</I> is called and deletes
+the entry's children using the <B>entry delete</B> operation (<I>%#</I> is the id of entry).
+
+<H2><A NAME="sect23" HREF="#toc23">Keywords</A></H2>
+treeview, widget <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">Name</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">Synopsis</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">Description</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">Introduction</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">Tree Data Object</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">Syntax</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">IDs and Tags</A></LI>
+<LI><A NAME="toc7" HREF="#sect7">Special Node IDs</A></LI>
+<LI><A NAME="toc8" HREF="#sect8">Data Fields</A></LI>
+<LI><A NAME="toc9" HREF="#sect9">Entry Bindings</A></LI>
+<LI><A NAME="toc10" HREF="#sect10">Treeview Operations</A></LI>
+<LI><A NAME="toc11" HREF="#sect11">Treeview Options</A></LI>
+<LI><A NAME="toc12" HREF="#sect12">Entry Options</A></LI>
+<LI><A NAME="toc13" HREF="#sect13">Button Options</A></LI>
+<LI><A NAME="toc14" HREF="#sect14">Column Options</A></LI>
+<LI><A NAME="toc15" HREF="#sect15">Text Editing Options</A></LI>
+<LI><A NAME="toc16" HREF="#sect16">Default Bindings</A></LI>
+<UL>
+<LI><A NAME="toc17" HREF="#sect17">Widget Bindings</A></LI>
+<LI><A NAME="toc18" HREF="#sect18">Button Bindings</A></LI>
+<LI><A NAME="toc19" HREF="#sect19">Entry Bindings</A></LI>
+<LI><A NAME="toc20" HREF="#sect20">Column Bindings</A></LI>
+<LI><A NAME="toc21" HREF="#sect21">Column Rule Bindings</A></LI>
+</UL>
+<LI><A NAME="toc22" HREF="#sect22">Example</A></LI>
+<LI><A NAME="toc23" HREF="#sect23">Keywords</A></LI>
+</UL>
+</BODY></HTML>