diff options
author | Joursoir <chat@joursoir.net> | 2021-12-01 19:31:29 +0300 |
---|---|---|
committer | Joursoir <chat@joursoir.net> | 2021-12-01 19:31:29 +0300 |
commit | c106872dd21b8b229941a942f6a5e2d4a5b7b575 (patch) | |
tree | c3d6a116dc52f4764367441ddf242254fabcbd4d /Library/UefiShellUfmCommandLib/tbi | |
parent | 6a7926acb843acfe2949df68d9fe9f2ee8a73516 (diff) | |
download | ufm-c106872dd21b8b229941a942f6a5e2d4a5b7b575.tar.gz ufm-c106872dd21b8b229941a942f6a5e2d4a5b7b575.tar.bz2 ufm-c106872dd21b8b229941a942f6a5e2d4a5b7b575.zip |
tbi/win: support echoing input chars
Diffstat (limited to 'Library/UefiShellUfmCommandLib/tbi')
-rw-r--r-- | Library/UefiShellUfmCommandLib/tbi/win.c | 8 | ||||
-rw-r--r-- | Library/UefiShellUfmCommandLib/tbi/win.h | 12 |
2 files changed, 20 insertions, 0 deletions
diff --git a/Library/UefiShellUfmCommandLib/tbi/win.c b/Library/UefiShellUfmCommandLib/tbi/win.c index 1496808..55171da 100644 --- a/Library/UefiShellUfmCommandLib/tbi/win.c +++ b/Library/UefiShellUfmCommandLib/tbi/win.c @@ -58,6 +58,7 @@ struct window *newwin(struct screen *s, win->width = ncols; win->height = nlines; win->cur_attr = s->attr; + win->echo = FALSE; for(y = 0; y < nlines; y++) { win->text[y] = AllocatePool((ncols + 1) * sizeof(CHAR16)); @@ -114,6 +115,13 @@ VOID wattroff(struct window *w) w->cur_attr = w->scr->attr; } +VOID echo(struct window *w, BOOLEAN state) +{ + ASSERT(w != NULL); + + w->echo = state; +} + BOOLEAN wmove(struct window *w, INT32 x, INT32 y) { ASSERT(w != NULL); diff --git a/Library/UefiShellUfmCommandLib/tbi/win.h b/Library/UefiShellUfmCommandLib/tbi/win.h index 76be2d8..02822d4 100644 --- a/Library/UefiShellUfmCommandLib/tbi/win.h +++ b/Library/UefiShellUfmCommandLib/tbi/win.h @@ -29,6 +29,7 @@ struct window { INT32 **attr; INT32 cur_attr; + BOOLEAN echo; }; /* @@ -75,6 +76,17 @@ VOID wattrset(struct window *w, INT32 attr); VOID wattroff(struct window *w); /* + * Changes the echo state. Echoing is disabled by default. + * + * w: the window on which to operate + * state: TRUE if the echo should be activated. FALSE if the + * echo should be disabled + * + * return: VOID +*/ +VOID echo(struct window *w, BOOLEAN state); + +/* * Moves cursor position to specified coordinates * * w: the window on which to operate |