<TITLE>selectionbox - Create and manipulate a selection box widget</TITLE>
<H1>selectionbox - Create and manipulate a selection box widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>selectionbox<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- selectionbox
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeBackground</B><br>
<B>exportSelection</B><br>
<B>insertBackground</B><br>
<B>insertWidth</B><br>
<B>selectBackground</B><br>
</td>
<td valign=top>
<B>background</B><br>
<B>foreground</B><br>
<B>insertBorderWidth</B><br>
<B>relief</B><br>
<B>selectBorderWidth</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightColor</B><br>
<B>insertOffTime</B><br>
<B>repeatDelay</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightThickness</B><br>
<B>insertOnTime</B><br>
<B>repeatInterval</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>textBackground</B><br>
</td>
<td valign=top>
<B>textFont</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="entryfield.n.html"> "entryfield" </A> widget class manual entry for details on the above
associated options.
<P>
<table cellpadding=5>
<td valign=top>
<B>labelFont</B><br>
</td>
<td valign=top>
<B>labelMargin</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the above
associated options.
<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 class manual entry for details on the above
associated options.
<P>
<table cellpadding=5>
<td valign=top>
<B>dblClickCommand</B><br>
<B>textBackground</B><br>
</td>
<td valign=top>
<B>hscrollMode</B><br>
<B>textFont</B><br>
</td>
<td valign=top>
<B>sbWidth</B><br>
<B>vscrollMode</B><br>
</td>
<td valign=top>
<B>scrollMargin</B><br>
</td>
</table>
<P>
See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget class manual entry for details on the above
associated options.

</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
<P>
<pre>
Name:                   <B>childSitePos</B>
Class:                  <B>Position</B>
Command-Line Switch:	<B>-childsitepos</B>
</pre>
<UL>
Specifies the position of the child site in the selection box: <B>n</B>, 
<B>s</B>, <B>e</B>, <B>w</B>, or <B></B>.  The default is center
</UL>
<P>
<pre>
Name:                   <B>height</B>
Class:                  <B>Height</B>
Command-Line Switch:	<B>-height</B>
</pre>
<UL>
Specifies the height of the selection box.  The value may be specified in 
any of the forms acceptable to Tk_GetPixels.  The default is 320 pixels.
</UL>
<P>
<pre>
Name:                   <B>itemsCommand</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-itemscommand</B>
</pre>
<UL>
Specifies a command to be evaluated following selection of an item.
</UL>
<P>
<pre>
Name:                   <B>itemsLabel</B>
Class:                  <B>Text</B>
Command-Line Switch:	<B>-itemslabel</B>
</pre>
<UL>
Specifies the text of the label for the items list.  The default is "List".
</UL>
<P>
<pre>
Name:                   <B>itemsLabelPos</B>
Class:                  <B>Position</B>
Command-Line Switch:	<B>-itemslabelpos</B>
</pre>
<UL>
Specifies the position of the label along the side of the items
list: <B>n</B>, <B>ne</B>, <B>e</B>, <B>se</B>, <B>s</B>, <B>sw</B>, <B>w</B>, 
or <B>nw</B>.  The default is nw.
</UL>
<P>
<pre>
Name:                   <B>itemsOn</B>
Class:                  <B>ItemsOn</B>
Command-Line Switch:	<B>-itemson</B>
</pre>
<UL>
Specifies whether or not to display the items list in any
of the forms acceptable to <B>Tcl_GetBoolean</B>.  The default is true.
</UL>
<P>
<pre>
Name:                   <B>margin</B>
Class:                  <B>Margin</B>
Command-Line Switch:	<B>-margin</B>
</pre>
<UL>
Specifies distance between the items list and selection entry in any of
the forms acceptable to <B>Tk_GetPixels</B>.  The default is 7 pixels.
</UL>
<P>
<pre>
Name:                   <B>selectionCommand</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-selectioncommand</B>
</pre>
<UL>
Specifies a Tcl procedure to be associated with a return key press event
in the selection entry field.
</UL>
<P>
<pre>
Name:                   <B>selectionLabel</B>
Class:                  <B>Text</B>
Command-Line Switch:	<B>-selectionlabel</B>
</pre>
<UL>
Specifies the text of the label for the selection entry field.  The default
is "Selection".
</UL>
<P>
<pre>
Name:                   <B>selectionLabelPos</B>
Class:                  <B>Position</B>
Command-Line Switch:	<B>-selectionlabelpos</B>
</pre>
<UL>
Specifies the position of the label along the side of the selection: 
<B>n</B>, <B>ne</B>, <B>e</B>, <B>se</B>, <B>s</B>, <B>sw</B>, <B>w</B>, 
or <B>nw</B>.  The default is nw.
</UL>
<P>
<pre>
Name:                   <B>selectionOn</B>
Class:                  <B>SelectionOn</B>
Command-Line Switch:	<B>-selectionon</B>
</pre>
<UL>
Specifies whether or not to display the selection entry in any
of the forms acceptable to <B>Tcl_GetBoolean</B>.  The default is true.
</UL>
<P>
<pre>
Name:                   <B>width</B>
Class:                  <B>Width</B>
Command-Line Switch:	<B>-width</B>
</pre>
<UL>
Specifies the width of the selection box.  The value may be specified in 
any of the forms acceptable to Tk_GetPixels.  The default is 260 pixels.
</UL>
<P>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>selectionbox</B> command creates a scrolled list of items and
a selection entry field.  The user may choose any of the items displayed
in the scrolled list of alternatives and the selection field will be
filled with the choice.  The user is also free to enter a new value in
the selection entry field.  Both the list and entry areas have labels.
A child site is also provided in which the user may create other widgets
to be used in conjunction with the selection box.

