<TITLE>entryfield - Create and manipulate a entry field widget</TITLE>
<H1>entryfield - Create and manipulate a entry field widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>entryfield<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- LabeledWidget &lt;- entryfield
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>background</B><br>
<B>foreground</B><br>
<B>insertBorderWidth</B><br>
<B>justify</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightColor</B><br>
<B>insertOffTime</B><br>
<B>relief</B><br>
<B>textVariable</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightThickness</B><br>
<B>insertOnTime</B><br>
<B>selectBackground</B><br>
<B>width</B><br>
</td>
<td valign=top>
<B>exportSelection</B><br>
<B>insertBackground</B><br>
<B>insertWidth</B><br>
<B>selectBorderWidth</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>show</B><br>
</td>
<td valign=top>
<B>state</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated options.
</pre><H2>INHERITED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>disabledForeground</B><br>
<B>labelMargin</B><br>
<B>state</B><br>
</td>
<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>
</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>childSitePos</B>
Class:                  <B>Position</B>
Command-Line Switch:	<B>-childsitepos</B>
</pre>
<UL>
Specifies the position of the child site in the entry field: <B>n</B>, 
<B>s</B>, <B>e</B>, or <B>w</B>.  The default is e.
</UL>
<P>
<pre>
Name:                   <B>command</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-command</B>
</pre>
<UL>
Specifies a Tcl command to be executed upon detection of a Return key 
press event.
</UL>
<P>
<pre>
Name:                   <B>fixed</B>
Class:                  <B>Fixed</B>
Command-Line Switch:	<B>-fixed</B>
</pre>
<UL>
Restrict entry to the specified number of chars.  A value of 0, which is the
default, denotes no limit.  The value is the maximum number of chars the 
user may type into the field, regardles of field width.  For example,
if the field width is set to 20 and the fixed value is 10, the user will 
only be able to type 10 characters into the field which is 20 characters long.
</UL>
<P>
<pre>
Name:                   <B>focusCommand</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-focuscommand</B>
</pre>
<UL>
Specifies a Tcl command to be executed upon reception of focus.
</UL>
<P>
<pre>
Name:                   <B>invalid</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-invalid</B>
</pre>
<UL>
Specifies a Tcl command to be executed upon determination of invalid input.
The default is bell.
</UL>
<P>
<pre>
Name:                   <B>textBackground</B>
Class:                  <B>Background</B>
Command-Line Switch:	<B>-textbackground</B>
</pre>
<UL>
Background color for inside textual portion of the entry field.  The value
may be given 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>
Name of font to use for display of text in entryfield.  The value
may be given in any of the forms acceptable to <B>Tk_GetFont</B>.
</UL>
<P>
<pre>
Name:                   <B>validate</B>
Class:                  <B>Command</B>
Command-Line Switch:	<B>-validate</B>
</pre>
<UL>
The validate option allows specification of a validation mechanism.  Standard
character validation such as <B>numeric</B>, <B>alphabetic</B>, <B>integer</B>,
<B>hexidecimal</B>, <B>real</B>, and <B>alphanumeric</B> can be handled through 
the use of keywords.  Should more
extensive validation be necessary, the value may contain the name of
a command script.  The script should return a boolean value.  True for 
valid, false for invalid.  If false is returned, then the procedure 
associated with the invalid option will be invoked.
If the validation script contains
any <B>%</B> characters, then the script will not be
executed directly.  Instead, a new script will be
generated by replacing each <B>%</B>, and the character following
it, with information from the entryfield.  The replacement
depends on the character following the <B>%</B>, as defined in the
list below.
</UL>
<DL>
<DT> <B>%c</B>
</I></B>
<DD> Replaced with the current input character.
</DL>
<DL>
<DT> <B>%P</B>
</I></B>
<DD> Replaced with the contents of the entryfield modified to include the latest
keystoke.  This is equivalent to peeking at the future contents, enabling
rejection prior to the update.
</DL>
<DL>
<DT> <B>%S</B>
</I></B>
<DD> Replaced with the current contents of the entryfield prior to the latest
keystroke being added.
</DL>
<DL>
<DT> <B>%W</B>
</I></B>
<DD> Replaced with the entryfield widget pathname.
</DL>
<P>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>entryfield</B> command creates an enhanced text entry widget with an
optional associated label.  Addtional options support validation and 
establishing a upper limit on the number of characters which may be
entered in the field.
</pre>

</pre><H2>METHODS</H2>
<P>
The <B>entryfield</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 entryfield widgets:
</pre><H2>ASSOCIATED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>delete</B><br>
<B>insert</B><br>
</td>
<td valign=top>
<B>get</B><br>
<B>scan</B><br>
</td>
<td valign=top>
<B>icursor</B><br>
<B>selection</B><br>
</td>
<td valign=top>
<B>index</B><br>
<B>xview</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> 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>entryfield</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>childsite</B>
</I></B>
<DD> Returns the path name of the child site.
</DL>
<DL>
<DT> <I>pathName <B>clear</B>
</I></B>
<DD> Clear entry 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>entryfield</B>
command.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>efchildsite</B>
Class:                  <B>frame</B>
</pre>
<UL>
The efchildsite component is the user child site for the entry field.  See 
the "frame" widget manual entry for details on the efchildsite component item.
</UL>
<P>
<pre>
Name:                   <B>entry</B>
Class:                  <B>entry</B>
</pre>
<UL>
The entry component provides the entry field for user text input and display.
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the entry component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
 option add *textBackground white
 
 proc returnCmd {} {
     puts stdout "Return Pressed"
 }
 
 proc invalidCmd {} {
     puts stdout "Alphabetic contents invalid"
 }
 
 entryfield .ef -command returnCmd
 
 entryfield .fef -labeltext "Fixed:" -fixed 10 -width 12
 
 entryfield .nef -labeltext "Numeric:" -validate numeric -width 12
 
 entryfield .aef -labeltext "Alphabetic:" \\
    -validate alphabetic -width 12 -invalid invalidCmd
 
 entryfield .pef -labeltext "Password:" \\
    -show \267 -width 12 -command returnCmd
 
 Labeledwidget::alignlabels .ef .fef .nef .aef .pef

 pack .ef -fill x -expand yes -padx 10 -pady 5
 pack .fef -fill x -expand yes -padx 10 -pady 5
 pack .nef -fill x -expand yes -padx 10 -pady 5
 pack .aef -fill x -expand yes -padx 10 -pady 5
 pack .pef -fill x -expand yes -padx 10 -pady 5
</pre>
</pre><H2>AUTHORS</H2>
Sue Yockey
<P>
Mark L. Ulferts
<P>
</pre><H2>KEYWORDS</H2>
entryfield, widget
