bool Color::setFromString(const String& name) { if (name[0] != '#') return setNamedColor(name); if (name.is8Bit()) return parseHexColor(name.characters8() + 1, name.length() - 1, m_color); return parseHexColor(name.characters16() + 1, name.length() - 1, m_color); }
bool Color::parseHexColor(const String& name, RGBA32& rgb) { unsigned length = name.length(); if (!length) return false; if (name.is8Bit()) return parseHexColor(name.characters8(), name.length(), rgb); return parseHexColor(name.characters16(), name.length(), rgb); }
Color::Color(const String& name) { if (name[0] == '#') { if (name.is8Bit()) m_valid = parseHexColor(name.characters8() + 1, name.length() - 1, m_color); else m_valid = parseHexColor(name.characters() + 1, name.length() - 1, m_color); } else setNamedColor(name); }
Color::Color(const String& name) { if (name.startsWith("#")) m_valid = parseHexColor(name.substring(1), m_color); else setNamedColor(name); }
Color::Color(const char* name) { if (name[0] == '#') m_valid = parseHexColor(&name[1], m_color); else { const NamedColor* foundColor = findColor(name, strlen(name)); m_color = foundColor ? foundColor->ARGBValue : 0; m_valid = foundColor; } }
Color::Color(const char* name) { if (name[0] == '#') valid = parseHexColor(&name[1], color); else { const NamedColor* foundColor = findColor(name, strlen(name)); color = foundColor ? foundColor->RGBValue : 0; color |= 0xFF000000; valid = foundColor; } }
CSSValue* consumeColor(CSSParserTokenRange& range, CSSParserMode cssParserMode, bool acceptQuirkyColors) { CSSValueID id = range.peek().id(); if (CSSPropertyParser::isColorKeyword(id)) { if (!isValueAllowedInMode(id, cssParserMode)) return nullptr; return consumeIdent(range); } RGBA32 color = Color::transparent; if (!parseHexColor(range, color, acceptQuirkyColors) && !parseColorFunction(range, color)) return nullptr; return cssValuePool().createColorValue(color); }