LibWeb: Deduplicate "ident is color" check
Reuse the check from IdentifierStyleValue in the CSS Parser, instead of duplicating it. This might not be the ideal place to put it, but it works for now.
This commit is contained in:
parent
da8692572a
commit
1dcd63be05
Notes:
sideshowbarker
2024-07-16 22:54:10 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/1dcd63be05 Pull-request: https://github.com/SerenityOS/serenity/pull/20743
3 changed files with 11 additions and 65 deletions
|
@ -2478,69 +2478,9 @@ RefPtr<StyleValue> Parser::parse_color_value(ComponentValue const& component_val
|
|||
return ColorStyleValue::create(color.value());
|
||||
|
||||
if (component_value.is(Token::Type::Ident)) {
|
||||
if (auto ident = value_id_from_string(component_value.token().ident()); ident.has_value()) {
|
||||
switch (ident.value()) {
|
||||
case ValueID::Currentcolor:
|
||||
case ValueID::LibwebLink:
|
||||
case ValueID::LibwebPaletteActiveLink:
|
||||
case ValueID::LibwebPaletteActiveWindowBorder1:
|
||||
case ValueID::LibwebPaletteActiveWindowBorder2:
|
||||
case ValueID::LibwebPaletteActiveWindowTitle:
|
||||
case ValueID::LibwebPaletteBase:
|
||||
case ValueID::LibwebPaletteBaseText:
|
||||
case ValueID::LibwebPaletteButton:
|
||||
case ValueID::LibwebPaletteButtonText:
|
||||
case ValueID::LibwebPaletteDesktopBackground:
|
||||
case ValueID::LibwebPaletteFocusOutline:
|
||||
case ValueID::LibwebPaletteHighlightWindowBorder1:
|
||||
case ValueID::LibwebPaletteHighlightWindowBorder2:
|
||||
case ValueID::LibwebPaletteHighlightWindowTitle:
|
||||
case ValueID::LibwebPaletteHoverHighlight:
|
||||
case ValueID::LibwebPaletteInactiveSelection:
|
||||
case ValueID::LibwebPaletteInactiveSelectionText:
|
||||
case ValueID::LibwebPaletteInactiveWindowBorder1:
|
||||
case ValueID::LibwebPaletteInactiveWindowBorder2:
|
||||
case ValueID::LibwebPaletteInactiveWindowTitle:
|
||||
case ValueID::LibwebPaletteLink:
|
||||
case ValueID::LibwebPaletteMenuBase:
|
||||
case ValueID::LibwebPaletteMenuBaseText:
|
||||
case ValueID::LibwebPaletteMenuSelection:
|
||||
case ValueID::LibwebPaletteMenuSelectionText:
|
||||
case ValueID::LibwebPaletteMenuStripe:
|
||||
case ValueID::LibwebPaletteMovingWindowBorder1:
|
||||
case ValueID::LibwebPaletteMovingWindowBorder2:
|
||||
case ValueID::LibwebPaletteMovingWindowTitle:
|
||||
case ValueID::LibwebPaletteRubberBandBorder:
|
||||
case ValueID::LibwebPaletteRubberBandFill:
|
||||
case ValueID::LibwebPaletteRuler:
|
||||
case ValueID::LibwebPaletteRulerActiveText:
|
||||
case ValueID::LibwebPaletteRulerBorder:
|
||||
case ValueID::LibwebPaletteRulerInactiveText:
|
||||
case ValueID::LibwebPaletteSelection:
|
||||
case ValueID::LibwebPaletteSelectionText:
|
||||
case ValueID::LibwebPaletteSyntaxComment:
|
||||
case ValueID::LibwebPaletteSyntaxControlKeyword:
|
||||
case ValueID::LibwebPaletteSyntaxIdentifier:
|
||||
case ValueID::LibwebPaletteSyntaxKeyword:
|
||||
case ValueID::LibwebPaletteSyntaxNumber:
|
||||
case ValueID::LibwebPaletteSyntaxOperator:
|
||||
case ValueID::LibwebPaletteSyntaxPreprocessorStatement:
|
||||
case ValueID::LibwebPaletteSyntaxPreprocessorValue:
|
||||
case ValueID::LibwebPaletteSyntaxPunctuation:
|
||||
case ValueID::LibwebPaletteSyntaxString:
|
||||
case ValueID::LibwebPaletteSyntaxType:
|
||||
case ValueID::LibwebPaletteTextCursor:
|
||||
case ValueID::LibwebPaletteThreedHighlight:
|
||||
case ValueID::LibwebPaletteThreedShadow1:
|
||||
case ValueID::LibwebPaletteThreedShadow2:
|
||||
case ValueID::LibwebPaletteVisitedLink:
|
||||
case ValueID::LibwebPaletteWindow:
|
||||
case ValueID::LibwebPaletteWindowText:
|
||||
return IdentifierStyleValue::create(ident.value());
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
auto ident = value_id_from_string(component_value.token().ident());
|
||||
if (ident.has_value() && IdentifierStyleValue::is_color(ident.value()))
|
||||
return IdentifierStyleValue::create(ident.value());
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
|
|
@ -19,9 +19,9 @@ String IdentifierStyleValue::to_string() const
|
|||
return MUST(String::from_utf8(CSS::string_from_value_id(m_id)));
|
||||
}
|
||||
|
||||
bool IdentifierStyleValue::has_color() const
|
||||
bool IdentifierStyleValue::is_color(ValueID value_id)
|
||||
{
|
||||
switch (m_id) {
|
||||
switch (value_id) {
|
||||
case ValueID::Currentcolor:
|
||||
case ValueID::LibwebLink:
|
||||
case ValueID::LibwebPaletteActiveLink:
|
||||
|
@ -84,6 +84,11 @@ bool IdentifierStyleValue::has_color() const
|
|||
}
|
||||
}
|
||||
|
||||
bool IdentifierStyleValue::has_color() const
|
||||
{
|
||||
return is_color(m_id);
|
||||
}
|
||||
|
||||
Color IdentifierStyleValue::to_color(Optional<Layout::NodeWithStyle const&> node) const
|
||||
{
|
||||
if (id() == CSS::ValueID::Currentcolor) {
|
||||
|
|
|
@ -24,6 +24,7 @@ public:
|
|||
|
||||
ValueID id() const { return m_id; }
|
||||
|
||||
static bool is_color(ValueID);
|
||||
virtual bool has_color() const override;
|
||||
virtual Color to_color(Optional<Layout::NodeWithStyle const&> node) const override;
|
||||
virtual String to_string() const override;
|
||||
|
|
Loading…
Add table
Reference in a new issue