X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fform_fieldtype.3x.html;h=369f25c5fc11982d5c1ba96fd0d31bc5e456843e;hb=610e9700ef6e0f95d03aa53242b12a8946bb62d7;hp=2bf041d22c32301299e5728a50a3378dc11461df;hpb=eccca377f55c70b12e3e92621d94d1e1c1fcfb7d;p=ncurses.git diff --git a/doc/html/man/form_fieldtype.3x.html b/doc/html/man/form_fieldtype.3x.html index 2bf041d2..369f25c5 100644 --- a/doc/html/man/form_fieldtype.3x.html +++ b/doc/html/man/form_fieldtype.3x.html @@ -1,7 +1,7 @@ -
--form_fieldtype(3x) form_fieldtype(3x) +form_fieldtype(3x) Library calls form_fieldtype(3x) @@ -52,63 +52,95 @@
#include <form.h> - FIELDTYPE *new_fieldtype( - bool (* const field_check)(FIELD *, const void *), - bool (* const char_check)(int, const void *)); - int free_fieldtype(FIELDTYPE *fieldtype); - int set_fieldtype_arg( - FIELDTYPE *fieldtype, - void *(* const make_arg)(va_list *), - void *(* const copy_arg)(const void *), - void (* const free_arg)(void *)); - int set_fieldtype_choice( - FIELDTYPE *fieldtype, - bool (* const next_choice)(FIELD *, const void *), - bool (* const prev_choice)(FIELD *, const void *)); - FIELDTYPE *link_fieldtype(FIELDTYPE *type1, - FIELDTYPE *type2); + + FIELDTYPE *new_fieldtype( + bool (* const field_check)(FIELD *, const void *), + bool (* const char_check)(int, const void *)); + int free_fieldtype(FIELDTYPE *fieldtype); + + int set_fieldtype_arg( + FIELDTYPE *fieldtype, + void *(* const make_arg)(va_list *), + void *(* const copy_arg)(const void *), + void (* const free_arg)(void *)); + int set_fieldtype_choice( + FIELDTYPE *fieldtype, + bool (* const next_choice)(FIELD *, const void *), + bool (* const prev_choice)(FIELD *, const void *)); + + FIELDTYPE *link_fieldtype(FIELDTYPE *type1, + FIELDTYPE *type2);
+ +
The function new_fieldtype creates a new field type usable for data - validation. You supply it with field_check, a predicate to check the - validity of an entered data string whenever the user attempts to leave - a field. The (FIELD *) argument is passed in so the validation predi- - cate can see the field's buffer, sizes and other attributes; the second - argument is an argument-block structure, about which more below. + validation. Its parameters are function pointers: + + field_check + This function checks the validity of an entered data string + whenever the user attempts to leave a field. It has two + arguments: + + o The (FIELD *) argument is passed in so the validation + predicate can see the field's buffer, sizes and other + attributes. + + o The second argument is an argument-block structure, about + which more below. - You also supply new_fieldtype with char_check, a function to validate - input characters as they are entered; it will be passed the character - to be checked and a pointer to an argument-block structure. + char_check + This function validates input characters as they are entered. The + form library passes it the character to be checked and a pointer + to an argument-block structure. - The function free_fieldtype frees the space allocated for a given vali- - dation type. +
+ The free_fieldtype function frees the space allocated for a given + validation type by new_fieldtype. + + +
The function set_fieldtype_arg associates three storage-management - functions with a field type. The make_arg function is automatically - applied to the list of arguments you give set_field_type when attaching - validation to a field; its job is to bundle these into an allocated - argument-block object which can later be passed to validation predi- - cated. The other two hook arguments should copy and free argument- - block structures. They will be used by the forms-driver code. You - must supply the make_arg function, the other two are optional, you may - supply NULL for them. In this case it is assumed that make_arg does - not allocate memory but simply loads the argument into a single scalar - value. + functions with a field type: + + make_arg + This function is automatically applied to the list of arguments + you give set_field_type when attaching validation to a field. It + stores the arguments in an allocated argument-block object which + is used when validating input. + + copy_arg + This function may be used by applications to copy argument-blocks. + + free_arg + Frees an argument-block structure. + + You must supply the make_arg function. The other two are optional: you + may supply NULL for them. In this case, the form library assumes that + make_arg does not allocate memory but simply loads the argument into a + single scalar value. + + +
+ The form driver requests REQ_NEXT_CHOICE and REQ_PREV_CHOICE assume + that the possible values of a field form an ordered set, and provide + the forms user with a way to move through the set. + The set_fieldtype_choice function allows forms programmers to define + successor and predecessor functions for the field type. These + functions take the field pointer and an argument-block structure as + arguments. + + +
The function link_fieldtype creates a new field type from the two given types. They are connected by an logical 'OR'. - The form driver requests REQ_NEXT_CHOICE and REQ_PREV_CHOICE assume - that the possible values of a field form an ordered set, and provide - the forms user with a way to move through the set. The set_field- - type_choice function allows forms programmers to define successor and - predecessor functions for the field type. These functions take the - field pointer and an argument-block structure as arguments. -
- The pointer-valued routines return NULL on error. They set errno + The pointer-valued routines return NULL on error. They set errno according to their success: E_OK The routine succeeded. @@ -136,22 +168,9 @@ System error occurred (see errno(3)). -
- curses(3x), form(3x). - - -
- The header file <form.h> automatically includes the header file - <curses.h>. - - All of the (char *) arguments of these functions should actually be - (void *). The type has been left uncorrected for strict compatibility - with System V. - -
- These routines emulate the System V forms library. They were not sup- - ported on Version 7 or BSD versions. + These routines emulate the System V forms library. They were not + supported on Version 7 or BSD versions.
@@ -159,19 +178,30 @@ Raymond. +
+ curses(3x), form(3x), form_field_validation(3x) + + - form_fieldtype(3x) +ncurses 6.5 2024-03-16 form_fieldtype(3x)