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
9
10#include <array>
11
12namespace consolix {
13
37
41 inline const char* to_c_str(const TextColor& color) {
42 static const std::array<const char*, 16> ansi_codes = {
43 "\033[30m", // Black
44 "\033[31m", // DarkRed
45 "\033[32m", // DarkGreen
46 "\033[33m", // DarkYellow
47 "\033[34m", // DarkBlue
48 "\033[35m", // DarkMagenta
49 "\033[36m", // DarkCyan
50 "\033[37m", // LightGray
51 "\033[90m", // DarkGray
52 "\033[91m", // Red
53 "\033[92m", // Green
54 "\033[93m", // Yellow
55 "\033[94m", // Blue
56 "\033[95m", // Magenta
57 "\033[96m", // Cyan
58 "\033[97m" // White
59 };
60
61 return ansi_codes[static_cast<int>(color)];
62 }
63
64# if defined(_WIN32) || defined(_WIN64)
68 inline WORD to_windows_color(const TextColor& color) {
69 static const std::array<WORD, 16> windows_colors = {
70 0, // Black
71 FOREGROUND_RED, // DarkRed
72 FOREGROUND_GREEN, // DarkGreen
73 FOREGROUND_RED | FOREGROUND_GREEN, // DarkYellow
74 FOREGROUND_BLUE, // DarkBlue
75 FOREGROUND_RED | FOREGROUND_BLUE, // DarkMagenta
76 FOREGROUND_GREEN | FOREGROUND_BLUE, // DarkCyan
77 FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE, // LightGray
78 FOREGROUND_INTENSITY, // DarkGray
79 FOREGROUND_RED | FOREGROUND_INTENSITY, // Red
80 FOREGROUND_GREEN | FOREGROUND_INTENSITY, // Green
81 FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY, // Yellow
82 FOREGROUND_BLUE | FOREGROUND_INTENSITY, // Blue
83 FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY, // Magenta
84 FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY, // Cyan
85 FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY // White
86 };
87
88 return windows_colors[static_cast<int>(color)];
89 }
90# endif
91
92}; // namespace consolix
93
94#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:19
const char * to_c_str(const TextColor &color)
Converts a TextColor to an ANSI escape code string.
Definition enums.hpp:41
Contains platform-specific API includes and definitions.