#include <form.h>
FIELDTYPE *new_fieldtype(int (* field_check) (FIELD *, char *), int (* char_check)(int, char *));
int free_fieldtype(FIELDTYPE *fieldtype);
int set_fieldtype_arg(FIELDTYPE *fieldtype, char *(* mak_arg)(va_list *), char *(* copy_arg) (char *), void (* free_arg)(char *));
int set_fieldtype_choice(FIELDTYPE *fieldtype, int (* next_choice)(FIELD *, char *), int (* prev_choice)(FIELD *, char *));
FIELDTYPE *link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2);
Unsafe
By associating function pointers with a field type, set_fieldtype_arg() connects to the field type additional arguments necessary for a set_field_type() call. Function mak_arg allocates a structure for the field specific parameters to set_field_type() and returns a pointer to the saved data. Function copy_arg duplicates the structure created by make_arg. Function free_arg frees any storage allocated by make_arg or copy_arg.
The form_driver() requests REQ_NEXT_CHOICE and REQ_PREV_CHOICE let the user request the next or previous value of a field type comprising an ordered set of values. set_fieldtype_choice() allows the application programmer to implement these requests for the given field type. It associates with the given field type those application-defined functions that return pointers to the next or previous choice for the field.
link_fieldtype() returns a pointer to the field type built from the two given types. The constituent types may be any application-defined or pre-defined types.
E_OK - The function returned successfully. E_SYSTEM_ERROR - System error. E_BAD_ARGUMENT - An argument is incorrect. E_CONNECTED - Type is connected to one or more fields.
The header <form.h> automatically includes the headers <eti.h> and <curses.h>.