diff options
Diffstat (limited to 'com32/cmenu/libmenu/tui.c')
-rw-r--r-- | com32/cmenu/libmenu/tui.c | 68 |
1 files changed, 27 insertions, 41 deletions
diff --git a/com32/cmenu/libmenu/tui.c b/com32/cmenu/libmenu/tui.c index a8ca1cd5..e256502a 100644 --- a/com32/cmenu/libmenu/tui.c +++ b/com32/cmenu/libmenu/tui.c @@ -20,7 +20,6 @@ com32sys_t inreg, outreg; // Global register sets for use char bkspstr[] = " \b$"; char eolstr[] = "\n$"; -#define GETSTRATTR 0x07 // Reads a line of input from stdin. Replace CR with NUL byte // password <> 0 implies not echoed on screen @@ -34,14 +33,12 @@ void getuserinput(char *stra, unsigned int size, unsigned int password, char *p, *q; // p = current char of string, q = tmp char *last; // The current last char of string char *str; // pointer to string which is going to be allocated - char page; char row, col; char start, end; // Cursor shape char fudge; // How many chars should be removed from output char insmode; // Are we in insert or overwrite - page = getdisppage(); - getpos(&row, &col, page); // Get current position + getpos(&row, &col, 0); // Get current position getcursorshape(&start, &end); insmode = 1; @@ -68,7 +65,7 @@ void getuserinput(char *stra, unsigned int size, unsigned int password, // col is the corresponding column on the screen if (password == 0) // Not a password, print initial value { - gotoxy(row, col, page); + gotoxy(row, col); csprint(str, GETSTRATTR); } while (1) { // Do forever @@ -195,11 +192,11 @@ void getuserinput(char *stra, unsigned int size, unsigned int password, } // Now the string has been modified, print it if (password == 0) { - gotoxy(row, col, page); + gotoxy(row, col); csprint(str, GETSTRATTR); if (fudge > 0) - cprint(' ', GETSTRATTR, fudge, page); - gotoxy(row, col + (p - str), page); + cprint(' ', GETSTRATTR, fudge); + gotoxy(row, col + (p - str)); } } *p = '\0'; @@ -212,16 +209,6 @@ void getuserinput(char *stra, unsigned int size, unsigned int password, free(str); } -void clearwindow(char top, char left, char bot, char right, char page, - char fillchar, char fillattr) -{ - char x; - for (x = top; x < bot + 1; x++) { - gotoxy(x, left, page); - cprint(fillchar, fillattr, right - left + 1, page); - } -} - //////////////////////////////Box Stuff // This order of numbers must match @@ -270,36 +257,35 @@ unsigned char *getboxchars(boxtype bt) } // Draw box and lines -void drawbox(char top, char left, char bot, char right, - char page, char attr, boxtype bt) +void drawbox(const char top, const char left, const char bot, + const char right, const char attr) { unsigned char x; putchar(SO); // Top border - gotoxy(top, left, page); - cprint(TOP_LEFT_CORNER_BORDER, attr, 1, page); - cprint(TOP_BORDER, attr, right - left - 1, page); - cprint(TOP_RIGHT_CORNER_BORDER, attr, 1, page); + gotoxy(top, left); + putch(TOP_LEFT_CORNER_BORDER, attr); + cprint(TOP_BORDER, attr, right - left - 1); + putch(TOP_RIGHT_CORNER_BORDER, attr); // Bottom border - gotoxy(bot, left, page); - cprint(BOTTOM_LEFT_CORNER_BORDER, attr, 1, page); - cprint(BOTTOM_BORDER, attr, right - left - 1, page); - cprint(BOTTOM_RIGHT_CORNER_BORDER, attr, 1, page); + gotoxy(bot, left); + putch(BOTTOM_LEFT_CORNER_BORDER, attr); + cprint(BOTTOM_BORDER, attr, right - left - 1); + putch(BOTTOM_RIGHT_CORNER_BORDER, attr); // Left & right borders for (x = top + 1; x < bot; x++) { - gotoxy(x, left, page); - cprint(LEFT_BORDER, attr, 1, page); - gotoxy(x, right, page); - cprint(RIGHT_BORDER, attr, 1, page); + gotoxy(x, left); + putch(LEFT_BORDER, attr); + gotoxy(x, right); + putch(RIGHT_BORDER, attr); } putchar(SI); } -void drawhorizline(char top, char left, char right, char page, char attr, - boxtype bt, char dumb) +void drawhorizline(const char top, const char left, const char right, + const char attr, char dumb) { unsigned char start, end; - unsigned char *box_chars = getboxchars(bt); if (dumb == 0) { start = left + 1; end = right - 1; @@ -307,14 +293,14 @@ void drawhorizline(char top, char left, char right, char page, char attr, start = left; end = right; } - gotoxy(top, start, page); + gotoxy(top, start); putchar(SO); - cprint(MIDDLE_BORDER, attr, end - start + 1, page); + cprint(MIDDLE_BORDER, attr, end - start + 1); if (dumb == 0) { - gotoxy(top, left, page); - cprint(MIDDLE_BORDER, attr, 1, page); - gotoxy(top, right, page); - cprint(MIDDLE_BORDER, attr, 1, page); + gotoxy(top, left); + putch(MIDDLE_BORDER, attr); + gotoxy(top, right); + putch(MIDDLE_BORDER, attr); } putchar(SI); } |