Lines Matching refs:form
36 #include "form.h"
40 traverse_form_links(FORM *form, int direction);
50 traverse_form_links(FORM *form, int direction)
54 idx = form->cur_field;
59 if (form->fields[idx]->left == NULL)
61 idx = form->fields[idx]->left->index;
65 if (form->fields[idx]->right == NULL)
67 idx = form->fields[idx]->right->index;
71 if (form->fields[idx]->up == NULL)
73 idx = form->fields[idx]->up->index;
77 if (form->fields[idx]->down == NULL)
79 idx = form->fields[idx]->down->index;
86 if ((form->fields[idx]->opts & (O_ACTIVE | O_VISIBLE))
88 form->cur_field = idx;
91 } while (idx != form->cur_field);
97 form_driver(FORM *form, int c)
104 if (form == NULL)
107 if ((form->fields == NULL) || (*(form->fields) == NULL))
110 if (form->posted != 1)
113 if (form->in_init == 1)
117 old_field = start_field = form->cur_field;
118 fieldp = form->fields[form->cur_field];
138 * call the form driver
148 status = form_driver(form,
159 if (start_field == form->cur_field)
162 old_field = form->cur_field;
163 fieldp = form->fields[form->cur_field];
190 if (_formi_validate_field(form) != E_OK)
193 if (form->field_term != NULL)
194 form->field_term(form);
197 * if we have a page movement then the form term
200 if ((c <= REQ_LAST_PAGE) && (form->form_term != NULL))
201 form->form_term(form);
207 if (form->page < form->max_page) {
208 old_page = form->page;
209 form->page++;
211 if (_formi_pos_first_field(form) != E_OK) {
212 form->page = old_page;
220 if (form->page > 0) {
221 old_page = form->page;
222 form->page--;
224 if (_formi_pos_first_field(form) != E_OK) {
225 form->page = old_page;
233 old_page = form->page;
234 form->page = 0;
236 if (_formi_pos_first_field(form) != E_OK) {
237 form->page = old_page;
243 old_page = form->page;
244 form->page = form->max_page - 1;
246 if (_formi_pos_first_field(form) != E_OK) {
247 form->page = old_page;
253 status = _formi_pos_new_field(form, _FORMI_FORWARD,
259 status = _formi_pos_new_field(form, _FORMI_BACKWARD,
265 form->cur_field = 0;
270 form->cur_field = form->field_count - 1;
275 status = _formi_pos_new_field(form, _FORMI_FORWARD,
281 status = _formi_pos_new_field(form, _FORMI_BACKWARD,
287 fieldp = TAILQ_FIRST(&form->sorted_fields);
288 form->cur_field = fieldp->index;
293 fieldp = TAILQ_LAST(&form->sorted_fields,
295 form->cur_field = fieldp->index;
308 status = traverse_form_links(form, c);
323 if ((form->opts & O_BS_OVERLOAD) == O_BS_OVERLOAD) {
328 _formi_manipulate_field(form,
343 if ((form->opts & O_NL_OVERLOAD) == O_NL_OVERLOAD) {
348 _formi_manipulate_field(form,
368 if ((form->fields[form->cur_field]->opts & O_EDIT) != O_EDIT)
400 update_field = _formi_manipulate_field(form, c);
404 return _formi_validate_field(form);
410 update_field = _formi_field_choice(form, c);
425 /* call the field and form init functions if required. */
427 if (form->field_init != NULL)
428 form->field_init(form);
431 * if we have a page movement then the form init
434 if ((c <= REQ_LAST_PAGE) && (form->form_init != NULL))
435 form->form_init(form);
444 fieldp = form->fields[form->cur_field];
457 update_page |= _formi_update_field(form, old_field);
460 _formi_draw_page(form);
462 pos_form_cursor(form);
465 wrefresh(form->scrwin);