This commit is contained in:
2024-07-01 14:48:56 -04:00
parent 9d36f07717
commit e553c74ade
6 changed files with 51 additions and 265 deletions

View File

@@ -1,52 +1,51 @@
#pragma once
#include <jlog/ansi_escape_codes.hpp>
#include <jlog/nt_color_codes.hpp>
// Platform independent color code mapping
struct colorcode
{
std::string ansi_code;
WORD nt_code;
};
namespace jlog::color_codes
{
static const colorcode FG_BLACK {ansi_escape_codes::FG_BLACK, nt_color_codes::FG_BLACK };
static const colorcode FG_RED {ansi_escape_codes::FG_RED, nt_color_codes::FG_RED };
static const colorcode FG_GREEN {ansi_escape_codes::FG_GREEN, nt_color_codes::FG_GREEN };
static const colorcode FG_YELLOW {ansi_escape_codes::FG_YELLOW, nt_color_codes::FG_YELLOW };
static const colorcode FG_BLUE {ansi_escape_codes::FG_BLUE, nt_color_codes::FG_BLUE };
static const colorcode FG_MAGENTA {ansi_escape_codes::FG_MAGENTA, nt_color_codes::FG_MAGENTA };
static const colorcode FG_CYAN {ansi_escape_codes::FG_CYAN, nt_color_codes::FG_CYAN };
static const colorcode FG_WHITE {ansi_escape_codes::FG_WHITE, nt_color_codes::FG_WHITE };
static const colorcode FG_DEFAULT {ansi_escape_codes::FG_DEFAULT, nt_color_codes::FG_DEFAULT };
static const colorcode FG_BLACK {ansi_escape_codes::FG_BLACK};
static const colorcode FG_RED {ansi_escape_codes::FG_RED};
static const colorcode FG_GREEN {ansi_escape_codes::FG_GREEN };
static const colorcode FG_YELLOW {ansi_escape_codes::FG_YELLOW};
static const colorcode FG_BLUE {ansi_escape_codes::FG_BLUE};
static const colorcode FG_MAGENTA {ansi_escape_codes::FG_MAGENTA};
static const colorcode FG_CYAN {ansi_escape_codes::FG_CYAN};
static const colorcode FG_WHITE {ansi_escape_codes::FG_WHITE};
static const colorcode FG_DEFAULT {ansi_escape_codes::FG_DEFAULT};
static const colorcode FG_BRIGHT_BLACK {ansi_escape_codes::FG_BRIGHT_BLACK, nt_color_codes::FG_BRIGHT_BLACK};
static const colorcode FG_BRIGHT_RED {ansi_escape_codes::FG_BRIGHT_RED, nt_color_codes::FG_BRIGHT_RED};
static const colorcode FG_BRIGHT_GREEN {ansi_escape_codes::FG_BRIGHT_GREEN, nt_color_codes::FG_BRIGHT_GREEN};
static const colorcode FG_BRIGHT_YELLOW {ansi_escape_codes::FG_BRIGHT_YELLOW, nt_color_codes::FG_BRIGHT_YELLOW};
static const colorcode FG_BRIGHT_BLUE {ansi_escape_codes::FG_BRIGHT_MAGENTA, nt_color_codes::FG_BRIGHT_MAGENTA};
static const colorcode FG_BRIGHT_MAGENTA {ansi_escape_codes::FG_BRIGHT_MAGENTA, nt_color_codes::FG_BRIGHT_MAGENTA};
static const colorcode FG_BRIGHT_CYAN {ansi_escape_codes::FG_BRIGHT_CYAN, nt_color_codes::FG_BRIGHT_CYAN};
static const colorcode FG_BRIGHT_WHITE {ansi_escape_codes::FG_BRIGHT_WHITE, nt_color_codes::FG_BRIGHT_WHITE};
static const colorcode FG_BRIGHT_BLACK {ansi_escape_codes::FG_BRIGHT_BLACK};
static const colorcode FG_BRIGHT_RED {ansi_escape_codes::FG_BRIGHT_RED};
static const colorcode FG_BRIGHT_GREEN {ansi_escape_codes::FG_BRIGHT_GREEN};
static const colorcode FG_BRIGHT_YELLOW {ansi_escape_codes::FG_BRIGHT_YELLOW};
static const colorcode FG_BRIGHT_BLUE {ansi_escape_codes::FG_BRIGHT_MAGENTA};
static const colorcode FG_BRIGHT_MAGENTA {ansi_escape_codes::FG_BRIGHT_MAGENTA};
static const colorcode FG_BRIGHT_CYAN {ansi_escape_codes::FG_BRIGHT_CYAN};
static const colorcode FG_BRIGHT_WHITE {ansi_escape_codes::FG_BRIGHT_WHITE};
static const colorcode BG_BLACK {ansi_escape_codes::BG_BLACK, nt_color_codes::BG_BLACK};
static const colorcode BG_RED {ansi_escape_codes::BG_RED, nt_color_codes::BG_RED};
static const colorcode BG_GREEN {ansi_escape_codes::BG_GREEN, nt_color_codes::BG_GREEN};
static const colorcode BG_YELLOW {ansi_escape_codes::BG_YELLOW, nt_color_codes::BG_YELLOW};
static const colorcode BG_BLUE {ansi_escape_codes::BG_BLUE, nt_color_codes::BG_BLUE};
static const colorcode BG_MAGENTA {ansi_escape_codes::BG_MAGENTA, nt_color_codes::BG_MAGENTA};
static const colorcode BG_CYAN {ansi_escape_codes::BG_CYAN, nt_color_codes::BG_CYAN};
static const colorcode BG_WHITE {ansi_escape_codes::BG_WHITE, nt_color_codes::BG_WHITE};
static const colorcode BG_DEFAULT {ansi_escape_codes::BG_DEFAULT, nt_color_codes::BG_DEFAULT};
static const colorcode BG_BLACK {ansi_escape_codes::BG_BLACK};
static const colorcode BG_RED {ansi_escape_codes::BG_RED};
static const colorcode BG_GREEN {ansi_escape_codes::BG_GREEN};
static const colorcode BG_YELLOW {ansi_escape_codes::BG_YELLOW};
static const colorcode BG_BLUE {ansi_escape_codes::BG_BLUE};
static const colorcode BG_MAGENTA {ansi_escape_codes::BG_MAGENTA};
static const colorcode BG_CYAN {ansi_escape_codes::BG_CYAN};
static const colorcode BG_WHITE {ansi_escape_codes::BG_WHITE};
static const colorcode BG_DEFAULT {ansi_escape_codes::BG_DEFAULT};
static const colorcode BG_BRIGHT_BLACK {ansi_escape_codes::BG_BRIGHT_BLACK, nt_color_codes::BG_BRIGHT_BLACK};
static const colorcode BG_BRIGHT_RED {ansi_escape_codes::BG_BRIGHT_RED, nt_color_codes::BG_BRIGHT_RED};
static const colorcode BG_BRIGHT_GREEN {ansi_escape_codes::BG_BRIGHT_GREEN, nt_color_codes::BG_BRIGHT_GREEN};
static const colorcode BG_BRIGHT_YELLOW {ansi_escape_codes::BG_BRIGHT_YELLOW, nt_color_codes::BG_BRIGHT_YELLOW};
static const colorcode BG_BRIGHT_BLUE {ansi_escape_codes::BG_BRIGHT_BLUE, nt_color_codes::BG_BRIGHT_BLUE};
static const colorcode BG_BRIGHT_MAGENTA {ansi_escape_codes::BG_BRIGHT_MAGENTA, nt_color_codes::BG_BRIGHT_MAGENTA};
static const colorcode BG_BRIGHT_CYAN {ansi_escape_codes::BG_BRIGHT_CYAN, nt_color_codes::BG_BRIGHT_CYAN};
static const colorcode BG_BRIGHT_WHITE {ansi_escape_codes::BG_BRIGHT_WHITE, nt_color_codes::BG_BRIGHT_WHITE};
static const colorcode BG_BRIGHT_BLACK {ansi_escape_codes::BG_BRIGHT_BLACK};
static const colorcode BG_BRIGHT_RED {ansi_escape_codes::BG_BRIGHT_RED};
static const colorcode BG_BRIGHT_GREEN {ansi_escape_codes::BG_BRIGHT_GREEN};
static const colorcode BG_BRIGHT_YELLOW {ansi_escape_codes::BG_BRIGHT_YELLOW};
static const colorcode BG_BRIGHT_BLUE {ansi_escape_codes::BG_BRIGHT_BLUE};
static const colorcode BG_BRIGHT_MAGENTA {ansi_escape_codes::BG_BRIGHT_MAGENTA};
static const colorcode BG_BRIGHT_CYAN {ansi_escape_codes::BG_BRIGHT_CYAN};
static const colorcode BG_BRIGHT_WHITE {ansi_escape_codes::BG_BRIGHT_WHITE};
}

