'\"!  tbl | mmdoc
'\"macro stdmacro
.if n .pH g3x.forms @(#)forms	40.3 of 12/15/89
.\" Copyright 1989 AT&T
.\" ident	"@(#)svid_ti:ti_env/forms	1.9"
.ds S ETI 
.nr X
.if \nX=0 .ds x} forms 3X "" "\&"
.if \nX=1 .ds x} forms 3X ""
.if \nX=2 .ds x} forms 3X "" "\&"
.if \nX=3 .ds x} forms "" "" "\&"
.TH \*(x}
.SH NAME
\f4forms\fP \- character based forms package
.SH SYNOPSIS
#include <form.h>
.SH DESCRIPTION
The \f4form\f1 library is built using the \f4curses\fP
library, and any program using \f4forms\fP routines must
call one of the \f4curses\fP initialization routines such as \f4initscr\f1.
A program using these routines must be compiled with
\f4\-lform\f1 and \f4\-lcurses\f1 on the \f4cc\f1 command line.
.PP
The \f4forms\fP package gives the applications programmer a terminal-independent
method of creating and customizing forms for user-interaction.
The \f4forms\fP package includes:
field routines, which are used to create and customize fields,
link fields and assign field types;
fieldtype routines, which are used to create new field types
for validating fields; and
form routines, which are used to create and
customize forms, assign pre/post processing functions, and
display and interact with forms.
.SS Current Default Values for Field Attributes
The \f4forms\fP package establishes initial current default values for field
attributes.
During field initialization, each field attribute is assigned the
current default value for that attribute.
An application can change or retrieve a current default attribute value
by calling the appropriate set or retrieve routine with a \f4NULL\fP
field pointer.
If an application changes a current default field attribute value,
subsequent fields created using \f4new_field\fP will have the new
default attribute value.
(The attributes of previously created fields are not changed if a
current default attribute value is changed.)
.SS Routine Name Index
The following table lists each \f4forms\fP routine and the name of the
manual page on which it is described.
.TS H
lfHB lfHB
lfCWw(2i) lw(2i).
\f4forms\fP Routine Name	Manual Page Name
.sp 0.5
_
.TH
current_field	form_page(3X)
data_ahead	form_data(3X)
data_behind	form_data(3X)
dup_field	form_field_new(3X)
dynamic_field_info	form_field_info(3X)
field_arg	form_field_validation(3X)
field_back	form_field_attributes(3X)
field_buffer	form_field_buffer(3X)
field_count	form_field(3X)
field_fore	form_field_attributes(3X)
field_index	form_page(3X)
field_info	form_field_info(3X)
field_init	form_hook(3X)
field_just	form_field_just(3X)
field_opts	form_field_opts(3X)
field_opts_off	form_field_opts(3X)
field_opts_on	form_field_opts(3X)
field_pad	form_field_attributes(3X)
field_status	form_field_buffer(3X)
field_term	form_hook(3X)
field_type	form_field_validation(3X)
field_userptr	form_field_userptr(3X)
form_driver	form_driver(3X)
form_fields	form_field(3X)
form_init	form_hook(3X)
form_opts	form_opts(3X)
form_opts_off	form_opts(3X)
form_opts_on	form_opts(3X)
form_page	form_page(3X)
form_sub	form_win(3X)
form_term	form_hook(3X)
form_userptr	form_userptr(3X)
form_win	form_win(3X)
free_field	form_field_new(3X)
free_fieldtype	form_fieldtype(3X)
free_form	form_new(3X)
link_field	form_field_new(3X)
link_fieldtype	form_fieldtype(3X)
move_field	form_field(3X)
new_field	form_field_new(3X)
new_fieldtype	form_fieldtype(3X)
new_form	form_new(3X)
new_page	form_new_page(3X)
pos_form_cursor	form_cursor(3X)
post_form	form_post(3X)
scale_form	form_win(3X)
set_current_field	form_page(3X)
set_field_back	form_field_attributes(3X)
set_field_buffer	form_field_buffer(3X)
set_field_fore	form_field_attributes(3X)
set_field_init	form_hook(3X)
set_field_just	form_field_just(3X)
set_field_opts	form_field_opts(3X)
set_field_pad	form_field_attributes(3X)
set_field_status	form_field_buffer(3X)
set_field_term	form_hook(3X)
set_field_type	form_field_validation(3X)
set_field_userptr	form_field_userptr(3X)
set_fieldtype_arg	form_fieldtype(3X)
set_fieldtype_choice	form_fieldtype(3X)
set_form_fields	form_field(3X)
set_form_init	form_hook(3X)
set_form_opts	form_opts(3X)
set_form_page	form_page(3X)
set_form_sub	form_win(3X)
set_form_term	form_hook(3X)
set_form_userptr	form_userptr(3X)
set_form_win	form_win(3X)
set_max_field	form_field_buffer(3X)
set_new_page	form_new_page(3X)
unpost_form	form_post(3X)
.TE
.SH RETURN VALUE
Routines that return a pointer always return \f4NULL\fP on error.
Routines that return an integer return one of the following:
.PP
.TS
lfCW c l.
E_OK	\-	The function returned successfully.
E_CONNECTED	\-	The field is already connected to a form.
E_SYSTEM_ERROR	\-	System error.
E_BAD_ARGUMENT	\-	An argument is incorrect.
E_CURRENT	\-	The field is the current field.
E_POSTED	\-	The form is posted.
E_NOT_POSTED	\-	The form is not posted.
E_INVALID_FIELD	\-	The field contents are invalid.
E_NOT_CONNECTED	\-	The field is not connected to a form.
E_NO_ROOM	\-	The form does not fit in the subwindow.
E_BAD_STATE	\-	T{
The routine was called from an initialization or termination function.
T}
E_REQUEST_DENIED	\-	The form driver request failed.
E_UNKNOWN_COMMAND	\-	T{
An unknown request was passed to the the form driver.
T}
.TE
.SH NOTES
.PP
The header file \f4<form.h>\fP automatically includes the header files
\f4<eti.h>\fP and \f4<curses.h>\fP.
.SH SEE ALSO
\f4curses\fP(3X), and 3X pages whose names begin "form_" for detailed
routine descriptions.
