aboutsummaryrefslogtreecommitdiffstats
path: root/com32/cmenu/libmenu/tui.c
diff options
context:
space:
mode:
Diffstat (limited to 'com32/cmenu/libmenu/tui.c')
-rw-r--r--com32/cmenu/libmenu/tui.c68
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);
}