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); }
/*--------------------------------------------------------------------------- | 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); }
/*--------------------------------------------------------------------------- | 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); }
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); }