From 55a781a696524d9a00ad162d00555db6df76e32c Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Fri, 16 Jun 2023 15:02:10 -0700 Subject: more work on console functions --- src/console.h | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) (limited to 'src/console.h') diff --git a/src/console.h b/src/console.h index 6a4d27f..88eb8a4 100644 --- a/src/console.h +++ b/src/console.h @@ -1,17 +1,39 @@ -#ifndef +#ifndef CONSOLE #define CONSOLE +#define BLK "\033[0;30m" #define RED "\033[0:31m" #define GRN "\033[0:32m" #define WHT "\033[0:37m" -struct ConsoleLine { - char* color; +#define BLKB "\033[40m" +#define REDB "\033[41m" +#define GRNB "\033[42m" +#define WHTB "\033[47m" +#define RESET "\033[0m" +typedef enum ConsoleColors { + CBLACK, + CRED, + CGREEN, + CWHITE +} consoleColor_t; +typedef struct ConsoleLine { + consoleColor_t color; char* content; - /* pointer to a function accepting a void pointer */ - void (*onInteract)(void*); + /* set to NULL to use oninteract */ + char* expansionContent; + void (*onInteract)(void); + char isExpanded; } consoleLine_t; -consoleLine_t init_consoleline(char* color, char* content); -void clear_screen(); -void draw_screen(); +consoleLine_t init_simple_consoleline(consoleColor_t color, char* content); +consoleLine_t init_expandable_consoleline(consoleColor_t color, char* content, char* expansionContent); +consoleLine_t init_interactable_consoleline(consoleColor_t color, char* content, void (*onInteract)(void)); +typedef struct ConsoleLineSet { + consoleLine_t* lines; + int count; +} consoleLineSet_t; +consoleLineSet_t init_consolelineset(consoleLine_t* lines, int count); +void set_lines(consoleLineSet_t lines); +void clear_screen(void); +void draw_screen(void); void move_selection(int amount); -void interact_selected(); +void interact_selected(void); #endif -- cgit v1.3.1