|
|
1.1 ! root 1: /* ! 2: * Output edit box and edit input field ! 3: * ! 4: * Copyright (c) 1990-93 by Udo Munk ! 5: */ ! 6: ! 7: #ifdef AIX ! 8: #define NLS ! 9: #endif ! 10: ! 11: #include <curses.h> ! 12: #include <string.h> ! 13: ! 14: extern WINDOW *open_window(); ! 15: extern int close_window(); ! 16: extern int edit_field(); ! 17: ! 18: edit_box(t, s, n, e, fn) ! 19: char *t[], *s; ! 20: int n, e; ! 21: int (*fn) (); ! 22: { ! 23: register int i, j; ! 24: int bw, bh, nt; ! 25: int ret; ! 26: WINDOW *w; ! 27: ! 28: i = bh = 0; ! 29: bw = n + 2; ! 30: while (t[i] != NULL) ! 31: if ((j = strlen(t[i++]) + 2) > bw) ! 32: bw = j; /* with of the box */ ! 33: bh = (i == 0) ? 3 : i + 4; ! 34: nt = i; ! 35: if ((w = open_window(bh, bw, (LINES-bh)/2, (COLS-bw)/2)) == (WINDOW *) 0) ! 36: nomem(); ! 37: wattron(w, A_REVERSE); ! 38: for (i = 0; i < bh; i++)/* output inverted box */ ! 39: for (j = 0; j < bw; j++) ! 40: mvwaddch(w, i, j, ' '); ! 41: for (i = 0; i < nt; i++) ! 42: mvwaddstr(w, i+1, 1, t[i]); ! 43: wattroff(w, A_REVERSE); ! 44: ret = edit_field(w, ((nt>0) ? nt+2 : nt+1), (bw-n)/2, s, n, e, fn); ! 45: close_window(w); ! 46: return(ret); ! 47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.