<TITLE>datefield - Create and manipulate a date field widget</TITLE>
<H1>datefield - Create and manipulate a date field widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>datefield<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- LabeledWidget &lt;- datefield
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>background</B><br>
<B>foreground</B><br>
<B>justify</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightColor</B><br>
<B>relief</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightThickness</B><br>
</td>
<td valign=top>
<B>exportSelection</B><br>
<B>insertBackground</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>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 date 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>gmt</B>
Class:                  <B>GMT</B>
Command-Line Switch:	<B>-gmt</B>
</pre>
<UL>
Determines whether the date is calculated relative to Greenwich
Mean Time. Accepts a boolean value. The default is no.
</UL>
<P>
<pre>
Name:                   <B>int</B>
Class:                  <B>DateFormat</B>
Command-Line Switch:	<B>-int</B>
</pre>
<UL>
Used to specify international date formats.  This option must be
a boolean value.  When set to true, the date is formatted as
YYYY-MM-DD.  When set to false, it is formatted as MM/DD/YYYY.  Note
that this format is driven by the 'clock scan' command and that
YYYY-MM-DD is supported in Tk 8.4 or later.  The default is no.
</UL>
<P>
<pre>
Name:                   <B>iq</B>
Class:                  <B>Iq</B>
Command-Line Switch:	<B>-iq</B>
</pre>
<UL>
Specifies the level of intelligence to be shown in the actions
taken by the datefield during the processing of keypress events.
Valid settings include <B>high</B>, <B>average</B>, and <B>low</B>.  
With a high iq,the date prevents the user from typing in an 
invalid date.  For example, if the current date is 05/31/1997 and 
the user changes the month to 04, then the day will be instantly 
modified for them to be 30.  In addition, leap years are fully 
taken into account.  With average iq, the month is limited to the 
values of 01-12, but it is possible to type in an invalid day.  
A setting of low iq instructs the widget to do no validity 
checking at all during date entry.  With both average and low 
iq levels, it is assumed that the validity will be determined 
at a later time using the date's <B>isvalid</B> command.
</UL>
<P>
<pre>
Name:                   <B>state</B>
Class:                  <B>State</B>
Command-Line Switch:	<B>-state</B>
</pre>
<UL>
Specifies one of two states for the datefield: <B>normal</B> or <B>disabled</B>.
If the datefield is disabled then input is not accepted.  The default is
normal.
</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 datefield.  The value
may be given in any of the forms acceptable to <B>Tk_GetFont</B>.
</UL>
<P>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>datefield</B> command creates an enhanced text entry widget for
the purpose of date entry with various degrees of built-in intelligence.
</pre>

</pre><H2>METHODS</H2>
<P>
The <B>datefield</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 datefield widgets:
</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>datefield</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>datefield</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>get</B> ?<B>format</B>?
</I></B>
<DD> Returns the current contents of the datefield in a format of 
string or as an integer clock value using the <B>-string</B> and <B>-clicks</B>
format options respectively.  The default is by string.  Reference the 
clock command for more information on obtaining dates and their 
formats.
</DL>
<DL>
<DT> <I>pathName <B>isvalid</B>
</I></B>
<DD> Returns a boolean indication of the validity of the currently
displayed date value.  For example, 03/03/1960 is valid whereas
02/29/1997 is invalid.
</DL>
<DL>
<DT> <I>pathName <B>show</B> <I>date</I>
</I></B>
<DD> Changes the currently displayed date to be that of the date 
argument.  The date may be specified either as a string, an
integer clock value or the keyword "now".  Reference the clock 
command for more information on obtaining dates and their formats.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>date</B>
Class:                  <B>Entry</B>
</pre>
<UL>
The date component provides the entry field for date 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 date component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
 proc returnCmd {} {
   puts [.df get]
 }

 datefield .df -command returnCmd
 pack .df -fill x -expand yes -padx 10 -pady 10
</pre>
</pre><H2>AUTHOR</H2>
Mark L. Ulferts
<P>
</pre><H2>KEYWORDS</H2>
datefield, widget
