/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: ColorConvert.hpp Date: 2022-5-2 Author: Reece ***/ #pragma once namespace Aurora::Console { static const AuArray(EAnsiColor::eEnumCount)> kAnsiColorForegroundToVirtualEscape = { "\033[0;31m", "\033[1;31m", "\033[0;32m", "\033[1;32m", "\033[0;33m", "\033[1;33m", "\033[0;34m", "\033[1;34m", "\033[0;35m", "\033[1;35m", "\033[0;36m", "\033[1;36m", "\033[0;37m", "\033[0;30m", "\033[0;39m" }; static const AuArray(EAnsiColor::eEnumCount)> kAnsiColorBackgroundToVirtualEscape { "\033[0;41m", "\033[1;41m", "\033[0;42m", "\033[1;42m", "\033[0;43m", "\033[1;43m", "\033[0;44m", "\033[1;44m", "\033[0;45m", "\033[1;45m", "\033[0;46m", "\033[1;46m", "\033[0;47m", "\033[0;40m", "\033[0;49m" }; #if defined(AURORA_IS_MODERNNT_DERIVED) #define FOREGROUND_WHITE (FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN) #define FOREGROUND_YELLOW (FOREGROUND_RED | FOREGROUND_GREEN) #define FOREGROUND_CYAN (FOREGROUND_BLUE | FOREGROUND_GREEN) #define FOREGROUND_MAGENTA (FOREGROUND_RED | FOREGROUND_BLUE) #define FOREGROUND_BLACK 0 #define FOREGROUND_INTENSE_RED (FOREGROUND_RED | FOREGROUND_INTENSITY) #define FOREGROUND_INTENSE_GREEN (FOREGROUND_GREEN | FOREGROUND_INTENSITY) #define FOREGROUND_INTENSE_BLUE (FOREGROUND_BLUE | FOREGROUND_INTENSITY) #define FOREGROUND_INTENSE_WHITE (FOREGROUND_WHITE | FOREGROUND_INTENSITY) #define FOREGROUND_INTENSE_YELLOW (FOREGROUND_YELLOW | FOREGROUND_INTENSITY) #define FOREGROUND_INTENSE_CYAN (FOREGROUND_CYAN | FOREGROUND_INTENSITY) #define FOREGROUND_INTENSE_MAGENTA (FOREGROUND_MAGENTA | FOREGROUND_INTENSITY) #define BACKGROUND_WHITE (BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_GREEN) #define BACKGROUND_YELLOW (BACKGROUND_RED | BACKGROUND_GREEN) #define BACKGROUND_CYAN (BACKGROUND_BLUE | BACKGROUND_GREEN) #define BACKGROUND_MAGENTA (BACKGROUND_RED | BACKGROUND_BLUE) #define BACKGROUND_BLACK 0 #define BACKGROUND_INTENSE_RED (BACKGROUND_RED | BACKGROUND_INTENSITY) #define BACKGROUND_INTENSE_GREEN (BACKGROUND_GREEN | BACKGROUND_INTENSITY) #define BACKGROUND_INTENSE_BLUE (BACKGROUND_BLUE | BACKGROUND_INTENSITY) #define BACKGROUND_INTENSE_WHITE (BACKGROUND_WHITE | BACKGROUND_INTENSITY) #define BACKGROUND_INTENSE_YELLOW (BACKGROUND_YELLOW | BACKGROUND_INTENSITY) #define BACKGROUND_INTENSE_CYAN (BACKGROUND_CYAN | BACKGROUND_INTENSITY) #define BACKGROUND_INTENSE_MAGENTA (BACKGROUND_MAGENTA | BACKGROUND_INTENSITY) static const AuArray(EAnsiColor::eEnumCount)> kAnsiColorForegroundToNT { FOREGROUND_RED, FOREGROUND_INTENSE_RED, FOREGROUND_GREEN, FOREGROUND_INTENSE_GREEN, FOREGROUND_YELLOW, FOREGROUND_INTENSE_YELLOW, FOREGROUND_BLUE, FOREGROUND_INTENSE_BLUE, FOREGROUND_MAGENTA, FOREGROUND_INTENSE_MAGENTA, FOREGROUND_CYAN, FOREGROUND_INTENSE_CYAN, FOREGROUND_WHITE, FOREGROUND_BLACK, FOREGROUND_WHITE }; static const AuArray(EAnsiColor::eEnumCount)> kAnsiColorBackgroundToNT { BACKGROUND_RED, BACKGROUND_INTENSE_RED, BACKGROUND_GREEN, BACKGROUND_INTENSE_GREEN, BACKGROUND_YELLOW, BACKGROUND_INTENSE_YELLOW, BACKGROUND_BLUE, BACKGROUND_INTENSE_BLUE, BACKGROUND_MAGENTA, BACKGROUND_INTENSE_MAGENTA, BACKGROUND_CYAN, BACKGROUND_INTENSE_CYAN, BACKGROUND_WHITE, BACKGROUND_BLACK, BACKGROUND_BLACK }; #endif }