+ <STRONG>int</STRONG> <STRONG>form_driver(FORM</STRONG> <STRONG>*</STRONG><EM>form</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>form_driver_w(FORM</STRONG> <STRONG>*</STRONG><EM>form</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <EM>wc</EM><STRONG>);</STRONG>
+
+
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+
+</PRE><H3><a name="h3-form_driver">form_driver</a></H3><PRE>
+ Once a form has been posted (displayed), you should funnel input events
+ to it through <STRONG>form_driver</STRONG>. This routine has three major input cases:
+
+ <STRONG>o</STRONG> The input is a form navigation request. Navigation request codes
+ are constants defined in <STRONG><form.h></STRONG>, which are distinct from the key-
+ and character codes returned by <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>.
+
+ <STRONG>o</STRONG> The input is a printable character. Printable characters (which
+ must be positive, less than 256) are checked according to the
+ program's locale settings.
+
+ <STRONG>o</STRONG> The input is the KEY_MOUSE special key associated with an mouse
+ event.
+
+
+</PRE><H3><a name="h3-form_driver_w">form_driver_w</a></H3><PRE>
+ This extension simplifies the use of the forms library using wide
+ characters. The input is either a key code (a request) or a wide
+ character returned by <STRONG><A HREF="curs_get_wch.3x.html">get_wch(3x)</A></STRONG>. The type must be passed as well, to
+ enable the library to determine whether the parameter is a wide
+ character or a request.
+
+
+</PRE><H3><a name="h3-Form-Driver-Requests">Form Driver Requests</a></H3><PRE>
+ The form driver requests are as follows:
+
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>REQ_BEG_FIELD</STRONG> Move to beginning of field.
+ <STRONG>REQ_BEG_LINE</STRONG> Move to beginning of the line.
+ <STRONG>REQ_CLR_EOF</STRONG> Clear to end of field from cursor.
+ <STRONG>REQ_CLR_EOL</STRONG> Clear to end of line from cursor.
+ <STRONG>REQ_CLR_FIELD</STRONG> Clear the entire field.
+ <STRONG>REQ_DEL_CHAR</STRONG> Delete character at the cursor.
+ <STRONG>REQ_DEL_LINE</STRONG> Delete line at the cursor.
+ <STRONG>REQ_DEL_PREV</STRONG> Delete character before the cursor.
+ <STRONG>REQ_DEL_WORD</STRONG> Delete blank-delimited word at cursor.
+ <STRONG>REQ_DOWN_CHAR</STRONG> Move down in field.
+ <STRONG>REQ_DOWN_FIELD</STRONG> Move down to a field.
+ <STRONG>REQ_END_FIELD</STRONG> Move to the end of field.
+ <STRONG>REQ_END_LINE</STRONG> Move to the end of the line.
+ <STRONG>REQ_FIRST_FIELD</STRONG> Move to the first field.
+ <STRONG>REQ_FIRST_PAGE</STRONG> Move to the first page.
+ <STRONG>REQ_INS_CHAR</STRONG> Insert a blank at the cursor.
+ <STRONG>REQ_INS_LINE</STRONG> Insert a blank line at the cursor.
+ <STRONG>REQ_INS_MODE</STRONG> Enter insert mode.
+ <STRONG>REQ_LAST_FIELD</STRONG> Move to the last field.
+ <STRONG>REQ_LAST_PAGE</STRONG> Move to the last field.
+ <STRONG>REQ_LEFT_CHAR</STRONG> Move left in field.
+ <STRONG>REQ_LEFT_FIELD</STRONG> Move left to a field.
+ <STRONG>REQ_NEW_LINE</STRONG> Insert or overlay a new line.
+ <STRONG>REQ_NEXT_CHAR</STRONG> Move to the next char.
+
+ <STRONG>REQ_NEXT_CHOICE</STRONG> Display next field choice.
+ <STRONG>REQ_NEXT_FIELD</STRONG> Move to the next field.
+ <STRONG>REQ_NEXT_LINE</STRONG> Move to the next line.
+ <STRONG>REQ_NEXT_PAGE</STRONG> Move to the next page.
+ <STRONG>REQ_NEXT_PAGE</STRONG> Move to the next page.
+ <STRONG>REQ_NEXT_WORD</STRONG> Move to the next word.
+ <STRONG>REQ_OVL_MODE</STRONG> Enter overlay mode.
+ <STRONG>REQ_PREV_CHAR</STRONG> Move to the previous char.
+ <STRONG>REQ_PREV_CHOICE</STRONG> Display previous field choice.
+ <STRONG>REQ_PREV_FIELD</STRONG> Move to the previous field.
+ <STRONG>REQ_PREV_LINE</STRONG> Move to the previous line.
+ <STRONG>REQ_PREV_PAGE</STRONG> Move to the previous page.
+ <STRONG>REQ_PREV_WORD</STRONG> Move to the previous word.
+ <STRONG>REQ_RIGHT_CHAR</STRONG> Move right in field.
+ <STRONG>REQ_RIGHT_FIELD</STRONG> Move right to a field.
+ <STRONG>REQ_SCR_BCHAR</STRONG> Scroll field backward 1 character.
+ <STRONG>REQ_SCR_BHPAGE</STRONG> Scroll field backward 1/2 page.
+ <STRONG>REQ_SCR_BLINE</STRONG> Scroll field backward 1 line.
+ <STRONG>REQ_SCR_BPAGE</STRONG> Scroll field backward 1 page.
+ <STRONG>REQ_SCR_FCHAR</STRONG> Scroll field forward 1 character.
+ <STRONG>REQ_SCR_FHPAGE</STRONG> Scroll field forward 1/2 page.
+ <STRONG>REQ_SCR_FLINE</STRONG> Scroll field forward 1 line.
+ <STRONG>REQ_SCR_FPAGE</STRONG> Scroll field forward 1 page.
+ <STRONG>REQ_SCR_HBHALF</STRONG> Horizontal scroll field backward 1/2 line.
+ <STRONG>REQ_SCR_HBLINE</STRONG> Horizontal scroll field backward 1 line.
+ <STRONG>REQ_SCR_HFHALF</STRONG> Horizontal scroll field forward 1/2 line.
+ <STRONG>REQ_SCR_HFLINE</STRONG> Horizontal scroll field forward 1 line.
+ <STRONG>REQ_SFIRST_FIELD</STRONG> Move to the sorted first field.
+ <STRONG>REQ_SLAST_FIELD</STRONG> Move to the sorted last field.
+ <STRONG>REQ_SNEXT_FIELD</STRONG> Move to the sorted next field.
+ <STRONG>REQ_SPREV_FIELD</STRONG> Move to the sorted previous field.
+ <STRONG>REQ_UP_CHAR</STRONG> Move up in field.
+ <STRONG>REQ_UP_FIELD</STRONG> Move up to a field.
+ <STRONG>REQ_VALIDATION</STRONG> Validate field.