From 0ffb4f8463e3e06e8d88b7be22f5cb7adb702361 Mon Sep 17 00:00:00 2001 From: pk33 Date: Sun, 3 Nov 2024 22:26:28 +0100 Subject: fonts, text and basic ui for on-screen log --- src/ui33.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/ui33.c (limited to 'src/ui33.c') diff --git a/src/ui33.c b/src/ui33.c new file mode 100644 index 0000000..4139a5e --- /dev/null +++ b/src/ui33.c @@ -0,0 +1,44 @@ +#include "string.h" +#include "stdarg.h" +#include "stdio.h" + +#include "types.h" +#include "strings33.h" +#include "logger.h" + + +#define MB_MAX 6 + + +static char messageBox[MB_MAX][256] = { 0, }; +static Size A = 0; +static Size P = 0; + + +void ui_add_message( String fmt, ... ) +{ + va_list args; + va_start(args, fmt); + + vsnprintf( messageBox[P++], 256, fmt, args ); + if( P == MB_MAX ) P = 0; + if( P == A ) ++A; + if( A == MB_MAX ) A = 0; + + va_end(args); +} + +void ui_draw_messages( void ) +{ + Size start = __display.surface.h - 5 - 8; + Size i = P-1; + + qsuprintf( 300, 40, "A(%d), P(%d)", A, P ); + + do { + if( i < 0 ) i = MB_MAX-1; + qsuprint( messageBox[i], 5, start ); + start -= 18; + } while( (i--) != A ); +} + -- cgit v1.2.3