</pre><H2>METHODS</H2>
<P>
The <B>selectionbox</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.  

</pre><H2>ASSOCIATED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>curselection</B><br>
<B>scan</B><br>
</td>
<td valign=top>
<B>delete</B><br>
<B>selection</B><br>
</td>
<td valign=top>
<B>index</B><br>
<B>size</B><br>
</td>
<td valign=top>
<B>nearest</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/listbox.n.html"> "listbox" </A> widget class manual entry for details on the 
associated 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>selectionbox</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>childsite</B>
</I></B>
<DD> Returns the child site widget path name.
</DL>
<DL>
<DT> <I>pathName <B>clear</B> <I>component</I>
</I></B>
<DD> Delete the contents of either the selection entry widget or 
items list.  The <I>component</I> argument may be either <B>items</B>
or <B>selection</B>.
</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>selectionbox</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>get</B>
</I></B>
<DD> Returns the current value of the selection entry widget.
</DL>
<DL>
<DT> <I>pathName <B>insert</B> <I>component</I> <I>args</I>
</I></B>
<DD> Insert element(s) into either the selection entry widget or
items list.  The <I>component</I> argument may be either <B>items</B>
or <B>selection</B>.  The <I>args</I> follow the rules of either an entry
or list widget depending on the <I>component</I> value.
</DL>
<DL>
<DT> <I>pathName <B>selectitem</B>
</I></B>
<DD> Replace the selection entry field contents with the currently 
selected items value.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>childsite</B>
Class:                  <B>Frame</B>
</pre>
<UL>
The childsite component is the user child site for the selection box.  See 
the "frame" widget manual entry for details on the childsite component item.
</UL>
<P>
<pre>
Name:                   <B>items</B>
Class:                  <B>Scrolledlistbox</B>
</pre>
<UL>
The items component provides the scrolled list box of items for the selection
box.  See the "scrolledlistbox" widget manual entry for details on the 
items component item.
</UL>
<P>
<pre>
Name:                   <B>selection</B>
Class:                  <B>Entryfield</B>
</pre>
<UL>
The selection component provides the entry field in the selection box for
display of the selected item in the items component.  See the "entryfield" 
widget manual entry for details on the selection component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
 option add *textBackground white

 selectionbox .sb -items {Hello {Out There} World}
 pack .sb -padx 10 -pady 10 -fill both -expand yes 

 set cs [label [.sb childsite].label -text "Child Site"]
 pack $cs -fill x -padx 10 -pady 10

 .sb insert items 2 {Cruel Cruel}

 .sb selection set 1
</pre>
</pre><H2>AUTHOR</H2>
Mark L. Ulferts
</pre><H2>KEYWORDS</H2>
selectionbox, widget
