From db8722e2c2ff3ec1e38f6c6257f122daead67496 Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Thu, 5 Apr 1990 17:09:38 +0000 Subject: [PATCH] ING_DB --- WEGA/contrib/ingres/dbs/src/form/form.c | 90 +++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 WEGA/contrib/ingres/dbs/src/form/form.c diff --git a/WEGA/contrib/ingres/dbs/src/form/form.c b/WEGA/contrib/ingres/dbs/src/form/form.c new file mode 100644 index 0000000..8b2e518 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/form/form.c @@ -0,0 +1,90 @@ +# include "form.h" + +MMform(frame) +register struct MM_form *frame; +{ + register struct MM_form *form; + register struct MM_form *f; + register int ch; + register int input; + register int line; + register int col; + + MMframe(form = frame, 1, 1); + for ( ; ; ) + { + input = form->f_mode & F_INPUT; + if (!(form->f_mode & (F_INPUT | F_MENUE))) + { + form = form->f_next; + continue; + } + MM_repos(); + MM_pts(MM_cs[CS_SE]); + MM_abs_pos(form->f_line, form->f_col); + MM_pts(MM_cs[CS_SO]); + if (input) + MM_abs_pos(form->f_line, form->f_col + 1); + else + MM_repos(); + switch (ch = MM_getchar()) + { + case C_QUIT: + MMclr_screen(2, 1); + return (1); + + case C_MENUE: + if (input) + continue; + + if (f = MM_need(frame)) + { + form = f; + continue; + } + + f = form; + do + { + f->f_mode &= ~F_FILLED; + } + while ((f = f->f_next) != form); + + if (form->f_func) + (*form->f_func)(frame); + continue; + + case C_FIELD: + if (input) + goto edit; + while (form = form->f_next) + if (form->f_mode & F_START) + break; + continue; + + case C_NEXT: + MMline = form->f_line; + MMcol = form->f_col; + form = form->f_next; + continue; + + case C_PREV: + MMline = form->f_line; + MMcol = form->f_col; + while (form = form->f_prev) + if (form->f_mode & (F_INPUT | F_MENUE)) + break; + continue; + + default: + if (input) + { +edit: + MM_backup(ch); + MM_edit(form); + } + else + MMerror(" UNGUELTIGES ZEICHEN "); + } + } +}