24 bool HexCharToInt(
char symbol,
unsigned &val)
26 if (symbol >=
'0' && symbol <=
'9') {
58 const Ssiz_t last = first + len;
59 for (; first < last; ++first) {
61 if (!HexCharToInt(rgb[first], val)) {
62 ::Error(
"ROOT::MacOSX::X11::GetGex",
63 "Bad symbol in color component, hex digit expected, got %c", rgb[first]);
66 component = (component << 4) | val;
78 if (colorName[0] ==
'#')
92 if (len < 4 || len > 13 || (len - 1) % 3) {
94 ::Error(
"ROOT::MacOSX::X11::ParseRGBTriplet",
95 "Bad color name or rgb triplet %s", rgb.
Data());
102 const Ssiz_t compLen = (len - 1) / 3;
103 unsigned r = 0,
g = 0,
b = 0;
104 if (GetHex(rgb, 1, compLen, r) && GetHex(rgb, 1 + compLen, compLen,
g) &&
105 GetHex(rgb, 1 + compLen * 2, compLen,
b))
111 const unsigned bitPad = 16 - compLen * 4;
112 color.
fRed = r << bitPad;
114 color.
fBlue =
b << bitPad;
125 TString lowerCaseName(colorName);
132 color.
fRed = it->second.fRed * 0xFFFF / 0xFF;
133 color.
fGreen = it->second.fGreen * 0xFFFF / 0xFF;
134 color.
fBlue = it->second.fBlue * 0xFFFF / 0xFF;
138 ::Error(
"ROOT::MacOSX::X11::ColorParser::LookupColorByName",
139 "Could not find color with name %s", colorName.
Data());
590 fX11RGB[
"light goldenrod yellow"] =
RGB_t(250, 250, 210);
913 tmpMap.insert(std::make_pair(key, iter->second));
922 rgb[0] = (pixelColor >> 16 & 0xff) / 255.;
923 rgb[1] = (pixelColor >> 8 & 0xff) / 255.;
924 rgb[2] = (pixelColor & 0xff) / 255.;
931 rgb[0] = pixelColor >> 16 & 0xff;
932 rgb[1] = pixelColor >> 8 & 0xff;
933 rgb[2] = pixelColor & 0xff;
Namespace for new ROOT classes and functions.
void ToLower()
Change string to lower-case.
rgb_map::const_iterator const_rgb_iterator
bool ParseColor(const TString &colorString, ColorStruct_t &color) const
bool ParseRGBTriplet(const TString &rgb, ColorStruct_t &color) const
std::map< TString, RGB_t > fX11RGB
void PixelToRGB(Pixel_t pixelColor, CGFloat *rgb)
std::map< TString, RGB_t > rgb_map
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
bool LookupColorByName(const TString &colorName, ColorStruct_t &color) const
void Error(ErrorHandler_t func, int code, const char *va_(fmt),...)
Write error message and call a handler, if required.
const char * Data() const
static constexpr double g