int numComps;
int currComp;
int fixedHeight;
+ int flags;
int vertOffset;
- newtComponent vertBar;
+ newtComponent vertBar, exitComp;
+ char * help;
int numRows;
};
return 1;
}
-newtComponent newtForm(newtComponent vertScrollbar) {
+newtComponent newtForm(newtComponent vertBar, char * help, int flags) {
newtComponent co;
struct form * form;
co->takesFocus = 1;
co->ops = &formOps;
+ form->help = help;
+ form->flags = flags;
form->numCompsAlloced = 5;
form->numComps = 0;
form->currComp = -1;
form->numRows = 0;
form->elements = malloc(sizeof(*(form->elements)) * form->numCompsAlloced);
- if (vertScrollbar)
- form->vertBar = vertScrollbar;
+ if (vertBar)
+ form->vertBar = vertBar;
else
form->vertBar = NULL;
er.result = ER_SWALLOWED;
dir = -1;
wrap = 1;
+ } else if (ev.u.key == NEWT_KEY_F12 &&
+ !(form->flags & NEWT_FORM_NOF12)) {
+ er.result = ER_EXITFORM;
+ form->exitComp = co;
}
}
dir = 1;
break;
+ case ER_EXITFORM:
+ form->exitComp = subco;
+ break;
+
default:
break;
}
case NEWT_KEY_DOWN:
case NEWT_KEY_RIGHT:
- case NEWT_KEY_ENTER:
er.result = ER_SWALLOWED;
dir = 1;
break;
newtRefresh();
- return form->elements[form->currComp].co;
-
+ return form->exitComp;
}
static struct eventResult sendEvent(newtComponent co, struct event ev) {