<TITLE>fileselectiondialog - Create and manipulate a file selection dialog widget</TITLE>
<H1>fileselectiondialog - Create and manipulate a file selection dialog widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>fileselectiondialog<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Fileselectiondialog
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeBackground</B><br>
<B>foreground</B><br>
<B>insertBorderWidth</B><br>
<B>selectBackground</B><br>
</td>
<td valign=top>
<B>background</B><br>
<B>highlightColor</B><br>
<B>insertOffTime</B><br>
<B>selectBorderWidth</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightThickness</B><br>
<B>insertOnTime</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>insertBackground</B><br>
<B>insertWidth</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 manual entry for details on the above associated
options.
<P>
<table cellpadding=5>
<td valign=top>
<B>childSitePos</B><br>
<B>dirsOn</B><br>
<B>filesOn</B><br>
<B>invalid</B><br>
<B>selectionOn</B><br>
</td>
<td valign=top>
<B>directory</B><br>
<B>filesLabel</B><br>
<B>fileType</B><br>
<B>mask</B><br>
</td>
<td valign=top>
<B>dirsLabel</B><br>
<B>filesLabelOn</B><br>
<B>filterLabel</B><br>
<B>noMatchString</B><br>
</td>
<td valign=top>
<B>dirSearchCommand</B><br>
<B>fileSearchCommand</B><br>
<B>filterOn</B><br>
<B>selectionLabel</B><br>
</td>
</table>
<P>
See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> widget manual entry for details on the above
associated options.
<P>
<table cellpadding=5>
<td valign=top>
<B>labelFont</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
associated options.
<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="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget 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.

</pre><H2>INHERITED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>buttonBoxPadX</B><br>
<B>padY</B><br>
</td>
<td valign=top>
<B>buttonBoxPadY</B><br>
<B>separator</B><br>
</td>
<td valign=top>
<B>buttonBoxPos</B><br>
<B>thickness</B><br>
</td>
<td valign=top>
<B>padX</B><br>
</td>
</table>
<P>
See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
inherited options.
<P>
<table cellpadding=5>
<td valign=top>
<B>height</B><br>
</td>
<td valign=top>
<B>master</B><br>
</td>
<td valign=top>
<B>modality</B><br>
</td>
<td valign=top>
<B>width</B><br>
</td>
</table>
<P>
See the "shell" widget manual entry for details on the above
inherited options.
<P>
<table cellpadding=5>
<td valign=top>
<B>title</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the "Toplevel" widget  manual entry for details on the above
inherited options.
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>fileselectiondialog</B> command creates a file selection dialog 
similar to the OSF/Motif standard composite widget.  The
fileselectiondialog is derived from the Dialog class and is composed of 
a FileSelectionBox with attributes set to manipulate the dialog buttons.

</pre><H2>METHODS</H2>
<P>
The <B>fileselectiondialog</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 fileselectiondialog widgets:
</pre><H2>ASSOCIATED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>get</B><br>
</td>
<td valign=top>
<B>childsite</B><br>
</td>
<td valign=top>
<B>filter</B><br>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> class manual entry for details on the 
associated methods.
</pre><H2>INHERITED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>add</B><br>
<B>insert</B><br>
</td>
<td valign=top>
<B>buttonconfigure</B><br>
<B>invoke</B><br>
</td>
<td valign=top>
<B>default</B><br>
<B>show</B><br>
</td>
<td valign=top>
<B>hide</B><br>
</td>
</table>
<P>
See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
inherited methods.
<P>
<table cellpadding=5>
<td valign=top>
<B>activate</B><br>
</td>
<td valign=top>
<B>center</B><br>
</td>
<td valign=top>
<B>deactivate</B><br>
</td>
<td valign=top>
</td>
</table>
<P>
See the "shell" widget manual entry for details on the above
inherited 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>fileselectiondialog</B> command.
</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>fileselectiondialog</B>
command.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>fsb</B>
Class:                  <B>Fileselectionbox</B>
</pre>
<UL>
The fsb component is the file selection box for the file selection dialog.
See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> widget manual entry for details on the fsb
component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
 #
 # Non-modal example
 #
 proc okCallback {} {
     puts "You selected [.nmfsd get]"
     .nmfsd deactivate
 }

 fileselectiondialog .nmfsd -title Non-Modal
 .nmfsd buttonconfigure OK -command okCallback

 .nmfsd activate

 #
 # Modal example
 #
 fileselectiondialog .mfsd -modality application
 .mfsd center

 if {[.mfsd activate]} {
     puts "You selected [.mfsd get]"
 } else {
     puts "You cancelled the dialog"
 }
</pre>
</pre><H2>AUTHOR</H2>
Mark L. Ulferts
</pre><H2>KEYWORDS</H2>
fileselectiondialog, fileselectionbox, dialog, dialogshell, shell, widget
