int
free_fieldtype(
FIELDTYPE *fieldtype
)
FIELDTYPE
*
link_fieldtype(
FIELDTYPE *type1
, FIELDTYPE *type2
)
FIELDTYPE
*
new_fieldtype(
int (*field_check)(FIELD *, char *)
int (*char_check)(int, char *)
)
int
set_fieldtype_arg(
FIELDTYPE *fieldtype
char * (*make_args)(va_list *)
char * (*copy_args)(char *)
void (*free_args)(char *)
)
int
set_fieldtype_choice(
FIELDTYPE *fieldtype
int (*next_choice)(FIELD *, char *)
int (*prev_choice)(FIELD *, char *)
)
)
frees the storage associated with the field type and destroys it.
The function
link_fieldtype(
)
links together the two given field types to produce a new field type.
A new field type can be created by calling
new_fieldtype(
)
which requires pointers to two functions which perform validation, the
field_check
function must validate the field contents and return
TRUE
if they are acceptable and
FALSE
if they are not.
The
char_check
validates the character input into the field, this function will be
called for each character entered, if the character can be entered
into the field then
char_check
must return
TRUE
.
Neither
field_check
nor
char_check
may be
NULL
.
The functions for handling the field type arguments can
be defined by using the
set_fieldtype_arg(
)
function, the
make_args
function is used to create new arguments for the fieldtype, the
copy_args
is used to copy the fieldtype arguments to a new arguments structure
and
free_args
is used to destroy the fieldtype arguments and release any associated
storage, none of these function pointers may be
NULL
.
The field type choice functions can be set by calling
set_fieldtype_choice(
),
the
next_choice
and
prev_choice
specify the next and previous choice functions for the field type.
These functions must perform the necessary actions to select the next
or previous choice for the field, updating the field buffer if
necessary.
The choice functions must return
TRUE
if the function succeeded and
FALSE
otherwise.
NULL
if an error is detected.
The functions that return an int will return one of the following error
values:
E_OK
E_BAD_ARGUMENT
E_CONNECTED
form.h
>
automatically includes both
<
curses.h
>
and
<
eti.h
>.