***************************************************************************
Copyright 2018-2019,2020 Thomas E. Dickey *
Copyright 1998-2016,2017 Free Software Foundation, Inc. *
*
Permission is hereby granted, free of charge, to any person obtaining a *
copy of this software and associated documentation files (the *
"Software"), to deal in the Software without restriction, including *
without limitation the rights to use, copy, modify, merge, publish, *
distribute, distribute with modifications, sublicense, and/or sell *
copies of the Software, and to permit persons to whom the Software is *
furnished to do so, subject to the following conditions: *
*
The above copyright notice and this permission notice shall be included *
in all copies or substantial portions of the Software. *
*
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
*
Except as contained in this notice, the name(s) of the above copyright *
holders shall not be used in advertising or otherwise to promote the *
sale, use or other dealings in this Software without prior written *
authorization. *
***************************************************************************
$Id: form.3x,v 1.36 2020/12/12 16:34:33 tom Exp $
The form library uses the curses libraries. To use the form library, link with the options -lform -lcurses.
Your program should set up the locale, e.g., setlocale(LC_ALL, ""); so that input/output processing will work.
A curses initialization routine such as initscr must be called before using any of these functions. .
curses Routine Name Manual Page Name |
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_driver_w 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_request_by_name form_requestname(3X)* |
form_request_name form_requestname(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_field_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) |
unfocus_current_field form_page(3X)* |
unpost_form form_post(3X) |
5 E_OK The routine succeeded.
5 E_BAD_ARGUMENT Routine detected an incorrect or out-of-range argument.
5 E_BAD_STATE Routine was called from an initialization or termination function.
5 E_CONNECTED The field is already connected to a form.
5 E_INVALID_FIELD Contents of a field are not valid.
5 E_NOT_CONNECTED No fields are connected to the form.
5 E_NOT_POSTED The form has not been posted.
5 E_NO_ROOM Form is too large for its window.
5 E_POSTED The form is already posted.
5 E_REQUEST_DENIED The form driver could not process the request.
5 E_SYSTEM_ERROR System error occurred (see errno(3)).
5 E_UNKNOWN_COMMAND The form driver code saw an unknown request code.
In your library list, libform.a should be before libncurses.a; that is, you want to say \*(``-lform -lncurses\*('', not the other way around (which would give you a link error when using static libraries).
The menu facility was documented in SVr4.2 in Character User Interface Programming (UNIX SVR4.2).
It is not part of X/Open Curses.
Aside from ncurses, there are few implementations: .bP systems based on SVr4 source code, e.g., Solaris. .bP NetBSD curses.
A few functions in this implementation are extensions added for ncurses, but not provided by other implementations, e.g., form_driver_w, unfocus_current_field.
This describes ncurses version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).