summaryrefslogtreecommitdiff
path: root/clients/bokftui.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-19 22:49:06 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-19 22:49:06 +0200
commit730d7159e3b9b3adfba2c3779893fdb4e107647a (patch)
tree04a08f99adf7b5519d5bf65111453e4124e69720 /clients/bokftui.c
parente352cd34d30acc1955c62027c779ac98004ac201 (diff)
downloadbokf-730d7159e3b9b3adfba2c3779893fdb4e107647a.tar.gz
bokf-730d7159e3b9b3adfba2c3779893fdb4e107647a.zip
tui: form fields on the row-table screen; home/end/pgup/pgdn navigationv0.1.39
Diffstat (limited to 'clients/bokftui.c')
-rw-r--r--clients/bokftui.c91
1 files changed, 27 insertions, 64 deletions
diff --git a/clients/bokftui.c b/clients/bokftui.c
index af6e284..e94faeb 100644
--- a/clients/bokftui.c
+++ b/clients/bokftui.c
@@ -1427,6 +1427,7 @@ static void vform_template(struct vform *vf)
free(tser);
vf->rt.row = 0;
vf->rt.col = 0;
+ vf->rt.focus = -1;
vf->rt.fresh = 1;
vf->rt.pos = (size_t)-1;
tui_rt_normalize(&vf->rt);
@@ -1579,42 +1580,22 @@ static int64_t vouchers_new(struct app *a)
ff[2].value = vf.desc;
ff[2].cap = sizeof vf.desc;
ff[2].kind = TUI_F_TEXT;
- const char *hint = "F4 = mall ^F = bifoga fil Tab = byta fält F5 ="
- " validera ^X = rensa rad ^Enter = bokför Esc ="
- " avbryt";
- int stage = 0;
+ tui_rt_set_fields(&vf.rt, ff, 3);
+ const char *hint = "Enter = ändra fält Tab = byta fält F4 = mall"
+ " ^F = bifoga fil F5 = validera ^X = rensa rad"
+ " ^Enter = bokför Esc = avbryt";
for (;;) {
- if (stage == 0) {
- int r = tui_form_run_hook("Nytt verifikat", ff, 3, 1, vform_key,
- &vf);
- if (r == TUI_FORM_BACK)
- return 0;
- if (r == TUI_FORM_REFRESH) {
- vform_post(&vf, 1);
- continue;
- }
- if (r == TUI_FORM_SUBMIT) {
- int64_t id = vform_post(&vf, 0);
- if (id > 0)
- return id;
- continue;
- }
- stage = 1;
- } else {
- int rr = tui_rt_run("Nytt verifikat", &vf.rt, hint);
- if (rr == -1) {
- stage = 0;
- continue;
- }
- if (rr == -2) {
- vform_post(&vf, 1);
- continue;
- }
- if (rr == -3) {
- int64_t id = vform_post(&vf, 0);
- if (id > 0)
- return id;
- }
+ int rr = tui_rt_run("Nytt verifikat", &vf.rt, hint);
+ if (rr == -1)
+ return 0;
+ if (rr == -2) {
+ vform_post(&vf, 1);
+ continue;
+ }
+ if (rr == -3) {
+ int64_t id = vform_post(&vf, 0);
+ if (id > 0)
+ return id;
}
}
}
@@ -3601,38 +3582,20 @@ static int template_form(struct app *a, const char *load_name)
ff[2].value = tf.desc;
ff[2].cap = sizeof tf.desc;
ff[2].kind = TUI_F_TEXT;
+ tui_rt_set_fields(&tf.rt, ff, 3);
const char *title = load_name ? "Redigera mall" : "Ny mall";
- const char *hint = "Tab = byta fält F5 = validera ^X = rensa rad"
- " ^Enter = spara Esc = avbryt";
- int stage = 0;
+ const char *hint = "Enter = ändra fält Tab = byta fält F5 = validera"
+ " ^X = rensa rad ^Enter = spara Esc = avbryt";
for (;;) {
- if (stage == 0) {
- int r = tui_form_run(title, ff, 3, 1);
- if (r == TUI_FORM_BACK)
- return 0;
- if (r == TUI_FORM_REFRESH) {
- tpl_save(&tf, 1);
- continue;
- }
- if (r == TUI_FORM_SUBMIT) {
- if (tpl_save(&tf, 0))
- return 1;
- continue;
- }
- stage = 1;
- } else {
- int rr = tui_rt_run(title, &tf.rt, hint);
- if (rr == -1) {
- stage = 0;
- continue;
- }
- if (rr == -2) {
- tpl_save(&tf, 1);
- continue;
- }
- if (rr == -3 && tpl_save(&tf, 0))
- return 1;
+ int rr = tui_rt_run(title, &tf.rt, hint);
+ if (rr == -1)
+ return 0;
+ if (rr == -2) {
+ tpl_save(&tf, 1);
+ continue;
}
+ if (rr == -3 && tpl_save(&tf, 0))
+ return 1;
}
}