X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fform_driver.3x.html;h=6fb31c705ae0c0d73221b9262092ffb5c08bf148;hb=f344f8539c1543f8cd65a5bb142dbaf23b9421d2;hp=26fcc948bfbc7a9bec5596835e799595294d0ffe;hpb=b11cef1e315b58820ea0cde239ebf2f741ef8948;p=ncurses.git diff --git a/doc/html/man/form_driver.3x.html b/doc/html/man/form_driver.3x.html index 26fcc948..6fb31c70 100644 --- a/doc/html/man/form_driver.3x.html +++ b/doc/html/man/form_driver.3x.html @@ -1,6 +1,6 @@ @@ -45,24 +45,20 @@ - -
+
form_driver, form_driver_w - command-processing loop of the form system --
+
#include <form.h> int form_driver(FORM *form, int c); int form_driver_w(FORM *form, int c, wchar_t wch); --
+
--
+
Once a form has been posted (displayed), you should funnel input events to it through form_driver. This routine has three major input cases: @@ -70,7 +66,7 @@ o The input is a form navigation request. Navigation request codes are constants defined in <form.h>, which are distinct from the key- and character codes - returned by wgetch(3x). + returned by wgetch(3x). o The input is a printable character. Printable charac- ters (which must be positive, less than 256) are @@ -80,18 +76,16 @@ an mouse event. --
+
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 get_wch(3x). The + request) or a wide character returned by get_wch(3x). The type must be passed as well, to enable the library to determine whether the parameter is a wide character or a request. --
+
The form driver requests are as follows: Name Description @@ -162,12 +156,44 @@ that request is executed. --
- If the second argument is the KEY_MOUSE special key, the +
+ The form library makes updates to the window associated + with form fields rather than directly to the field buf- + fers. + + The form driver provides low-level control over updates to + the form fields. The form driver also provides for vali- + dating modified fields to ensure that the contents meet + whatever constraints an application may attach using + set_field_type. + + You can validate a field without making any changes to it + using REQ_VALIDATION. The form driver also validates a + field in these cases: + + o a call to set_current_field attempts to move to a dif- + ferent field. + + o a call to set_current_page attempts to move to a dif- + ferent page of the form. + + o a request attempts to move to a different field. + + o a request attempts to move to a different page of the + form. + + In each case, the move fails if the field is invalid. + + If the modified field is valid, the form driver copies the + modified data from the window associated with the field to + the field buffer. + + +
+ 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- + 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: @@ -186,45 +212,43 @@ a REQ_LAST_FIELD is generated for a triple-click. - If you click at an field inside the display area of the + If you click at an field inside the display area of the form: o the form cursor is positioned to that field. - o If you double-click a field, the form cursor is - positioned to that field and E_UNKNOWN_COMMAND is + o If you double-click a field, the form cursor is + positioned to that field and E_UNKNOWN_COMMAND 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 pur- - pose of this return value to signal that an appli- + double click usually means that an field-specific + action should be returned. It is exactly the pur- + pose of this return value to signal that an appli- cation specific command should be executed. - o If a translation into a request was done, + o If a translation into a request was done, form_driver 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 + If you clicked outside the user window or the mouse event + could not be translated into a form request an E_REQUEST_DENIED is returned. --
+
If the second argument is neither printable nor one of the - above pre-defined form requests, the driver assumes it is + above pre-defined form requests, the driver assumes it is an application-specific command and returns E_UNKNOWN_COM- MAND. Application-defined commands should be defined rel- - ative to MAX_COMMAND, the maximum value of these pre- + ative to MAX_COMMAND, the maximum value of these pre- defined requests. --
+
form_driver returns one of the following error codes: E_OK The routine succeeded. E_BAD_ARGUMENT - Routine detected an incorrect or out-of-range argu- + Routine detected an incorrect or out-of-range argu- ment. E_BAD_STATE @@ -247,26 +271,24 @@ The form driver code saw an unknown request code. --
- curses(3x), form(3x), form_variables(3x), curs_getch(3x). +
+ curses(3x), form(3x), form_field_buffer(3x), + form_field_validation(3x), form_fieldtype(3x), form_vari- + ables(3x), getch(3x). --
+
The header file <form.h> automatically includes the header files <curses.h>. --
- These routines emulate the System V forms library. They +
+ These routines emulate the System V forms library. They were not supported on Version 7 or BSD versions. --
- Juergen Pfeifer. Manual pages and adaptation for new +
+ Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S. Raymond. @@ -282,6 +304,7 @@