|
|
When you have created a form and its window and subwindow, you are ready to post it. To post a form is to display it on the form's subwindow; to unpost a form is to erase it from the form's subwindow.
SYNOPSIS
int post_form (form) FORMUnposting a form does not remove its data structure from memory.form;
int unpost_form (form) FORM
form;
``Posting and unposting a form'' uses two application routines, display_form and erase_form, to show how you might post and later unpost a form. The code builds on that used previously in ``Creating a border around a form'' to create the form's window and subwindow.
static void display_form (f) /* create form windows and post */
FORM * f;
{
WINDOW * w;
int rows;
int cols;
scale_form (f, &rows, &cols); /* get dimensions of form */
/* create form window */
if (w = newwin (rows+4, cols+4, 0, 0))
{
set_form_win (f, w);
set_form_sub (f, derwin (w, rows, cols, 2, 2));
box (w, 0, 0);
keypad (w, 1);
}
else
/* error routine in previous section "ETI Low-level Interface to
High-level Functions" */
error ("error return from newwin", NULL);
if (post_form (f) != E_OK) /* post form */
error ("error return from post_form", NULL);
else
refresh (w);
}
static void erase_form (f) /* unpost and delete form windows */
FORM * f;
{
WINDOW * w = form_win (f);
WINDOW * s = form_sub (f);
unpost_form (f); /* unpost form */
werase (w); /* erase form window */
wrefresh (w); /* refresh screen */
delwin (s); /* delete form windows */
delwin (w);
}
Posting and unposting a form
If successful, function post_form returns E_OK. If not, it returns one of the following: