Consolix
Loading...
Searching...
No Matches
enums.hpp
Go to the documentation of this file.
1#pragma once
2#ifndef _CONSOLIX_ENUMS_HPP_INCLUDED
3#define _CONSOLIX_ENUMS_HPP_INCLUDED
4
7
8#include <array>
9
10namespace consolix {
11
35
39 inline const char* to_c_str(const TextColor& color) {
40 static const std::array<const char*, 16> ansi_codes = {
41 "\033[30m", // Black
42 "\033[31m", // DarkRed
43 "\033[32m", // DarkGreen
44 "\033[33m", // DarkYellow
45 "\033[34m", // DarkBlue
46 "\033[35m", // DarkMagenta
47 "\033[36m", // DarkCyan
48 "\033[37m", // LightGray
49 "\033[90m", // DarkGray
50 "\033[91m", // Red
51 "\033[92m", // Green
52 "\033[93m", // Yellow
53 "\033[94m", // Blue
54 "\033[95m", // Magenta
55 "\033[96m", // Cyan
56 "\033[97m" // White
57 };
58
59 return ansi_codes[static_cast<int>(color)];
60 }
61
62# if defined(_WIN32) || defined(_WIN64)
66 inline WORD to_windows_color(const TextColor& color) {
67 static const std::array<WORD, 16> windows_colors = {
68 0, // Black
69 FOREGROUND_RED, // DarkRed
70 FOREGROUND_GREEN, // DarkGreen
71 FOREGROUND_RED | FOREGROUND_GREEN, // DarkYellow
72 FOREGROUND_BLUE, // DarkBlue
73 FOREGROUND_RED | FOREGROUND_BLUE, // DarkMagenta
74 FOREGROUND_GREEN | FOREGROUND_BLUE, // DarkCyan
75 FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE, // LightGray
76 FOREGROUND_INTENSITY, // DarkGray
77 FOREGROUND_RED | FOREGROUND_INTENSITY, // Red
78 FOREGROUND_GREEN | FOREGROUND_INTENSITY, // Green
79 FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY, // Yellow
80 FOREGROUND_BLUE | FOREGROUND_INTENSITY, // Blue
81 FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY, // Magenta
82 FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY, // Cyan
83 FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY // White
84 };
85
86 return windows_colors[static_cast<int>(color)];
87 }
88# endif
89
90}; // namespace consolix
91
92#endif // _CONSOLIX_ENUMS_HPP_INCLUDED
< Utility modules and helpers.
ColorManipulator color(TextColor color)
Creates a color manipulator for use in output streams.
TextColor
Represents text colors for console output.
Definition enums.hpp:17
const char * to_c_str(const TextColor &color)
Converts a TextColor to an ANSI escape code string.
Definition enums.hpp:39