Adds the sdi_toolBox library (temporary version)
This commit is contained in:
84
sdi_toolBox_1.0.x/toolBox/sdi_toolBox/console/ansi.h
Normal file
84
sdi_toolBox_1.0.x/toolBox/sdi_toolBox/console/ansi.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
{{copyright}}
|
||||
*/
|
||||
|
||||
/*
|
||||
{{version}}
|
||||
*/
|
||||
|
||||
/*
|
||||
{{license}}
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace sdi_toolBox::console::ANSI
|
||||
{
|
||||
//--------------------------------------------------------------
|
||||
class EscapeCommand
|
||||
{
|
||||
public:
|
||||
enum class Color : uint8_t
|
||||
{
|
||||
Black = 0,
|
||||
Red,
|
||||
Green,
|
||||
Yellow,
|
||||
Blue,
|
||||
Magenta,
|
||||
Cyan,
|
||||
White,
|
||||
};
|
||||
|
||||
static constexpr uint8_t LIGHT = 0x01 << 0; // 0x01
|
||||
static constexpr uint8_t BRIGHT = 0x01 << 1; // 0x02
|
||||
static constexpr uint8_t DIM = 0x01 << 2; // 0x04
|
||||
static constexpr uint8_t UNDERLINE = 0x01 << 3; // 0x08
|
||||
static constexpr uint8_t BLINK = 0x01 << 4; // 0x10
|
||||
static constexpr uint8_t REVERSE = 0x01 << 5; // 0x20
|
||||
|
||||
public:
|
||||
static std::string clear();
|
||||
static std::string get(const Color foregroundColor,
|
||||
const uint8_t foregroundStyle = 0,
|
||||
const Color backgroundColor = Color::Black,
|
||||
const uint8_t backgroundStyle = 0);
|
||||
};
|
||||
//--------------------------------------------------------------
|
||||
inline std::string EscapeCommand::clear()
|
||||
{
|
||||
return "\x1b[0m";
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
inline std::string EscapeCommand::get(const Color foregroundColor, const uint8_t foregroundStyle, const Color backgroundColor, const uint8_t backgroundStyle)
|
||||
{
|
||||
std::string command = "\x1b[";
|
||||
int foregroundColorValue = static_cast<int>(foregroundColor) + 30;
|
||||
if (foregroundStyle & LIGHT)
|
||||
foregroundColorValue += 60;
|
||||
command += std::to_string(foregroundColorValue) + ";";
|
||||
|
||||
int backgroundColorValue = static_cast<int>(backgroundColor) + 40;
|
||||
if (backgroundStyle & LIGHT)
|
||||
backgroundColorValue += 60;
|
||||
command += std::to_string(backgroundColorValue);
|
||||
|
||||
if (foregroundStyle & BRIGHT)
|
||||
command += ";1";
|
||||
if (foregroundStyle & DIM)
|
||||
command += ";2";
|
||||
if (foregroundStyle & UNDERLINE)
|
||||
command += ";4";
|
||||
if (foregroundStyle & BLINK)
|
||||
command += ";5";
|
||||
if (foregroundStyle & REVERSE)
|
||||
command += ";7";
|
||||
|
||||
command += "m";
|
||||
return command;
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
} // namespace sdi_toolBox::console::ANSI
|
||||
Reference in New Issue
Block a user