View File

@@ -1,56 +0,0 @@
#pragma once
// NT color codes taken from windows.h / consoleapi2.h
#if WIN32
#define NOMINMAX
#include <Windows.h>
#endif
#ifndef WORD
#define WORD unsigned short
#endif
namespace jlog::nt_color_codes
{
const WORD FG_BLACK = 0x0000;
const WORD FG_BLUE = 0x0001;
const WORD FG_GREEN = 0x0002;
const WORD FG_RED = 0x0004;
const WORD FG_YELLOW = FG_RED | FG_GREEN;
const WORD FG_MAGENTA = FG_RED | FG_BLUE;
const WORD FG_CYAN = FG_GREEN | FG_BLUE;
const WORD FG_WHITE = FG_RED | FG_GREEN | FG_BLUE;
const WORD FG_DEFAULT = FG_WHITE;
const WORD FG_BRIGHT_BLACK = 0 | 0x0008;
const WORD FG_BRIGHT_RED = FG_RED | 0x0008;
const WORD FG_BRIGHT_GREEN = FG_GREEN | 0x0008;
const WORD FG_BRIGHT_YELLOW = FG_RED | FG_GREEN | 0x0008;
const WORD FG_BRIGHT_BLUE = FG_BLUE | 0x0008;
const WORD FG_BRIGHT_MAGENTA = FG_RED | FG_BLUE | 0x0008;
const WORD FG_BRIGHT_CYAN = FG_GREEN | FG_BLUE | 0x0008;
const WORD FG_BRIGHT_WHITE = FG_RED | FG_GREEN | FG_BLUE | 0x0008;
const WORD BG_BLACK = 0x0000;
const WORD BG_BLUE = 0x0010;
const WORD BG_GREEN = 0x0020;
const WORD BG_RED = 0x0040;
const WORD BG_YELLOW = BG_RED | BG_GREEN;
const WORD BG_MAGENTA = BG_RED | BG_BLUE;
const WORD BG_CYAN = BG_GREEN | BG_BLUE;
const WORD BG_WHITE = BG_RED | BG_GREEN | BG_BLUE;
const WORD BG_BRIGHT_BLACK = 0 | 0x0080;
const WORD BG_BRIGHT_RED = BG_RED | 0x0080;
const WORD BG_BRIGHT_GREEN = BG_GREEN | 0x0080;
const WORD BG_BRIGHT_YELLOW = BG_YELLOW | 0x0080;
const WORD BG_BRIGHT_BLUE = BG_BLUE | 0x0080;
const WORD BG_BRIGHT_MAGENTA = BG_RED | BG_BLUE | 0x0080;
const WORD BG_BRIGHT_CYAN = BG_GREEN | BG_BLUE | 0x0080;
const WORD BG_BRIGHT_WHITE = BG_RED | BG_GREEN | BG_BLUE | 0x0080;
const WORD BG_DEFAULT = BG_WHITE;
}