newtCallback helpCb;
};
-static void gotoComponent(struct form * form, int newComp);
+static void gotoComponent(newtComponent co, int newComp);
static struct eventResult formEvent(newtComponent co, struct event ev);
static struct eventResult sendEvent(newtComponent comp, struct event ev);
static void formPlace(newtComponent co, int left, int top);
co->takesFocus = 0; /* we may have 0 components */
co->ops = &formOps;
+ co->callback = NULL;
co->destroyCallback = NULL;
form->help = help;
new = i;
if (co->isMapped && !componentFits(co, new)) {
- gotoComponent(form, -1);
+ gotoComponent(co, -1);
formScroll(co, form->elements[new].co->top - co->top - 1);
}
- gotoComponent(form, new);
+ gotoComponent(co, new);
}
void newtFormSetTimer(newtComponent co, int millisecs) {
(el->co->left + el->co->width > ev.u.mouse.x)) {
found = 1;
if (el->co->takesFocus) {
- gotoComponent(form, i);
+ gotoComponent(co, i);
subco = form->elements[form->currComp].co;
}
}
if (!componentFits(co, new)) {
int vertDelta;
- gotoComponent(form, -1);
+ gotoComponent(co, -1);
if (dir < 0) {
/* make the new component the first one */
newtDrawForm(co);
}
- gotoComponent(form, new);
+ gotoComponent(co, new);
er.result = ER_SWALLOWED;
}
if (form->currComp == -1) {
if (form->numComps)
- gotoComponent(form, 0);
+ gotoComponent(co, 0);
} else
- gotoComponent(form, form->currComp);
+ gotoComponent(co, form->currComp);
while (!done) {
newtRefresh();
return er;
}
-static void gotoComponent(struct form * form, int newComp) {
+static void gotoComponent(newtComponent co, int newComp) {
+ struct form * form = co->data;
struct event ev;
if (form->currComp != -1) {
ev.when = EV_NORMAL;
sendEvent(form->elements[form->currComp].co, ev);
}
+
+ if (co->callback)
+ co->callback(co, co->callbackData);
}
void newtComponentAddCallback(newtComponent co, newtCallback f, void * data) {