Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
/*---------------------------------------------------------------------------
|   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);
}