post_form (FORM * form) { WINDOW *formwin; int err; int page; if (!form) RETURN(E_BAD_ARGUMENT); if (form->status & _POSTED) RETURN(E_POSTED); if (!(form->field)) RETURN(E_NOT_CONNECTED); formwin = Get_Form_Window(form); if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin))) RETURN(E_NO_ROOM); /* reset form->curpage to an invald value. This forces Set_Form_Page to do the page initialization which is required by post_form. */ page = form->curpage; form->curpage = -1; if ((err = _nc_Set_Form_Page(form,page,form->current))!=E_OK) RETURN(err); form->status |= _POSTED; Call_Hook(form,forminit); Call_Hook(form,fieldinit); _nc_Refresh_Current_Field(form); RETURN(E_OK); }
unpost_form (FORM * form) { if (!form) RETURN(E_BAD_ARGUMENT); if (!(form->status & _POSTED)) RETURN(E_NOT_POSTED); if (form->status & _IN_DRIVER) RETURN(E_BAD_STATE); Call_Hook(form,fieldterm); Call_Hook(form,formterm); werase(Get_Form_Window(form)); delwin(form->w); form->w = (WINDOW *)0; form->status &= ~_POSTED; RETURN(E_OK); }
/*--------------------------------------------------------------------------- | Facility : libnform | Function : WINDOW *form_sub(const FORM *) | | Description : Retrieve the window of the form. | | Return Values : The pointer to the Subwindow. +--------------------------------------------------------------------------*/ WINDOW *form_sub(const FORM * form) { const FORM* f = Normalize_Form( form ); return Get_Form_Window(f); }