cc [flag . . .] file -lform -locurses [library . . .]#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);
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 mak_arg. Function free_arg frees any storage allocated by mak_arg or copy_arg.
The form_driver requests REN_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. |