<STRONG>validateCommand</STRONG> will be called for all above conditions.
<P></P></DL>
<P>The <STRONG>validateCommand</STRONG> and <STRONG>invalidCommand</STRONG> are called with the following
arguments:</P>
<UL>
<LI><STRONG><A NAME="item_The_proposed_value_of_the_entry%2E_If_you_are_conf">The proposed value of the entry. If you are configuring the
entry widget to have a new textvariable, this will be the value of that
textvariable.</A></STRONG><BR>
<LI><STRONG><A NAME="item_added">The characters to be added (or deleted). This will be <A HREF="../../../lib/Pod/perlfunc.html#item_undef"><CODE>undef</CODE></A>
if validation is due to focus, explcit call to validate or if change
is due to <CODE>-textvariable</CODE> changing.</A></STRONG><BR>
<LI><STRONG><A NAME="item_The_current_value_of_entry_i%2Ee%2E_before_the_pro">The current value of entry i.e. before the proposed change.</A></STRONG><BR>
<LI><STRONG><A NAME="item_index_of_char_string_to_be_added%2Fdeleted%2C_if_a">index of char string to be added/deleted, if any. -1 otherwise</A></STRONG><BR>
<LI><STRONG><A NAME="item_type_of_action%2E_1_%3D%3D_INSERT%2C_0_%3D%3D_DELE">type of action. 1 == INSERT, 0 == DELETE,
-1 if it's a forced validation or textvariable validation</A></STRONG><BR>
</UL>
<P>In general, the <STRONG>textVariable</STRONG> and <STRONG>validateCommand</STRONG> can be
dangerous to mix. If you try set the <STRONG>textVariable</STRONG>
to something that the <STRONG>validateCommand</STRONG> will not accept it will
be set back to the value of the entry widget.
Using the <STRONG>textVariable</STRONG> for read-only purposes will never cause problems.</P>
<P>The <STRONG>validateCommand</STRONG> will turn itself off by setting
<STRONG>validate</STRONG> to <STRONG>none</STRONG> when an error occurs, for example
when the <STRONG>validateCommand</STRONG> or <STRONG>invalidCommand</STRONG> encounters
an error in its script while evaluating, or
<STRONG>validateCommand</STRONG> does not return a valid boolean value.</P>
<P>With the perl/Tk version <STRONG>validate</STRONG> option is supposed to be
``suspended'' while executing the <STRONG>validateCommand</STRONG> or the <STRONG>invalidCommand</STRONG>.
This is experimental but in theory either callback can ``correct'' the
value of the widget, and override the proposed change. (<STRONG>validateCommand</STRONG>
should still return false to inhibit the change from happening when