65 lines
1.5 KiB
C
65 lines
1.5 KiB
C
#ifndef TERM_COLOUR_H
|
|
#define TERM_COLOUR_H
|
|
|
|
#include "aliases.h"
|
|
#include "misc_utils.h"
|
|
#include "platform.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
typedef enum {
|
|
WAPP_TERM_COLOUR_FG_BLACK,
|
|
WAPP_TERM_COLOUR_FG_RED,
|
|
WAPP_TERM_COLOUR_FG_GREEN,
|
|
WAPP_TERM_COLOUR_FG_BLUE,
|
|
WAPP_TERM_COLOUR_FG_CYAN,
|
|
WAPP_TERM_COLOUR_FG_MAGENTA,
|
|
WAPP_TERM_COLOUR_FG_YELLOW,
|
|
WAPP_TERM_COLOUR_FG_WHITE,
|
|
WAPP_TERM_COLOUR_FG_BR_BLACK,
|
|
WAPP_TERM_COLOUR_FG_BR_RED,
|
|
WAPP_TERM_COLOUR_FG_BR_GREEN,
|
|
WAPP_TERM_COLOUR_FG_BR_BLUE,
|
|
WAPP_TERM_COLOUR_FG_BR_CYAN,
|
|
WAPP_TERM_COLOUR_FG_BR_MAGENTA,
|
|
WAPP_TERM_COLOUR_FG_BR_YELLOW,
|
|
WAPP_TERM_COLOUR_FG_BR_WHITE,
|
|
|
|
COUNT_TERM_COLOUR,
|
|
} TerminalColour;
|
|
|
|
typedef struct terminal_colourist TerminalColourist;
|
|
|
|
// clang-format off
|
|
#ifdef WAPP_PLATFORM_WINDOWS
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#include <Windows.h>
|
|
#include <WinCon.h>
|
|
|
|
struct terminal_colourist {
|
|
HANDLE handle;
|
|
WORD default_colour;
|
|
WORD current_colour;
|
|
wapp_misc_utils_padding_size(sizeof(HANDLE) + sizeof(WORD) + sizeof(WORD));
|
|
};
|
|
#else
|
|
struct terminal_colourist {
|
|
const char *default_colour;
|
|
const char *current_colour;
|
|
};
|
|
#endif // WAPP_PLATFORM_WINDOWS
|
|
// clang-format on
|
|
|
|
TerminalColourist wapp_shell_termcolour_get_colourist(void);
|
|
void wapp_shell_termcolour_print_text(TerminalColourist *colourist,
|
|
const char *text, TerminalColour colour);
|
|
void wapp_shell_termcolour_clear_colour(TerminalColourist *colourist);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
#endif // !TERM_COLOUR_H
|