Fix some bugs with forms that have only text fields.
Add an extern form to forms.h for apps to pick up.
This commit is contained in:
parent
c4115cc446
commit
1ab772898b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=4432
@ -239,7 +239,7 @@ find_link(int id)
|
||||
return(0);
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
edit_form(struct form *form)
|
||||
{
|
||||
WINDOW *window;
|
||||
@ -247,6 +247,10 @@ edit_form(struct form *form)
|
||||
int key;
|
||||
|
||||
window = newwin(form->height, form->width, form->y, form->x);
|
||||
if (!window) {
|
||||
fprintf(stderr, "Failed to open window\n");
|
||||
return(-1);
|
||||
}
|
||||
keypad(window, TRUE);
|
||||
|
||||
refresh_form(window, form);
|
||||
@ -254,8 +258,11 @@ edit_form(struct form *form)
|
||||
cur_field = form->fields;
|
||||
|
||||
do {
|
||||
/* Just skip over text fields */
|
||||
/* Skip over any preceeding text fields */
|
||||
if (cur_field->type == FORM_FTYPE_TEXT) {
|
||||
if (!cur_field->link)
|
||||
/* No editable fields, reached end of text fields */
|
||||
return(0);
|
||||
cur_field = cur_field->link;
|
||||
continue;
|
||||
}
|
||||
@ -297,6 +304,7 @@ edit_form(struct form *form)
|
||||
} else
|
||||
beep();
|
||||
} while (key != keymap[FORM_EXIT]);
|
||||
return (0);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#define MAX_FIELD_SIZE 80
|
||||
|
||||
|
||||
struct form {
|
||||
int x;
|
||||
int y;
|
||||
@ -32,6 +33,8 @@ struct form {
|
||||
struct field *fields;
|
||||
};
|
||||
|
||||
extern struct form *form;
|
||||
|
||||
struct input_field {
|
||||
int y_prompt;
|
||||
int x_prompt;
|
||||
@ -76,6 +79,6 @@ extern unsigned int keymap[FORM_NO_KEYS];
|
||||
|
||||
int init_forms();
|
||||
int edit_line(WINDOW *window, struct field *);
|
||||
void edit_form(struct form *);
|
||||
int edit_form(struct form *);
|
||||
void refresh_form(WINDOW *, struct form *);
|
||||
struct field *find_link(int);
|
||||
|
Loading…
Reference in New Issue
Block a user