diff options
Diffstat (limited to 'itcl/iwidgets/demos/html/hierarchy.n.html')
-rw-r--r-- | itcl/iwidgets/demos/html/hierarchy.n.html | 673 |
1 files changed, 673 insertions, 0 deletions
diff --git a/itcl/iwidgets/demos/html/hierarchy.n.html b/itcl/iwidgets/demos/html/hierarchy.n.html new file mode 100644 index 00000000000..2fddd9e7030 --- /dev/null +++ b/itcl/iwidgets/demos/html/hierarchy.n.html @@ -0,0 +1,673 @@ +<TITLE>hierarchy - Create and manipulate a hierarchy widget</TITLE> +<H1>hierarchy - Create and manipulate a hierarchy widget</H1> + +</pre><H2>SYNOPSIS</H2> +<B>hierarchy<I> <I>pathName </I>?<I>options</I>? +</pre><H2>INHERITANCE</H2> +itk::Widget <- Labeledwidget <- Scrolledwidget <- Hierarchy +</pre><H2>STANDARD OPTIONS</H2> +<P> +<table cellpadding=5> +<td valign=top> +<B>activeBackground</B><br> +<B>cursor</B><br> +<B>highlightThickness</B><br> +</td> +<td valign=top> +<B>activeForeground</B><br> +<B>disabledForeground</B><br> +<B>relief</B><br> +</td> +<td valign=top> +<B>background</B><br> +<B>foreground</B><br> +<B>selectBackground</B><br> +</td> +<td valign=top> +<B>borderWidth</B><br> +<B>highlightColor</B><br> +<B>selectForeground</B><br> +</td> +</table> +<P> +See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options. +</pre><H2>ASSOCIATED OPTIONS</H2> +<P> +<table cellpadding=5> +<td valign=top> +<B>activeRelief</B><br> +</td> +<td valign=top> +<B>elementBorderWidth</B><br> +</td> +<td valign=top> +<B>jump</B><br> +</td> +<td valign=top> +<B>troughColor</B><br> +</td> +</table> +<P> +See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above +associated options. +<P> +<table cellpadding=5> +<td valign=top> +<B>spacing1</B><br> +</td> +<td valign=top> +<B>spacing2</B><br> +</td> +<td valign=top> +<B>spacing3</B><br> +</td> +<td valign=top> +<B>tabs</B><br> +</td> +</table> +<P> +See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the above +associated options. +</pre><H2>INHERITED OPTIONS</H2> +<P> +<table cellpadding=5> +<td valign=top> +<B>labelBitmap</B><br> +<B>labelPos</B><br> +</td> +<td valign=top> +<B>labelFont</B><br> +<B>labelText</B><br> +</td> +<td valign=top> +<B>labelImage</B><br> +<B>labelVariable</B><br> +</td> +<td valign=top> +<B>labelMargin</B><br> +</td> +</table> +<P> +See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options. +</pre><H2>WIDGET-SPECIFIC OPTIONS</H2> +<P> +<pre> +Name: <B>alwaysQuery</B> +Class: <B>AlwaysQuery</B> +Command-Line Switch: <B>-alwaysquery</B> +</pre> +<UL> +Boolean flag which tells the hierarchy widget weather or not +each refresh of the display should be via a new query using +the command value of the -querycommand option or use the values +previous found the last time the query was made. The default +is no. +</UL> +<P> +<pre> +Name: <B>closedIcon</B> +Class: <B>Icon</B> +Command-Line Switch: <B>-closedicon</B> +</pre> +<UL> +Specifies the name of an existing closed icon image to be used in the +hierarchy before those nodes that are collapsed. Should one not be +provided, then a folder icon will be generated, pixmap if possible, +bitmap otherwise. +</UL> +<P> +<pre> +Name: <B>expanded</B> +Class: <B>Expanded</B> +Command-Line Switch: <B>-expanded</B> +</pre> +<UL> +When true, the hierarchy will be completely expanded when it +is first displayed. A fresh display can be triggered by +resetting the -querycommand option. The default is false. +</UL> +<P> +<pre> +Name: <B>filter</B> +Class: <B>Filter</B> +Command-Line Switch: <B>-filter</B> +</pre> +<UL> +When true only the branch nodes and selected items are displayed. +This gives a compact view of important items. The default is false. +</UL> +<P> +<pre> +Name: <B>height</B> +Class: <B>Height</B> +Command-Line Switch: <B>-height</B> +</pre> +<UL> +Specifies the height of the hierarchy as an entire unit. +The value may be specified in any of the forms acceptable to +<B>Tk_GetPixels</B>. Any additional space needed to display the other +components such as labels, margins, and scrollbars force the hierarchy +to be compressed. A value of zero along with the same value for +the width causes the value given for the visibleitems option +to be applied which administers geometry constraints in a different +manner. The default height is zero. +</UL> +<P> +<pre> +Name: <B>iconCommand</B> +Class: <B>Command</B> +Command-Line Switch: <B>-iconcommand</B> +</pre> +<UL> +Specifies a command to be executed upon user selection via mouse button +one of any additional icons given in the values returned by the command +associated with the -querycommand option. If this command contains "%n", +it is replaced with the name of the node the icon belongs to. Should it +contain "%i" then the icon name is substituted. +</UL> +<P> +<pre> +Name: <B>markBackground</B> +Class: <B>Foreground</B> +Command-Line Switch: <B>-markbackground</B> +</pre> +<UL> +Specifies the background color to use when displaying marked nodes. +</UL> +<P> +<pre> +Name: <B>markForeground</B> +Class: <B>Background</B> +Command-Line Switch: <B>-markforeground</B> +</pre> +<UL> +Specifies the foreground color to use when displaying marked nodes. +</UL> +<P> +<pre> +Name: <B>menuCursor</B> +Class: <B>Cursor</B> +Command-Line Switch: <B>-menucursor</B> +</pre> +<UL> +Specifies the mouse cursor to be used for the item and background +menus. The value may have any of the forms accept able to Tk_GetCursor. +</UL> +<P> +<pre> +Name: <B>nodeIcon</B> +Class: <B>Icon</B> +Command-Line Switch: <B>-nodeicon</B> +</pre> +<UL> +Specifies the name of an existing node icon image to be used in the +hierarchy before those nodes that are leafs. Should one not be provided, +then a dog-eared page icon will be generated, pixmap if possible, bitmap +otherwise. +</UL> +<P> +<pre> +Name: <B>openIcon</B> +Class: <B>Icon</B> +Command-Line Switch: <B>-openicon</B> +</pre> +<UL> +Specifies the name of an existing open icon image to be used in the +hierarchy before those nodes that are expanded. Should one not be provided, +then an open folder icon will be generated, pixmap if possible, bitmap +otherwise. +</UL> +<P> +<pre> +Name: <B>queryCommand</B> +Class: <B>Command</B> +Command-Line Switch: <B>-querycommand</B> +</pre> +<UL> +Specifies the command executed to query the contents of each node. If this +command contains "%n", it is replaced with the name of the desired +node. In its simpilest form it should return the children of the +given node as a list which will be depicted in the display. +Since the names of the children are used as tags in the underlying +text widget, each child must be unique in the hierarchy. Due to +the unique requirement, the nodes shall be reffered to as uids +or uid in the singular sense. The format of returned list is +</UL> +<UL> + {uid [uid ...]} +</UL> +<UL> + where uid is a unique id and primary key for the hierarchy entry +</UL> +<UL> +Should the unique requirement pose a problem, the list returned +can take on another more extended form which enables the +association of text to be displayed with the uids. The uid must +still be unique, but the text does not have to obey the unique +rule. In addition, the format also allows the specification of +additional tags to be used on the same entry in the hierarchy +as the uid and additional icons to be displayed just before +the node. The tags and icons are considered to be the property of +the user in that the hierarchy widget will not depend on any of +their values. The extended format is +</UL> +<UL> + {{uid [text [tags [icons]]]} {uid [text [tags [icons]]]} ...} +</UL> +<UL> + where uid is a unique id and primary key for the hierarchy entry + text is the text to be displayed for this uid + tags is a list of user tags to be applied to the entry + icons is a list of icons to be displayed in front of the text +</UL> +<UL> +The hierarchy widget does a look ahead from each node to determine +if the node has a children. This can be cost some performace with +large hierarchies. User's can avoid this by providing a hint in +the user tags. A tag of "leaf" or "branch" tells the hierarchy +widget the information it needs to know thereby avoiding the look +ahead operation. +</UL> +<P> +<pre> +Name: <B>hscrollMode</B> +Class: <B>ScrollMode</B> +Command-Line Switch: <B>-hscrollmode</B> +</pre> +<UL> +Specifies the the display mode to be used for the horizontal +scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the +scroll bar is displayed at all times. Dynamic mode displays the +scroll bar as required, and none disables the scroll bar display. The +default is static. +</UL> +<P> +<pre> +Name: <B>sbWidth</B> +Class: <B>Width</B> +Command-Line Switch: <B>-sbwidth</B> +</pre> +<UL> +Specifies the width of the scrollbar in any of the forms +acceptable to <B>Tk_GetPixels</B>. +</UL> +<P> +<pre> +Name: <B>scrollMargin</B> +Class: <B>Margin</B> +Command-Line Switch: <B>-scrollmargin</B> +</pre> +<UL> +Specifies the distance between the text portion of the hierarchy and +the scrollbars in any of the forms acceptable to <B>Tk_GetPixels</B>. The +default is 3 pixels. +</UL> +<P> +<pre> +Name: <B>textBackground</B> +Class: <B>Background</B> +Command-Line Switch: <B>-textbackground</B> +</pre> +<UL> +Specifies the background color for the text portion of the hierarchy in +any of the forms acceptable to <B>Tk_GetColor</B>. +</UL> +<P> +<pre> +Name: <B>textFont</B> +Class: <B>Font</B> +Command-Line Switch: <B>-textfont</B> +</pre> +<UL> +Specifies the font to be used in the text portion of the hierarchy. +</UL> +<P> +<pre> +Name: <B>visibleitems</B> +Class: <B>VisibleItems</B> +Command-Line Switch: <B>-visibleitems</B> +</pre> +<UL> +Specifies the widthxheight in characters and lines for the hierarchy. +This option is only administered if the width and height options +are both set to zero, otherwise they take precedence. The default value +is 80x24. With the visibleitems option engaged, geometry constraints +are maintained only on the text portion of the hierarchy. The size of +the other components such as +labels, margins, and scroll bars, are additive and independent, +effecting the overall size of the hierarchy. In contrast, +should the width and height options have non zero values, they +are applied to the hierarchy as a whole. The hierarchy +is compressed or expanded to maintain the geometry constraints. +</UL> +<P> +<pre> +Name: <B>vscrollMode</B> +Class: <B>ScrollMode</B> +Command-Line Switch: <B>-vscrollmode</B> +</pre> +<UL> +Specifies the the display mode to be used for the vertical +scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the +scroll bar is displayed at all times. Dynamic mode displays the +scroll bar as required, and none disables the scroll bar display. The +default is static. +</UL> +<P> +<pre> +Name: <B>width</B> +Class: <B>Width</B> +Command-Line Switch: <B>-width</B> +</pre> +<UL> +Specifies the width of the hierarchy as an entire unit. +The value may be specified in any of the forms acceptable to +<B>Tk_GetPixels</B>. Any additional space needed to display the other +components such as labels, margins, and scrollbars force the text portion +of the hierarchy +to be compressed. A value of zero along with the same value for +the height causes the value given for the visibleitems option +to be applied which administers geometry constraints in a different +manner. The default width is zero. +</UL> +<P> +</pre><HR> + +</pre><H2>DESCRIPTION</H2> +<P> +The <B>hierarchy</B> command creates a hierarchical data view widget. +It allows the graphical management of a a list of nodes that can be +expanded or collapsed. Individual nodes can be highlighted. +Clicking with the right mouse button on any item brings up a +special item menu. Clicking on the background area brings up +a different popup menu. Options exist to provide user control over +the loading of the nodes and actions associated with node selection. +Since the hierarchy is based on the scrolledtext widget, it includes +options to control the method in which the scrollbars are displayed, +i.e. statically or dynamically. Options also exist for adding a +label to the hierarchy and controlling its position. + +</pre><H2>METHODS</H2> +<P> +The <B>hierarchy</B> command creates a new Tcl command whose +name is <I>pathName</I>. This +command may be used to invoke various +operations on the widget. It has the following general form: +<pre> +<I>pathName option </I>?<I>arg arg ...</I>? +</pre> +<I>Option</I> and the <I>arg</I>s +determine the exact behavior of the command. The following +commands are possible for hierarchy widgets: +</pre><H2>ASSOCIATED METHODS</H2> +<P> +<table cellpadding=5> +<td valign=top> +<B>bbox</B><br> +<B>dlineinfo</B><br> +<B>insert</B><br> +<B>tag</B><br> +</td> +<td valign=top> +<B>compare</B><br> +<B>dump</B><br> +<B>scan</B><br> +<B>window</B><br> +</td> +<td valign=top> +<B>debug</B><br> +<B>get</B><br> +<B>search</B><br> +<B>xview</B><br> +</td> +<td valign=top> +<B>delete</B><br> +<B>index</B><br> +<B>see</B><br> +<B>yview</B><br> +</td> +</table> +<P> +See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> manual entry for details on the standard methods. + +</pre><H2>WIDGET-SPECIFIC METHODS</H2> +<DL> +<DT> <I>pathName <B>cget</B> <I>option</I> +</I></B> +<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>hierarchy</B> +command. +</DL> +<DL> +<DT> <I>pathName <B>clear</B> +</I></B> +<DD> Removes all items from the hierarchy display including all tags and icons. +The display will remain empty until the -filter or -querycommand +options are set. +</DL> +<DL> +<DT> <I>pathName <B>collapse</B> <I>uid</I> +</I></B> +<DD> Collapses the hierarchy beneath the node with the specified unique id by +one level. Since this can take a moment for large hierarchies, the +cursor will be changed to a watch during the collapse. Also, if any +of the nodes beneath the node being collapsed are selected, their +status is changed to unselected. +</DL> +<DL> +<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>? +</I></B> +<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> may have any of the values accepted by the <B>hierarchy</B> +command. +</DL> +<DL> +<DT> <I>pathName <B>current</B> +</I></B> +<DD> Returns the tags for the node that was most recently selected by the +right mouse button when the item menu was posted. Usually used by the code +in the item menu to figure out what item is being manipulated. +</DL> +<DL> +<DT> <I>pathName <B>draw</B> ?<I>when</I>? +</I></B> +<DD> Performs a complete redraw of the entire hierarchy. When may be either -now +or -eventually where the latter means the draw can be performed after idle. +</DL> +<DL> +<DT> <I>pathName <B>expand</B> <I>uid</I> +</I></B> +<DD> Expands the hierarchy beneath the node with the specified unique id by +one level. Since this can take a moment for large hierarchies, the cursor +will be changed to a watch during the expansion. +</DL> +<DL> +<DT> <I>pathName <B>mark</B> <I>option ?arg arg ...?</I> +</I></B> +<DD> This command is used to manipulate marks which is quite similar to +selection, adding a secondary means of hilighting an item in the +hierarchy. The exact behavior of the command depends on the +<I>option</I> argument that follows the <B>mark</B> argument. The +following forms of the command are currently supported: +</DL> +<UL> +<DL> +<DT> <I>pathName <B>mark clear</B> +</I></B> +<DD> Clears all the currently marked nodes in the hierarchy. +</DL> +<DL> +<DT> <I>pathName <B>mark add <I>uid </I>?<I>uid uid ...</I>? +</I></B> +<DD> Marks the nodes with the specified uids in the hierarchy using the +<B>-markbackground</B> and <B>-markforeground</B> options and without +affecting the mark state of any other nodes that were already +marked. +</DL> +<DL> +<DT> <I>pathName <B>mark remove <I>uid </I>?<I>uid uid ...</I>? +</I></B> +<DD> Unmarks the nodes with the specified uids in the hierarchy without +affecting the mark state of any other nodes that were already +marked. +</DL> +<DL> +<DT> <I>pathName <B>mark get</B> +</I></B> +<DD> Returns a list of the unique ids that are currently marked. +</DL> +</UL> +<DL> +<DT> <I>pathName <B>refresh</B> <I>uid</I> +</I></B> +<DD> Performs a redraw of a specific node that has the given uid. If the node +is not currently visible or in other words already drawn on the text, +then no action is taken. +</DL> +<DL> +<DT> <I>pathName <B>prune</B> <I>uid</I> +</I></B> +<DD> Removes the node specified by the given uid from the hierarchy. Should +the node have children, then all of its children will be removed as well. +</DL> +<DL> +<DT> <I>pathName <B>selection</B> <I>option </I>?<I>arg arg ...</I>? +</I></B> +<DD> This command is used to manipulate the selection of nodes in the +hierarchy. The exact behavior of the command depends on the +<I>option</I> argument that follows the <B>selection</B> argument. The +following forms of the command are currently supported: +</DL> +<UL> +<DL> +<DT> <I>pathName <B>selection clear</B> +</I></B> +<DD> Clears all the currently selected nodes in the hierarchy. +</DL> +<DL> +<DT> <I>pathName <B>selection add <I>uid </I>?<I>uid uid ...</I>? +</I></B> +<DD> Selects the nodes with the specified uids in the hierarchy using the +<B>-selectionbackground</B> and <B>-selectionforeground</B> options and without +affecting the selection state of any other nodes that were already +selected. +</DL> +<DL> +<DT> <I>pathName <B>selection remove <I>uid </I>?<I>uid uid ...</I>? +</I></B> +<DD> Deselects the nodes with the specified uids in the hierarchy without +affecting the selection state of any other nodes that were already +selected. +</DL> +<DL> +<DT> <I>pathName <B>selection get</B> +</I></B> +<DD> Returns a list of the unique ids that are currently selected. +</DL> +</UL> +A nodes selection status is also dependent on it being visible. If a +node is selected and its parent is then collapsed making the selected +node not visible, then its selection status is changed to unselected. +<DL> +<DT> <I>pathName <B>toggle</B> <I>uid</I> +</I></B> +<DD> Toggles the hierarchy beneath the node with the specified unique id. If +the hierarchy is currently expanded, then it is collapsed, and vice-versa. + +</DL> +</pre><H2>COMPONENTS</H2> +<P> +<pre> +Name: <B>list</B> +Class: <B>Text</B> +</pre> +<UL> +The list component is the text widget in which the hierarchy is displayed. +See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the text component item. +</UL> +<P> +<pre> +Name: <B>bgMenu</B> +Class: <B>Menu</B> +</pre> +<UL> +The bgMenu component is the popup menu which is displayed upon pressing +the right mouse button in the background, i.e. not over a specific node. Menu +items can be added along with their commands via the component command. +See the "menu" widget manual entry for details on the bgMenu component item. +</UL> +<P> +<pre> +Name: <B>horizsb</B> +Class: <B>Scrollbar</B> +</pre> +<UL> +The horizsb component is the horizontal scroll bar. See the "scrollbar" +widget manual entry for details on the horizsb component item. +</UL> +<P> +<pre> +Name: <B>itemMenu</B> +Class: <B>Menu</B> +</pre> +<UL> +The itemMenu component is the popup menu which is displayed upon selection +of a hierarchy node with the right mouse button. Menu items can be +added along with their commands via the component command. See the "menu" +widget manual entry for details on the itemMenu component item. +</UL> +<P> +<pre> +Name: <B>vertsb</B> +Class: <B>Scrollbar</B> +</pre> +<UL> +The vertsb component is the vertical scroll bar. See the "scrollbar" widget +manual entry for details on the vertsb component item. +</UL> +</table> + +</pre><H2>EXAMPLE</H2> +<pre> +proc get_files {file} { + global env + + if {$file == ""} { + set dir $env(HOME) + } else { + set dir $file + } + + if {[catch {cd $dir}] != 0} { + return "" + } + + set rlist "" + + foreach file [lsort [glob -nocomplain *]] { + lappend rlist [list [file join $dir $file] $file] + } + + return $rlist +} + +hierarchy .h -querycommand "get_files %n" -visibleitems 30x15 \ + -labeltext $env(HOME) +pack .h -side left -expand yes -fill both +</pre> +</pre><H2>AUTHORS</H2> +Mark L. Ulferts +<P> +Michael J. McLennan +</pre><H2>KEYWORDS</H2> +hierarchy, text, widget |