diff options
| author | Joursoir <chat@joursoir.net> | 2021-11-02 11:42:36 +0300 | 
|---|---|---|
| committer | Joursoir <chat@joursoir.net> | 2021-11-02 11:43:37 +0300 | 
| commit | a5f15c8e9db0dc8e6a782392b4ed91ccee3eff98 (patch) | |
| tree | 06f2f414cf723a4c47baa9966dd4d5b76690613a /lib | |
| parent | 896e763d38bb91d3f3c8c5ebc26f431c58933bbc (diff) | |
| download | ufm-a5f15c8e9db0dc8e6a782392b4ed91ccee3eff98.tar.gz ufm-a5f15c8e9db0dc8e6a782392b4ed91ccee3eff98.tar.bz2 ufm-a5f15c8e9db0dc8e6a782392b4ed91ccee3eff98.zip  | |
tbi/win: make front-end routines wprintf(), mvwprintf()
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/tbi/win.c | 27 | ||||
| -rw-r--r-- | lib/tbi/win.h | 28 | 
2 files changed, 55 insertions, 0 deletions
diff --git a/lib/tbi/win.c b/lib/tbi/win.c index f3f25a3..172f9a9 100644 --- a/lib/tbi/win.c +++ b/lib/tbi/win.c @@ -188,6 +188,33 @@ BOOLEAN mvwvline(struct window *w, INT32 x, INT32 y, CHAR16 ch, INT32 n)  	return TRUE;  } +UINTN EFIAPI wprintf(struct window *w, CONST CHAR16 *fmt, ...) +{ +	VA_LIST arg; +	UINTN retval; + +	VA_START(arg, fmt); +	retval = wvprintf(w, fmt, arg); +	VA_END(arg); +	return retval; +} + +UINTN EFIAPI mvwprintf(struct window *w, INT32 x, INT32 y, CONST CHAR16 *fmt, ...) +{ +	VA_LIST arg; +	UINTN retval; +	BOOLEAN moved; + +	moved = wmove(w, x, y); +	if(moved == FALSE) +		return 0; + +	VA_START(arg, fmt); +	retval = wvprintf(w, fmt, arg); +	VA_END(arg); +	return retval; +} +  UINTN EFIAPI wvprintf(struct window *w, CONST CHAR16 *fmt, VA_LIST args)  {  	INT32 x, y; diff --git a/lib/tbi/win.h b/lib/tbi/win.h index 18f0153..3c42538 100644 --- a/lib/tbi/win.h +++ b/lib/tbi/win.h @@ -134,6 +134,34 @@ BOOLEAN mvwhline(struct window *w, INT32 x, INT32 y, CHAR16 ch, INT32 n);  BOOLEAN mvwvline(struct window *w, INT32 x, INT32 y, CHAR16 ch, INT32 n);  /* + * Prints formatted output on the cursor coordinates + * + * w: the window on which to operate + * fmt: a null-terminated unicode format string + * ...: variable arguments list whose contents are accessed based on the +        fmt string specified by FormatString + * + * return: the number of unicode chars in the produced output buffer +           not including the null-terminator +*/ +UINTN EFIAPI wprintf(struct window *w, CONST CHAR16 *fmt, ...); + +/* + * Moves to specified coordinates, prints formatted output + * + * w: the window on which to operate + * x: the X(column) coordinate to move + * y: the Y(row) coordinate to move + * fmt: a null-terminated unicode format string + * ...: variable arguments list whose contents are accessed based on the +        fmt string specified by FormatString + * + * return: the number of unicode chars in the produced output buffer +           not including the null-terminator +*/ +UINTN EFIAPI mvwprintf(struct window *w, INT32 x, INT32 y, CONST CHAR16 *fmt, ...); + +/*   * Prints output based on a null-terminated unicode format string     and a arguments list   *  | 
