diff options
Diffstat (limited to 'blt/html/hiertable.html')
-rw-r--r-- | blt/html/hiertable.html | 2331 |
1 files changed, 2331 insertions, 0 deletions
diff --git a/blt/html/hiertable.html b/blt/html/hiertable.html new file mode 100644 index 00000000000..7f56d0e0a47 --- /dev/null +++ b/blt/html/hiertable.html @@ -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><ButtonPress-2></I></DT> +<DD>Starts scanning. + </DD> + +<DT><I><B2-Motion></I></DT> +<DD>Adjusts the scan. </DD> + +<DT><I><ButtonRelease-2></I></DT> +<DD>Stops scanning. </DD> + +<DT><I><B1-Leave></I></DT> +<DD>Starts auto-scrolling. +</DD> + +<DT><I><B1-Enter></I></DT> +<DD>Starts auto-scrolling </DD> + +<DT><I><KeyPress-Up></I></DT> +<DD>Moves the focus to the previous +entry. </DD> + +<DT><I><KeyPress-Down></I></DT> +<DD>Moves the focus to the next entry. </DD> + +<DT><I><Shift-KeyPress-Up></I></DT> +<DD>Moves +the focus to the previous sibling. </DD> + +<DT><I><Shift-KeyPress-Down></I></DT> +<DD>Moves the focus to the +next sibling. </DD> + +<DT><I><KeyPress-Prior></I></DT> +<DD>Moves the focus to first entry. Closed or hidden +entries are ignored. </DD> + +<DT><I><KeyPress-Next></I></DT> +<DD>Move the focus to the last entry. Closed +or hidden entries are ignored. </DD> + +<DT><I><KeyPress-Left></I></DT> +<DD>Closes the entry. It is not an +error if the entry has no children. </DD> + +<DT><I><KeyPress-Right></I></DT> +<DD>Opens the entry, displaying +its children. It is not an error if the entry has no children. </DD> + +<DT><I><KeyPress-space></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><KeyRelease-space></I></DT> +<DD>Turns +off select mode. </DD> + +<DT><I><KeyPress-Return></I></DT> +<DD>Sets the focus to the current entry. </DD> + +<DT><I><KeyRelease-Return></I></DT> +<DD>Turns +off select mode. </DD> + +<DT><I><KeyPress></I></DT> +<DD>Moves to the next entry whose label starts with +the letter typed. </DD> + +<DT><I><KeyPress-Home></I></DT> +<DD>Moves the focus to first entry. Closed or +hidden entries are ignored. </DD> + +<DT><I><KeyPress-End></I></DT> +<DD>Move the focus to the last entry. +Closed or hidden entries are ignored. </DD> + +<DT><I><KeyPress-F1></I></DT> +<DD>Opens all entries. </DD> + +<DT><I><KeyPress-F2></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><Enter></I></DT> +<DD>Highlights the button of +the current entry. </DD> + +<DT><I><Leave></I></DT> +<DD>Returns the button back to its normal state. </DD> + +<DT><I><ButtonRelease-1></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><Enter></I></DT> +<DD>Highlights +the current entry. </DD> + +<DT><I><Leave></I></DT> +<DD>Returns the entry back to its normal state. </DD> + +<DT><I><ButtonPress-1></I></DT> +<DD>Sets +the selection anchor the current entry. </DD> + +<DT><I><Double-ButtonPress-1></I></DT> +<DD>Toggles the selection +of the current entry. </DD> + +<DT><I><B1-Motion></I></DT> +<DD>For "multiple" mode only. Saves the current +location of the pointer for auto-scrolling. Resets the selection mark. +</DD> + +<DT><I><ButtonRelease-1></I></DT> +<DD>For "multiple" mode only. Sets the selection anchor to the + current entry. </DD> + +<DT><I><Shift-ButtonPress-1></I></DT> +<DD>For "multiple" mode only. Extends the selection. +</DD> + +<DT><I><Shift-Double-ButtonPress-1></I></DT> +<DD>Place holder. Does nothing. </DD> + +<DT><I><Shift-B1-Motion></I></DT> +<DD>Place holder. +Does nothing. </DD> + +<DT><I><Shift-ButtonRelease-1></I></DT> +<DD>Stop auto-scrolling. </DD> + +<DT><I><Control-ButtonPress-1></I></DT> +<DD>For +"multiple" mode only. Toggles and extends the selection. </DD> + +<DT><I><Control-Double-ButtonPress-1></I></DT> +<DD>Place +holder. Does nothing. </DD> + +<DT><I><Control-B1-Motion></I></DT> +<DD>Place holder. Does nothing. </DD> + +<DT><I><Control-ButtonRelease-1></I></DT> +<DD>Stops +auto-scrolling. </DD> + +<DT><I><Control-Shift-ButtonPress-1></I></DT> +<DD>??? </DD> + +<DT><I><Control-Shift-Double-ButtonPress-1></I></DT> +<DD>Place +holder. Does nothing. </DD> + +<DT><I><Control-Shift-B1-Motion></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><Enter></I></DT> +<DD>Highlights the current column title. </DD> + +<DT><I><Leave></I></DT> +<DD>Returns +the column back to its normal state. </DD> + +<DT><I><ButtonRelease-1></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><Enter></I></DT> +<DD>Highlights +the current and activates the ruler. </DD> + +<DT><I><Leave></I></DT> +<DD>Returns the column back to its +normal state. Deactivates the ruler. </DD> + +<DT><I><ButtonPress-1></I></DT> +<DD>Sets the resize anchor for +the column. </DD> + +<DT><I><B1-Motion></I></DT> +<DD>Sets the resize mark for the column. </DD> + +<DT><I><ButtonRelease-1></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> |