@@ -25,84 +25,90 @@ export namespace CppUtils::Terminal::BackgroundColor
2525
2626#if defined(OS_WINDOWS)
2727 // see https://learn.microsoft.com/en-us/windows/console/char-info-str
28- namespace Attribute
28+ namespace WindowsNative
2929 {
30- [[maybe_unused]] inline constexpr std::uint8_t Black = 0;
31- [[maybe_unused]] inline constexpr std::uint8_t Red = 0x40;
32- [[maybe_unused]] inline constexpr std::uint8_t Green = 0x20;
33- [[maybe_unused]] inline constexpr std::uint8_t Intensity = 0x80;
34- [[maybe_unused]] inline constexpr std::uint8_t Yellow = Red | Green | Intensity;
35- [[maybe_unused]] inline constexpr std::uint8_t Blue = 0x10;
36- [[maybe_unused]] inline constexpr std::uint8_t Magenta = 13;
37- [[maybe_unused]] inline constexpr std::uint8_t Cyan = 11;
38- [[maybe_unused]] inline constexpr std::uint8_t White = 15;
39- [[maybe_unused]] inline constexpr std::uint8_t Default = 0;
40- }
30+ namespace Attribute
31+ {
32+ [[maybe_unused]] inline constexpr std::uint8_t Black = 0;
33+ [[maybe_unused]] inline constexpr std::uint8_t Red = 0x40;
34+ [[maybe_unused]] inline constexpr std::uint8_t Green = 0x20;
35+ [[maybe_unused]] inline constexpr std::uint8_t Intensity = 0x80;
36+ [[maybe_unused]] inline constexpr std::uint8_t Yellow = Red | Green | Intensity;
37+ [[maybe_unused]] inline constexpr std::uint8_t Blue = 0x10;
38+ [[maybe_unused]] inline constexpr std::uint8_t Magenta = 13;
39+ [[maybe_unused]] inline constexpr std::uint8_t Cyan = 11;
40+ [[maybe_unused]] inline constexpr std::uint8_t White = 15;
41+ [[maybe_unused]] inline constexpr std::uint8_t Default = 0;
42+ }
4143
42- [[nodiscard]] inline constexpr std::uint8_t getBackgroundColorCode(BackgroundColorEnum backgroundColor)
43- {
44- switch (backgroundColor)
44+ [[nodiscard]] inline constexpr std::uint8_t getBackgroundColorCode(BackgroundColorEnum backgroundColor)
4545 {
46- case BackgroundColorEnum::Default:
47- return Attribute::Default;
48- case BackgroundColorEnum::Black:
49- return Attribute::Black;
50- case BackgroundColorEnum::Red:
51- return Attribute::Red;
52- case BackgroundColorEnum::Green:
53- return Attribute::Green;
54- case BackgroundColorEnum::Yellow:
55- return Attribute::Yellow;
56- case BackgroundColorEnum::Blue:
57- return Attribute::Blue;
58- case BackgroundColorEnum::Magenta:
59- return Attribute::Magenta;
60- case BackgroundColorEnum::Cyan:
61- return Attribute::Cyan;
62- case BackgroundColorEnum::White:
63- return Attribute::White;
64- default:
65- return Attribute::Default;
46+ switch (backgroundColor)
47+ {
48+ case BackgroundColorEnum::Default:
49+ return Attribute::Default;
50+ case BackgroundColorEnum::Black:
51+ return Attribute::Black;
52+ case BackgroundColorEnum::Red:
53+ return Attribute::Red;
54+ case BackgroundColorEnum::Green:
55+ return Attribute::Green;
56+ case BackgroundColorEnum::Yellow:
57+ return Attribute::Yellow;
58+ case BackgroundColorEnum::Blue:
59+ return Attribute::Blue;
60+ case BackgroundColorEnum::Magenta:
61+ return Attribute::Magenta;
62+ case BackgroundColorEnum::Cyan:
63+ return Attribute::Cyan;
64+ case BackgroundColorEnum::White:
65+ return Attribute::White;
66+ default:
67+ return Attribute::Default;
68+ }
6669 }
6770 }
6871#elif defined(OS_LINUX) or defined(OS_MACOS)
69- namespace ANSIEscapeCode
72+ namespace Ansi
7073 {
71- [[maybe_unused]] inline constexpr auto Black = "\x1B[40m"sv;
72- [[maybe_unused]] inline constexpr auto Red = "\x1B[41m"sv;
73- [[maybe_unused]] inline constexpr auto Green = "\x1B[42m"sv;
74- [[maybe_unused]] inline constexpr auto Yellow = "\x1B[43m"sv;
75- [[maybe_unused]] inline constexpr auto Blue = "\x1B[44m"sv;
76- [[maybe_unused]] inline constexpr auto Magenta = "\x1B[45m"sv;
77- [[maybe_unused]] inline constexpr auto Cyan = "\x1B[46m"sv;
78- [[maybe_unused]] inline constexpr auto White = "\x1B[47m"sv;
79- [[maybe_unused]] inline constexpr auto Default = "\x1B[49m"sv;
80- }
74+ namespace EscapeCode
75+ {
76+ [[maybe_unused]] inline constexpr auto Black = "\x1B[40m"sv;
77+ [[maybe_unused]] inline constexpr auto Red = "\x1B[41m"sv;
78+ [[maybe_unused]] inline constexpr auto Green = "\x1B[42m"sv;
79+ [[maybe_unused]] inline constexpr auto Yellow = "\x1B[43m"sv;
80+ [[maybe_unused]] inline constexpr auto Blue = "\x1B[44m"sv;
81+ [[maybe_unused]] inline constexpr auto Magenta = "\x1B[45m"sv;
82+ [[maybe_unused]] inline constexpr auto Cyan = "\x1B[46m"sv;
83+ [[maybe_unused]] inline constexpr auto White = "\x1B[47m"sv;
84+ [[maybe_unused]] inline constexpr auto Default = "\x1B[49m"sv;
85+ }
8186
82- [[nodiscard]] inline constexpr std::string_view getBackgroundColorCode(BackgroundColorEnum backgroundColor)
83- {
84- switch (backgroundColor)
87+ [[nodiscard]] inline constexpr std::string_view getBackgroundColorCode(BackgroundColorEnum backgroundColor)
8588 {
86- case BackgroundColorEnum::Default:
87- return ANSIEscapeCode::Default;
88- case BackgroundColorEnum::Black:
89- return ANSIEscapeCode::Black;
90- case BackgroundColorEnum::Red:
91- return ANSIEscapeCode::Red;
92- case BackgroundColorEnum::Green:
93- return ANSIEscapeCode::Green;
94- case BackgroundColorEnum::Yellow:
95- return ANSIEscapeCode::Yellow;
96- case BackgroundColorEnum::Blue:
97- return ANSIEscapeCode::Blue;
98- case BackgroundColorEnum::Magenta:
99- return ANSIEscapeCode::Magenta;
100- case BackgroundColorEnum::Cyan:
101- return ANSIEscapeCode::Cyan;
102- case BackgroundColorEnum::White:
103- return ANSIEscapeCode::White;
104- default:
105- return ANSIEscapeCode::Default;
89+ switch (backgroundColor)
90+ {
91+ case BackgroundColorEnum::Default:
92+ return EscapeCode::Default;
93+ case BackgroundColorEnum::Black:
94+ return EscapeCode::Black;
95+ case BackgroundColorEnum::Red:
96+ return EscapeCode::Red;
97+ case BackgroundColorEnum::Green:
98+ return EscapeCode::Green;
99+ case BackgroundColorEnum::Yellow:
100+ return EscapeCode::Yellow;
101+ case BackgroundColorEnum::Blue:
102+ return EscapeCode::Blue;
103+ case BackgroundColorEnum::Magenta:
104+ return EscapeCode::Magenta;
105+ case BackgroundColorEnum::Cyan:
106+ return EscapeCode::Cyan;
107+ case BackgroundColorEnum::White:
108+ return EscapeCode::White;
109+ default:
110+ return EscapeCode::Default;
111+ }
106112 }
107113 }
108114#endif
0 commit comments