LibWeb: Move pseudo-class/element names into the header
These are constexpr, meaning that while the implementations were in the cpp file, nobody outside that file could actually call them.
This commit is contained in:
parent
eb6e4e6775
commit
adc08d0646
Notes:
sideshowbarker
2024-07-17 17:37:47 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/adc08d0646 Pull-request: https://github.com/SerenityOS/serenity/pull/12873
2 changed files with 70 additions and 72 deletions
Userland/Libraries/LibWeb/CSS
|
@ -261,74 +261,4 @@ String serialize_a_group_of_selectors(NonnullRefPtrVector<Selector> const& selec
|
|||
return builder.to_string();
|
||||
}
|
||||
|
||||
constexpr StringView pseudo_element_name(Selector::PseudoElement pseudo_element)
|
||||
{
|
||||
switch (pseudo_element) {
|
||||
case Selector::PseudoElement::Before:
|
||||
return "before"sv;
|
||||
case Selector::PseudoElement::After:
|
||||
return "after"sv;
|
||||
case Selector::PseudoElement::FirstLine:
|
||||
return "first-line"sv;
|
||||
case Selector::PseudoElement::FirstLetter:
|
||||
return "first-letter"sv;
|
||||
case Selector::PseudoElement::Marker:
|
||||
return "marker"sv;
|
||||
case Selector::PseudoElement::None:
|
||||
break;
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Type pseudo_class)
|
||||
{
|
||||
switch (pseudo_class) {
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Link:
|
||||
return "link"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Visited:
|
||||
return "visited"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Hover:
|
||||
return "hover"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Focus:
|
||||
return "focus"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::FirstChild:
|
||||
return "first-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::LastChild:
|
||||
return "last-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::OnlyChild:
|
||||
return "only-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Empty:
|
||||
return "empty"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Root:
|
||||
return "root"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::FirstOfType:
|
||||
return "first-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::LastOfType:
|
||||
return "last-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::OnlyOfType:
|
||||
return "only-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthOfType:
|
||||
return "nth-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthLastOfType:
|
||||
return "nth-last-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Disabled:
|
||||
return "disabled"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Enabled:
|
||||
return "enabled"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Checked:
|
||||
return "checked"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Active:
|
||||
return "active"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthChild:
|
||||
return "nth-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthLastChild:
|
||||
return "nth-last-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Not:
|
||||
return "not"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::None:
|
||||
break;
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ public:
|
|||
FirstLetter,
|
||||
Marker,
|
||||
};
|
||||
static auto constexpr PseudoElementCount = to_underlying(PseudoElement::Marker) + 1;
|
||||
|
||||
struct SimpleSelector {
|
||||
enum class Type {
|
||||
|
@ -145,8 +146,75 @@ private:
|
|||
mutable Optional<u32> m_specificity;
|
||||
};
|
||||
|
||||
constexpr StringView pseudo_element_name(Selector::PseudoElement);
|
||||
constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Type);
|
||||
constexpr StringView pseudo_element_name(Selector::PseudoElement pseudo_element)
|
||||
{
|
||||
switch (pseudo_element) {
|
||||
case Selector::PseudoElement::Before:
|
||||
return "before"sv;
|
||||
case Selector::PseudoElement::After:
|
||||
return "after"sv;
|
||||
case Selector::PseudoElement::FirstLine:
|
||||
return "first-line"sv;
|
||||
case Selector::PseudoElement::FirstLetter:
|
||||
return "first-letter"sv;
|
||||
case Selector::PseudoElement::Marker:
|
||||
return "marker"sv;
|
||||
case Selector::PseudoElement::None:
|
||||
break;
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Type pseudo_class)
|
||||
{
|
||||
switch (pseudo_class) {
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Link:
|
||||
return "link"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Visited:
|
||||
return "visited"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Hover:
|
||||
return "hover"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Focus:
|
||||
return "focus"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::FirstChild:
|
||||
return "first-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::LastChild:
|
||||
return "last-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::OnlyChild:
|
||||
return "only-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Empty:
|
||||
return "empty"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Root:
|
||||
return "root"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::FirstOfType:
|
||||
return "first-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::LastOfType:
|
||||
return "last-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::OnlyOfType:
|
||||
return "only-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthOfType:
|
||||
return "nth-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthLastOfType:
|
||||
return "nth-last-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Disabled:
|
||||
return "disabled"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Enabled:
|
||||
return "enabled"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Checked:
|
||||
return "checked"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Active:
|
||||
return "active"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthChild:
|
||||
return "nth-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::NthLastChild:
|
||||
return "nth-last-child"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Not:
|
||||
return "not"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::None:
|
||||
break;
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
String serialize_a_group_of_selectors(NonnullRefPtrVector<Selector> const& selectors);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue