Consolix
Toggle main menu visibility
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 "
../core/platform_includes.hpp
"
9
10
#include <array>
11
12
namespace
consolix
{
13
19
enum class
TextColor
{
20
Black
,
21
DarkRed
,
22
DarkGreen
,
23
DarkYellow
,
24
DarkBlue
,
25
DarkMagenta
,
26
DarkCyan
,
27
LightGray
,
28
DarkGray
,
29
Red
,
30
Green
,
31
Yellow
,
32
Blue
,
33
Magenta
,
34
Cyan
,
35
White
,
36
};
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
consolix
< Utility modules and helpers.
Definition
BaseLoopComponent.hpp:13
consolix::color
ColorManipulator color(TextColor color)
Creates a color manipulator for use in output streams.
Definition
ColorManipulator.hpp:52
consolix::TextColor
TextColor
Represents text colors for console output.
Definition
enums.hpp:19
consolix::TextColor::Cyan
@ Cyan
Definition
enums.hpp:34
consolix::TextColor::White
@ White
Definition
enums.hpp:35
consolix::TextColor::DarkYellow
@ DarkYellow
Definition
enums.hpp:23
consolix::TextColor::Yellow
@ Yellow
Definition
enums.hpp:31
consolix::TextColor::DarkCyan
@ DarkCyan
Definition
enums.hpp:26
consolix::TextColor::DarkRed
@ DarkRed
Definition
enums.hpp:21
consolix::TextColor::DarkBlue
@ DarkBlue
Definition
enums.hpp:24
consolix::TextColor::DarkGray
@ DarkGray
Definition
enums.hpp:28
consolix::TextColor::Blue
@ Blue
Definition
enums.hpp:32
consolix::TextColor::Magenta
@ Magenta
Definition
enums.hpp:33
consolix::TextColor::Green
@ Green
Definition
enums.hpp:30
consolix::TextColor::DarkMagenta
@ DarkMagenta
Definition
enums.hpp:25
consolix::TextColor::Black
@ Black
Definition
enums.hpp:20
consolix::TextColor::Red
@ Red
Definition
enums.hpp:29
consolix::TextColor::DarkGreen
@ DarkGreen
Definition
enums.hpp:22
consolix::TextColor::LightGray
@ LightGray
Definition
enums.hpp:27
consolix::to_c_str
const char * to_c_str(const TextColor &color)
Converts a TextColor to an ANSI escape code string.
Definition
enums.hpp:41
platform_includes.hpp
Contains platform-specific API includes and definitions.
include
consolix
utils
enums.hpp
Generated by
1.17.0