123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
- * @Id: form_driver.3x,v 1.16 2008/06/21 21:55:39 tom Exp @
- -->
- <HTML>
- <HEAD>
- <TITLE>form_driver 3x</TITLE>
- <link rev=made href="mailto:bug-ncurses@gnu.org">
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- </HEAD>
- <BODY>
- <H1>form_driver 3x</H1>
- <HR>
- <PRE>
- <!-- Manpage converted by man2html 3.0.1 -->
- <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
- </PRE>
- <H2>NAME</H2><PRE>
- <STRONG>form_driver</STRONG> - command-processing loop of the form system
- </PRE>
- <H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG><form.h></STRONG>
- int form_driver(FORM *form, int c);
- </PRE>
- <H2>DESCRIPTION</H2><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:
- - 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>wgetch</STRONG>.
- - The input is a printable character. Printable charac-
- ters (which must be positive, less than 256) are
- checked according to the program's locale settings.
- - The input is the KEY_MOUSE special key associated with
- an mouse event.
- The form driver requests are as follows:
- REQ_NEXT_PAGE
- Move to the next page.
- REQ_PREV_PAGE
- Move to the previous page.
- REQ_FIRST_PAGE
- Move to the first page.
- REQ_LAST_PAGE
- Move to the last field.
- REQ_NEXT_FIELD
- Move to the next field.
- REQ_PREV_FIELD
- Move to the previous field.
- REQ_FIRST_FIELD
- Move to the first field.
- REQ_LAST_FIELD
- Move to the last field.
- REQ_SNEXT_FIELD
- Move to the sorted next field.
- REQ_SPREV_FIELD
- Move to the sorted previous field.
- REQ_SFIRST_FIELD
- Move to the sorted first field.
- REQ_SLAST_FIELD
- Move to the sorted last field.
- REQ_LEFT_FIELD
- Move left to a field.
- REQ_RIGHT_FIELD
- Move right to a field.
- REQ_UP_FIELD
- Move up to a field.
- REQ_DOWN_FIELD
- Move down to a field.
- REQ_NEXT_CHAR
- Move to the next char.
- REQ_PREV_CHAR
- Move to the previous char.
- REQ_NEXT_LINE
- Move to the next line.
- REQ_PREV_LINE
- Move to the previous line.
- REQ_NEXT_WORD
- Move to the next word.
- REQ_PREV_WORD
- Move to the previous word.
- REQ_BEG_FIELD
- Move to the beginning of the field.
- REQ_END_FIELD
- Move to the end of the field.
- REQ_BEG_LINE
- Move to the beginning of the line.
- REQ_END_LINE
- Move to the end of the line.
- REQ_LEFT_CHAR
- Move left in the field.
- REQ_RIGHT_CHAR
- Move right in the field.
- REQ_UP_CHAR
- Move up in the field.
- REQ_DOWN_CHAR
- Move down in the field.
- REQ_NEW_LINE
- Insert or overlay a new line.
- REQ_INS_CHAR
- Insert a blank at the cursor.
- REQ_INS_LINE
- Insert a blank line at the cursor.
- REQ_DEL_CHAR
- Delete character at the cursor.
- REQ_DEL_PREV
- Delete character before the cursor.
- REQ_DEL_LINE
- Delete line at the cursor.
- REQ_DEL_WORD
- Delete blank-delimited word at the cursor.
- REQ_CLR_EOL
- Clear to end of line from cursor.
- REQ_CLR_EOF
- Clear to end of field from cursor.
- REQ_CLR_FIELD
- Clear the entire field.
- REQ_OVL_MODE
- Enter overlay mode.
- REQ_INS_MODE
- Enter insert mode.
- REQ_SCR_FLINE
- Scroll the field forward a line.
- REQ_SCR_BLINE
- Scroll the field backward a line.
- REQ_SCR_FPAGE
- Scroll the field forward a page.
- REQ_SCR_BPAGE
- Scroll the field backward a page.
- REQ_SCR_FHPAGE
- Scroll the field forward half a page.
- REQ_SCR_BHPAGE
- Scroll the field backward half a page.
- REQ_SCR_FCHAR
- Scroll the field forward a character.
- REQ_SCR_BCHAR
- Scroll the field backward a character.
- REQ_SCR_HFLINE
- Horizontal scroll the field forward a line.
- REQ_SCR_HBLINE
- Horizontal scroll the field backward a line.
- REQ_SCR_HFHALF
- Horizontal scroll the field forward half a line.
- REQ_SCR_HBHALF
- Horizontal scroll the field backward half a line.
- REQ_VALIDATION
- Validate field.
- REQ_NEXT_CHOICE
- Display next field choice.
- REQ_PREV_CHOICE
- Display previous field choice.
- If the second argument is a printable character, the
- driver places it in the current position in the current
- field. If it is one of the forms requests listed above,
- that request is executed.
- <STRONG>MOUSE</STRONG> <STRONG>HANDLING</STRONG>
- If the second argument is the KEY_MOUSE special key, the
- associated mouse event is translated into one of the above
- pre-defined requests. Currently only clicks in the user
- window (e.g. inside the form display area or the decora-
- tion window) are handled.
- If you click above the display region of the form:
- a REQ_PREV_FIELD is generated for a single click,
- a REQ_PREV_PAGE is generated for a double-click and
- a REQ_FIRST_FIELD is generated for a triple-click.
- If you click below the display region of the form:
- a REQ_NEXT_FIELD is generated for a single click,
- a REQ_NEXT_PAGE is generated for a double-click and
- a REQ_LAST_FIELD is generated for a triple-click.
- If you click at an field inside the display area of the
- form:
- - the form cursor is positioned to that field.
- - If you double-click a field, the form cursor is
- positioned to that field and <STRONG>E_UNKNOWN_COMMAND</STRONG>
- is returned. This return value makes sense,
- because a double click usually means that an
- field-specific action should be returned. It is
- exactly the purpose of this return value to sig-
- nal that an application specific command should
- be executed.
- - If a translation into a request was done,
- <STRONG>form_driver</STRONG> returns the result of this request.
- If you clicked outside the user window or the mouse event
- could not be translated into a form request an
- <STRONG>E_REQUEST_DENIED</STRONG> is returned.
- <STRONG>APPLICATION-DEFINED</STRONG> <STRONG>COMMANDS</STRONG>
- If the second argument is neither printable nor one of the
- above pre-defined form requests, the driver assumes it is
- an application-specific command and returns <STRONG>E_UNKNOWN_COM-</STRONG>
- <STRONG>MAND</STRONG>. Application-defined commands should be defined rel-
- ative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of these pre-
- defined requests.
- </PRE>
- <H2>RETURN VALUE</H2><PRE>
- <STRONG>form_driver</STRONG> returns one of the following error codes:
- <STRONG>E_OK</STRONG> The routine succeeded.
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
- <STRONG>E_NOT_POSTED</STRONG>
- The form has not been posted.
- <STRONG>E_INVALID_FIELD</STRONG>
- Contents of field is invalid.
- <STRONG>E_REQUEST_DENIED</STRONG>
- The form driver could not process the request.
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
- <STRONG>E_UNKNOWN_COMMAND</STRONG>
- The form driver code saw an unknown request code.
- </PRE>
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="wgetch.3x.html">wgetch(3x)</A></STRONG>.
- </PRE>
- <H2>NOTES</H2><PRE>
- The header file <STRONG><form.h></STRONG> automatically includes the header
- files <STRONG><curses.h></STRONG>.
- </PRE>
- <H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
- </PRE>
- <H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
- <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
- </PRE>
- <HR>
- <ADDRESS>
- Man(1) output converted with
- <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
- </ADDRESS>
- </BODY>
- </HTML>
|