mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:47:34 +00:00
LibWeb: Move PseudoElement enum up a level
This in preparation for changing how we store these, plus it's unwieldy having to type CSS::Selector::SimpleSelector::PseudoElement.
This commit is contained in:
parent
5390e05851
commit
caef4ec157
4 changed files with 28 additions and 28 deletions
|
@ -497,13 +497,13 @@ Result<Selector::SimpleSelector, Parser::ParsingResult> Parser::parse_simple_sel
|
|||
return ParsingResult::IncludesIgnoredVendorPrefix;
|
||||
|
||||
if (pseudo_name.equals_ignoring_case("after")) {
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::After;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::After;
|
||||
} else if (pseudo_name.equals_ignoring_case("before")) {
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::Before;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::Before;
|
||||
} else if (pseudo_name.equals_ignoring_case("first-letter")) {
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLetter;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::FirstLetter;
|
||||
} else if (pseudo_name.equals_ignoring_case("first-line")) {
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLine;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::FirstLine;
|
||||
} else {
|
||||
dbgln_if(CSS_PARSER_DEBUG, "Unrecognized pseudo-element: '::{}'", pseudo_name);
|
||||
return ParsingResult::SyntaxError;
|
||||
|
@ -561,19 +561,19 @@ Result<Selector::SimpleSelector, Parser::ParsingResult> Parser::parse_simple_sel
|
|||
} else if (pseudo_name.equals_ignoring_case("after")) {
|
||||
// Single-colon syntax allowed for compatibility. https://www.w3.org/TR/selectors/#pseudo-element-syntax
|
||||
simple_selector.type = Selector::SimpleSelector::Type::PseudoElement;
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::After;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::After;
|
||||
} else if (pseudo_name.equals_ignoring_case("before")) {
|
||||
// See :after
|
||||
simple_selector.type = Selector::SimpleSelector::Type::PseudoElement;
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::Before;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::Before;
|
||||
} else if (pseudo_name.equals_ignoring_case("first-letter")) {
|
||||
// See :after
|
||||
simple_selector.type = Selector::SimpleSelector::Type::PseudoElement;
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLetter;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::FirstLetter;
|
||||
} else if (pseudo_name.equals_ignoring_case("first-line")) {
|
||||
// See :after
|
||||
simple_selector.type = Selector::SimpleSelector::Type::PseudoElement;
|
||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLine;
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::FirstLine;
|
||||
} else {
|
||||
dbgln_if(CSS_PARSER_DEBUG, "Unrecognized pseudo-class: ':{}'", pseudo_name);
|
||||
return ParsingResult::SyntaxError;
|
||||
|
|
|
@ -240,18 +240,18 @@ String serialize_a_group_of_selectors(NonnullRefPtrVector<Selector> const& selec
|
|||
return builder.to_string();
|
||||
}
|
||||
|
||||
constexpr StringView pseudo_element_name(Selector::SimpleSelector::PseudoElement pseudo_element)
|
||||
constexpr StringView pseudo_element_name(Selector::PseudoElement pseudo_element)
|
||||
{
|
||||
switch (pseudo_element) {
|
||||
case Selector::SimpleSelector::PseudoElement::Before:
|
||||
case Selector::PseudoElement::Before:
|
||||
return "before"sv;
|
||||
case Selector::SimpleSelector::PseudoElement::After:
|
||||
case Selector::PseudoElement::After:
|
||||
return "after"sv;
|
||||
case Selector::SimpleSelector::PseudoElement::FirstLine:
|
||||
case Selector::PseudoElement::FirstLine:
|
||||
return "first-line"sv;
|
||||
case Selector::SimpleSelector::PseudoElement::FirstLetter:
|
||||
case Selector::PseudoElement::FirstLetter:
|
||||
return "first-letter"sv;
|
||||
case Selector::SimpleSelector::PseudoElement::None:
|
||||
case Selector::PseudoElement::None:
|
||||
break;
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
|
|
|
@ -20,6 +20,14 @@ using SelectorList = NonnullRefPtrVector<class Selector>;
|
|||
// This is a <complex-selector> in the spec. https://www.w3.org/TR/selectors-4/#complex
|
||||
class Selector : public RefCounted<Selector> {
|
||||
public:
|
||||
enum class PseudoElement {
|
||||
None,
|
||||
Before,
|
||||
After,
|
||||
FirstLine,
|
||||
FirstLetter,
|
||||
};
|
||||
|
||||
struct SimpleSelector {
|
||||
enum class Type {
|
||||
Invalid,
|
||||
|
@ -75,14 +83,6 @@ public:
|
|||
SelectorList not_selector {};
|
||||
};
|
||||
PseudoClass pseudo_class {};
|
||||
|
||||
enum class PseudoElement {
|
||||
None,
|
||||
Before,
|
||||
After,
|
||||
FirstLine,
|
||||
FirstLetter,
|
||||
};
|
||||
PseudoElement pseudo_element { PseudoElement::None };
|
||||
|
||||
FlyString value {};
|
||||
|
@ -142,7 +142,7 @@ private:
|
|||
mutable Optional<u32> m_specificity;
|
||||
};
|
||||
|
||||
constexpr StringView pseudo_element_name(Selector::SimpleSelector::PseudoElement);
|
||||
constexpr StringView pseudo_element_name(Selector::PseudoElement);
|
||||
constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Type);
|
||||
|
||||
String serialize_a_group_of_selectors(NonnullRefPtrVector<Selector> const& selectors);
|
||||
|
|
|
@ -438,19 +438,19 @@ void dump_selector(StringBuilder& builder, CSS::Selector const& selector)
|
|||
if (simple_selector.type == CSS::Selector::SimpleSelector::Type::PseudoElement) {
|
||||
char const* pseudo_element_description = "";
|
||||
switch (simple_selector.pseudo_element) {
|
||||
case CSS::Selector::SimpleSelector::PseudoElement::None:
|
||||
case CSS::Selector::PseudoElement::None:
|
||||
pseudo_element_description = "NONE";
|
||||
break;
|
||||
case CSS::Selector::SimpleSelector::PseudoElement::Before:
|
||||
case CSS::Selector::PseudoElement::Before:
|
||||
pseudo_element_description = "before";
|
||||
break;
|
||||
case CSS::Selector::SimpleSelector::PseudoElement::After:
|
||||
case CSS::Selector::PseudoElement::After:
|
||||
pseudo_element_description = "after";
|
||||
break;
|
||||
case CSS::Selector::SimpleSelector::PseudoElement::FirstLine:
|
||||
case CSS::Selector::PseudoElement::FirstLine:
|
||||
pseudo_element_description = "first-line";
|
||||
break;
|
||||
case CSS::Selector::SimpleSelector::PseudoElement::FirstLetter:
|
||||
case CSS::Selector::PseudoElement::FirstLetter:
|
||||
pseudo_element_description = "first-letter";
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue