<TITLE>finddialog - Create and manipulate a find dialog widget</TITLE>
<H1>finddialog - Create and manipulate a find dialog widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>finddialog<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Finddialog
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeBackground</B><br>
<B>cursor</B><br>
<B>highlightColor</B><br>
<B>insertOffTime</B><br>
<B>selectBorderWidth</B><br>
</td>
<td valign=top>
<B>activeForeground</B><br>
<B>disabledForeground</B><br>
<B>highlightThickness</B><br>
<B>insertOnTime</B><br>
<B>selectColor</B><br>
</td>
<td valign=top>
<B>background</B><br>
<B>font</B><br>
<B>insertBackground</B><br>
<B>insertWidth</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>foreground</B><br>
<B>insertBorderWidth</B><br>
<B>selectBackground</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>selectColor</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the "checkbutton" widget manual entry for details on the above
associated options.
<P>
<table cellpadding=5>
<td valign=top>
<B>selectColor</B><br>
</td>
<td valign=top>
</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>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.
</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><H2>WIDGET-SPECIFIC OPTIONS</H2>
<P>
<pre>
Name:                   <B>clearCommand</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-clearcommand</B>
</pre>
<UL>
Specifies a command to be invoked following a clear operation. 
The option is meant to be used as means of notification that the
clear has taken place and allow other actions to take place such
as disabling a find again menu.
</UL>
<P>
<pre>
Name:                   <B>matchCommand</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-matchcommand</B>
</pre>
<UL>
Specifies a command to be invoked following a find operation. 
The command is called with a match point as an argument which identifies
where exactly where in the text or scrolledtext widget that the match
is located.  Should a match not be found the match point is {}.  The
option is meant to be used as a means of notification that the
find operation has completed and allow other actions to take place
such as disabling a find again menu option if the match point was {}.
</UL>
<P>
<pre>
Name:                   <B>patternBackground</B>
Class:                  <B>Background</B>
Command-Line Switch:	<B>-patternbackground</B>
</pre>
<UL>
Specifies the background color of the text matching the search
pattern.  It may have any of the forms accepted by Tk_GetColor.
The default is gray44.
</UL>
<P>
<pre>
Name:                   <B>patternForeground</B>
Class:                  <B>Background</B>
Command-Line Switch:	<B>-patternforeground</B>
</pre>
<UL>
Specifies the foreground color of the text matching the search
pattern.  It may have any of the forms accepted by Tk_GetColor.
The default is white.
</UL>
<P>
<pre>
Name:                   <B>searchBackground</B>
Class:                  <B>Background</B>
Command-Line Switch:	<B>-searchbackground</B>
</pre>
<UL>
Specifies the background color of the line containing the matching 
the search pattern.  It may have any of the forms accepted by Tk_GetColor.
The default is gray77.
</UL>
<P>
<pre>
Name:                   <B>searchForeground</B>
Class:                  <B>Background</B>
Command-Line Switch:	<B>-searchforeground</B>
</pre>
<UL>
Specifies the foreground color of the line containing the matching 
the search pattern.  It may have any of the forms accepted by Tk_GetColor.
The default is black.
</UL>
<P>
<pre>
Name:                   <B>textWidget</B>
Class:                  <B>TextWidget</B>
Command-Line Switch:	<B>-textwidget</B>
</pre>
<UL>
Specifies the text or scrolledtext widget to be searched.
</UL>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>finddialog</B> command creates a find dialog that works in
conjunction with a text or scrolledtext widget to provide a means
of performing search operations.  The user is prompted for a text 
pattern to be found in the text or scrolledtext widget.  The 
search can be for all occurances, by regular expression, considerate
of the case, or backwards.

</pre><H2>METHODS</H2>
<P>
The <B>finddialog</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 finddialog widgets:
</pre><H2>INHERITED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>add</B><br>
<B>invoke</B><br>
</td>
<td valign=top>
<B>buttonconfigure</B><br>
<B>show</B><br>
</td>
<td valign=top>
<B>default</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>finddialog</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>clear</B>
</I></B>
<DD> Clears the pattern in the entry field and the pattern matchin 
indicators in the text or scrolledtext widget.
</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>finddialog</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>find</B>
</I></B>
<DD> Search for a specific text string in the text widget given by
the -textwidget option.  This method is the standard callback
for the Find button.  It is made available such that it can be 
bound to a find again action.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>all</B>
Class:                  <B>Checkbutton</B>
</pre>
<UL>
The all component specifies that all the matches of the pattern should be
found when performing the search.  See the "checkbutton" widget manual 
entry for details on the all component item.
</UL>
<P>
<pre>
Name:                   <B>backwards</B>
Class:                  <B>Checkbutton</B>
</pre>
<UL>
The backwards component specifies that the search should continue in
a backwards direction towards the beginning of the text or scrolledtext
widget.  See the "checkbutton" widget manual entry for details on the 
backwards component item.
</UL>
<P>
<pre>
Name:                   <B>case</B>
Class:                  <B>Checkbutton</B>
</pre>
<UL>
The case component specifies that the case of the pattern should be
taken into consideration when performing the search.  See the 
"checkbutton" widget manual entry for details on the case component item.
</UL>
<P>
<pre>
Name:                   <B>pattern</B>
Class:                  <B>Entryfield</B>
</pre>
<UL>
The pattern component provides the pattern entry field.  See the 
"entryfield" widget manual entry for details on the pattern component item.
</UL>
<P>
<pre>
Name:                   <B>regexp</B>
Class:                  <B>Checkbutton</B>
</pre>
<UL>
The regexp component specifies that the pattern is a regular expression.
See the "checkbutton" widget manual entry for details on the regexp 
component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
 scrolledtext .st
 pack .st
 .st insert end "Now is the time for all good men\\n" 
 .st insert end "to come to the aid of their country"

 finddialog .fd -textwidget .st
 .fd center .st
 .fd activate
</pre>
</pre><H2>AUTHOR</H2>
Mark L. Ulferts
</pre><H2>KEYWORDS</H2>
finddialog, dialogshell, shell, widget

