Beispiel #1
0
NCURSES_SP_NAME(new_form) (NCURSES_SP_DCLx FIELD **fields)
{
    int err = E_SYSTEM_ERROR;
    FORM *form = (FORM *)0;

    T((T_CALLED("new_form(%p,%p)"), (void *)SP_PARM, (void *)fields));

    if (IsValidScreen(SP_PARM))
    {
        form = typeMalloc(FORM, 1);

        if (form)
        {
            T((T_CREATE("form %p"), (void *)form));
            *form = *_nc_Default_Form;
            /* This ensures win and sub are always non-null,
               so we can derive always the SCREEN that this form is
               running on. */
            form->win = StdScreen(SP_PARM);
            form->sub = StdScreen(SP_PARM);
            if ((err = Associate_Fields(form, fields)) != E_OK)
            {
                free_form(form);
                form = (FORM *)0;
            }
        }
    }

    if (!form)
        SET_ERROR(err);

    returnForm(form);
}
Beispiel #2
0
/*---------------------------------------------------------------------------
|   Facility      :  libnform  
|   Function      :  int set_form_fields( FORM *form, FIELD **fields )
|   
|   Description   :  Set a new association of an array of fields to a form
|
|   Return Values :  E_OK              - no error
|                    E_BAD_ARGUMENT    - invalid form pointer
|                    E_POSTED          - form is posted
+--------------------------------------------------------------------------*/
int set_form_fields(FORM  * form, FIELD ** fields)
{
  FIELD **old;
  int res;
  
  if ( !form )	
    RETURN(E_BAD_ARGUMENT);

  if ( form->status & _POSTED )	
    RETURN(E_POSTED);
  
  old = form->field;
  Disconnect_Fields( form );
  
  if( (res = Associate_Fields( form, fields )) != E_OK )
    Connect_Fields( form, old );
  
  RETURN(res);
}
Beispiel #3
0
/*---------------------------------------------------------------------------
|   Facility      :  libnform  
|   Function      :  FORM *new_form( FIELD **fields )
|   
|   Description   :  Create new form with given array of fields.
|
|   Return Values :  Pointer to form. NULL if error occurred.
+--------------------------------------------------------------------------*/
FORM *new_form(FIELD ** fields)
{	
  int err = E_SYSTEM_ERROR;

  FORM *form = (FORM *)malloc(sizeof(FORM));
  
  if (form)
    {
      *form = *_nc_Default_Form;
      if ((err=Associate_Fields(form,fields))!=E_OK)
	{
	  free_form(form);
	  form = (FORM *)0;
	}
    }

  if (!form)
    SET_ERROR(err);
  
  return(form);
}
Beispiel #4
0
new_form(FIELD **fields)
{
    int err = E_SYSTEM_ERROR;

    FORM *form = typeMalloc(FORM, 1);

    T((T_CALLED("new_form(%p)"), fields));
    if (form)
    {
        T((T_CREATE("form %p"), form));
        *form = *_nc_Default_Form;
        if ((err = Associate_Fields(form, fields)) != E_OK)
        {
            free_form(form);
            form = (FORM *)0;
        }
    }

    if (!form)
        SET_ERROR(err);

    returnForm(form);
}