mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-26 21:51:13 +01:00
368 lines
11 KiB
C++
368 lines
11 KiB
C++
#include "color.hpp"
|
|
|
|
Color::Color() : p_color(0) {
|
|
}
|
|
|
|
Color::Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
|
|
: Color((red << 24) | (green << 16) | (blue << 8) | alpha) {
|
|
}
|
|
Color::Color(uint32_t color) : p_color(color) {
|
|
}
|
|
|
|
Color::Color(std::string hex) {
|
|
if (hex.length() == 6) {
|
|
hex = "FF" + hex;
|
|
}
|
|
p_color = std::stoul(hex, nullptr, 16);
|
|
}
|
|
|
|
Color::Color(Colors color) {
|
|
switch (color) {
|
|
case Colors::Aquamarine:
|
|
Color(0x70, 0xDB, 0x93);
|
|
break;
|
|
case Colors::Baker_s_Chocolate:
|
|
Color(0x5C, 0x33, 0x17);
|
|
break;
|
|
case Colors::Black:
|
|
Color(0x00, 0x00, 0x00);
|
|
break;
|
|
case Colors::Blue:
|
|
Color(0x00, 0x00, 0xFF);
|
|
break;
|
|
case Colors::Blue_Violet:
|
|
Color(0x9F, 0x5F, 0x9F);
|
|
break;
|
|
case Colors::Brass:
|
|
Color(0xB5, 0xA6, 0x42);
|
|
break;
|
|
case Colors::Bright_Gold:
|
|
Color(0xD9, 0xD9, 0x19);
|
|
break;
|
|
case Colors::Brown:
|
|
Color(0xA6, 0x2A, 0x2A);
|
|
break;
|
|
case Colors::Bronze:
|
|
Color(0x8C, 0x78, 0x53);
|
|
break;
|
|
case Colors::Bronze_II:
|
|
Color(0xA6, 0x7D, 0x3D);
|
|
break;
|
|
case Colors::Cadet_Blue:
|
|
Color(0x5F, 0x9F, 0x9F);
|
|
break;
|
|
case Colors::Cool_Copper:
|
|
Color(0xD9, 0x87, 0x19);
|
|
break;
|
|
case Colors::Copper:
|
|
Color(0xB8, 0x73, 0x33);
|
|
break;
|
|
case Colors::Coral:
|
|
Color(0xFF, 0x7F, 0x00);
|
|
break;
|
|
case Colors::Corn_Flower_Blue:
|
|
Color(0x42, 0x42, 0x6F);
|
|
break;
|
|
case Colors::Cyan:
|
|
Color(0x00, 0xFF, 0xFF);
|
|
break;
|
|
case Colors::Dark_Brown:
|
|
Color(0x5C, 0x40, 0x33);
|
|
break;
|
|
case Colors::Dark_Green:
|
|
Color(0x2F, 0x4F, 0x2F);
|
|
break;
|
|
case Colors::Dark_Green_Copper:
|
|
Color(0x4A, 0x76, 0x6E);
|
|
break;
|
|
case Colors::Dark_Olive_Green:
|
|
Color(0x4F, 0x4F, 0x2F);
|
|
break;
|
|
case Colors::Dark_Orchid:
|
|
Color(0x99, 0x32, 0xCD);
|
|
break;
|
|
case Colors::Dark_Purple:
|
|
Color(0x87, 0x1F, 0x78);
|
|
break;
|
|
case Colors::Dark_Slate_Blue:
|
|
Color(0x6B, 0x23, 0x8E);
|
|
break;
|
|
case Colors::Dark_Slate_Grey:
|
|
Color(0x2F, 0x4F, 0x4F);
|
|
break;
|
|
case Colors::Dark_Tan:
|
|
Color(0x97, 0x69, 0x4F);
|
|
break;
|
|
case Colors::Dark_Turquoise:
|
|
Color(0x70, 0x93, 0xDB);
|
|
break;
|
|
case Colors::Dark_Wood:
|
|
Color(0x85, 0x5E, 0x42);
|
|
break;
|
|
case Colors::Dim_Grey:
|
|
Color(0x54, 0x54, 0x54);
|
|
break;
|
|
case Colors::Dusty_Rose:
|
|
Color(0x85, 0x63, 0x63);
|
|
break;
|
|
case Colors::Feldspar:
|
|
Color(0xD1, 0x92, 0x75);
|
|
break;
|
|
case Colors::Firebrick:
|
|
Color(0x8E, 0x23, 0x23);
|
|
break;
|
|
case Colors::Forest_Green:
|
|
Color(0x23, 0x8E, 0x23);
|
|
break;
|
|
case Colors::Gold:
|
|
Color(0xCD, 0x7F, 0x32);
|
|
break;
|
|
case Colors::Goldenrod:
|
|
Color(0xDB, 0xDB, 0x70);
|
|
break;
|
|
case Colors::Grey:
|
|
Color(0xC0, 0xC0, 0xC0);
|
|
break;
|
|
case Colors::Green:
|
|
Color(0x00, 0xFF, 0x00);
|
|
break;
|
|
case Colors::Green_Copper:
|
|
Color(0x52, 0x7F, 0x76);
|
|
break;
|
|
case Colors::Green_Yellow:
|
|
Color(0x93, 0xDB, 0x70);
|
|
break;
|
|
case Colors::Hunter_Green:
|
|
Color(0x21, 0x5E, 0x21);
|
|
break;
|
|
case Colors::Indian_Red:
|
|
Color(0x4E, 0x2F, 0x2F);
|
|
break;
|
|
case Colors::Khaki:
|
|
Color(0x9F, 0x9F, 0x5F);
|
|
break;
|
|
case Colors::Light_Blue:
|
|
Color(0xC0, 0xD9, 0xD9);
|
|
break;
|
|
case Colors::Light_Grey:
|
|
Color(0xA8, 0xA8, 0xA8);
|
|
break;
|
|
case Colors::Light_Steel_Blue:
|
|
Color(0x8F, 0x8F, 0xBD);
|
|
break;
|
|
case Colors::Light_Wood:
|
|
Color(0xE9, 0xC2, 0xA6);
|
|
break;
|
|
case Colors::Lime_Green:
|
|
Color(0x32, 0xCD, 0x32);
|
|
break;
|
|
case Colors::Magenta:
|
|
Color(0xFF, 0x00, 0xFF);
|
|
break;
|
|
case Colors::Mandarian_Orange:
|
|
Color(0xE4, 0x78, 0x33);
|
|
break;
|
|
case Colors::Maroon:
|
|
Color(0x8E, 0x23, 0x6B);
|
|
break;
|
|
case Colors::Medium_Aquamarine:
|
|
Color(0x32, 0xCD, 0x99);
|
|
break;
|
|
case Colors::Medium_Blue:
|
|
Color(0x32, 0x32, 0xCD);
|
|
break;
|
|
case Colors::Medium_Forest_Green:
|
|
Color(0x6B, 0x8E, 0x23);
|
|
break;
|
|
case Colors::Medium_Goldenrod:
|
|
Color(0xEA, 0xEA, 0xAE);
|
|
break;
|
|
case Colors::Medium_Orchid:
|
|
Color(0x93, 0x70, 0xDB);
|
|
break;
|
|
case Colors::Medium_Sea_Green:
|
|
Color(0x42, 0x6F, 0x42);
|
|
break;
|
|
case Colors::Medium_Slate_Blue:
|
|
Color(0x7F, 0x00, 0xFF);
|
|
break;
|
|
case Colors::Medium_Spring_Green:
|
|
Color(0x7F, 0xFF, 0x00);
|
|
break;
|
|
case Colors::Medium_Turquoise:
|
|
Color(0x70, 0xDB, 0xDB);
|
|
break;
|
|
case Colors::Medium_Violet_Red:
|
|
Color(0xDB, 0x70, 0x93);
|
|
break;
|
|
case Colors::Medium_Wood:
|
|
Color(0xA6, 0x80, 0x64);
|
|
break;
|
|
case Colors::Midnight_Blue:
|
|
Color(0x2F, 0x2F, 0x4F);
|
|
break;
|
|
case Colors::Navy_Blue:
|
|
Color(0x23, 0x23, 0x8E);
|
|
break;
|
|
case Colors::Neon_Blue:
|
|
Color(0x4D, 0x4D, 0xFF);
|
|
break;
|
|
case Colors::Neon_Pink:
|
|
Color(0xFF, 0x6E, 0xC7);
|
|
break;
|
|
case Colors::New_Midnight_Blue:
|
|
Color(0x00, 0x00, 0x9C);
|
|
break;
|
|
case Colors::New_Tan:
|
|
Color(0xEB, 0xC7, 0x9E);
|
|
break;
|
|
case Colors::Old_Gold:
|
|
Color(0xCF, 0xB5, 0x3B);
|
|
break;
|
|
case Colors::Orange:
|
|
Color(0xFF, 0x7F, 0x00);
|
|
break;
|
|
case Colors::Orange_Red:
|
|
Color(0xFF, 0x24, 0x00);
|
|
break;
|
|
case Colors::Orchid:
|
|
Color(0xDB, 0x70, 0xDB);
|
|
break;
|
|
case Colors::Pale_Green:
|
|
Color(0x8F, 0xBC, 0x8F);
|
|
break;
|
|
case Colors::Pink:
|
|
Color(0xBC, 0x8F, 0x8F);
|
|
break;
|
|
case Colors::Plum:
|
|
Color(0xEA, 0xAD, 0xEA);
|
|
break;
|
|
case Colors::Quartz:
|
|
Color(0xD9, 0xD9, 0xF3);
|
|
break;
|
|
case Colors::Red:
|
|
Color(0xFF, 0x00, 0x00);
|
|
break;
|
|
case Colors::Rich_Blue:
|
|
Color(0x59, 0x59, 0xAB);
|
|
break;
|
|
case Colors::Salmon:
|
|
Color(0x6F, 0x42, 0x42);
|
|
break;
|
|
case Colors::Scarlet:
|
|
Color(0x8C, 0x17, 0x17);
|
|
break;
|
|
case Colors::Sea_Green:
|
|
Color(0x23, 0x8E, 0x68);
|
|
break;
|
|
case Colors::Semi_Sweet_Chocolate:
|
|
Color(0x6B, 0x42, 0x26);
|
|
break;
|
|
case Colors::Sienna:
|
|
Color(0x8E, 0x6B, 0x23);
|
|
break;
|
|
case Colors::Silver:
|
|
Color(0xE6, 0xE8, 0xFA);
|
|
break;
|
|
case Colors::Sky_Blue:
|
|
Color(0x32, 0x99, 0xCC);
|
|
break;
|
|
case Colors::Slate_Blue:
|
|
Color(0x00, 0x7F, 0xFF);
|
|
break;
|
|
case Colors::Spicy_Pink:
|
|
Color(0xFF, 0x1C, 0xAE);
|
|
break;
|
|
case Colors::Spring_Green:
|
|
Color(0x00, 0xFF, 0x7F);
|
|
break;
|
|
case Colors::Steel_Blue:
|
|
Color(0x23, 0x6B, 0x8E);
|
|
break;
|
|
case Colors::Summer_Sky:
|
|
Color(0x38, 0xB0, 0xDE);
|
|
break;
|
|
case Colors::Tan:
|
|
Color(0xDB, 0x93, 0x70);
|
|
break;
|
|
case Colors::Thistle:
|
|
Color(0xD8, 0xBF, 0xD8);
|
|
break;
|
|
case Colors::Turquoise:
|
|
Color(0xAD, 0xEA, 0xEA);
|
|
break;
|
|
case Colors::Very_Dark_Brown:
|
|
Color(0x5C, 0x40, 0x33);
|
|
break;
|
|
case Colors::Very_Light_Grey:
|
|
Color(0xCD, 0xCD, 0xCD);
|
|
break;
|
|
case Colors::Violet:
|
|
Color(0x4F, 0x2F, 0x4F);
|
|
break;
|
|
case Colors::Violet_Red:
|
|
Color(0xCC, 0x32, 0x99);
|
|
break;
|
|
case Colors::Wheat:
|
|
Color(0xD8, 0xD8, 0xBF);
|
|
break;
|
|
case Colors::White:
|
|
Color(0xFF, 0xFF, 0xFF);
|
|
break;
|
|
case Colors::Yellow:
|
|
Color(0xFF, 0xFF, 0x00);
|
|
break;
|
|
case Colors::Yellow_Green:
|
|
Color(0x99, 0xCC, 0x32);
|
|
break;
|
|
case Colors::Dark_Yellow:
|
|
Color(0x99, 0xCC, 0x32);
|
|
break;
|
|
}
|
|
}
|
|
|
|
uint32_t Color::color() const {
|
|
return p_color;
|
|
}
|
|
|
|
uint8_t Color::red() const {
|
|
return (p_color >> 24) & 0xFF;
|
|
}
|
|
|
|
uint8_t Color::green() const {
|
|
return (p_color >> 16) & 0xFF;
|
|
}
|
|
|
|
uint8_t Color::blue() const {
|
|
return (p_color >> 8) & 0xFF;
|
|
}
|
|
|
|
uint8_t Color::alpha() const {
|
|
return p_color & 0xFF;
|
|
}
|
|
|
|
void Color::set_red(uint8_t color) {
|
|
p_color = (color << 24) | (p_color & 0x00FFFFFF);
|
|
}
|
|
|
|
void Color::set_green(uint8_t color) {
|
|
p_color = (color << 16) | (p_color & 0xFF00FFFF);
|
|
}
|
|
|
|
void Color::set_blue(uint8_t color) {
|
|
p_color = (color << 8) | (p_color & 0xFFFF00FF);
|
|
}
|
|
|
|
void Color::set_alpha(uint8_t color) {
|
|
p_color = color | (p_color & 0xFFFFFF00);
|
|
}
|
|
|
|
std::string Color::to_hex() const {
|
|
char buffer[11];
|
|
snprintf(buffer, 11, "0x%08X", p_color);
|
|
return std::string(buffer);
|
|
}
|
|
|
|
bool Color::operator==(const Color &color) const {
|
|
return p_color == color.p_color;
|
|
} |