1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 19:17:35 +00:00

LibWeb: Add info about pseudo element type in Layout::Node

This commit is contained in:
Aliaksandr Kalenik 2023-08-06 01:29:55 +02:00 committed by Andreas Kling
parent 74636ccb57
commit b6ea4b002b
3 changed files with 44 additions and 5 deletions

View file

@ -46,8 +46,22 @@ public:
DOM::Node const* dom_node() const;
DOM::Node* dom_node();
bool is_generated() const { return m_generated; }
void set_generated(bool b) { m_generated = b; }
DOM::Element const* pseudo_element_generator() const;
DOM::Element* pseudo_element_generator();
enum class GeneratedFor {
NotGenerated,
PseudoBefore,
PseudoAfter
};
bool is_generated() const { return m_generated_for != GeneratedFor::NotGenerated; }
bool is_generated_for_before_pseudo_element() const { return m_generated_for == GeneratedFor::PseudoBefore; }
bool is_generated_for_after_pseudo_element() const { return m_generated_for == GeneratedFor::PseudoAfter; }
void set_generated_for(GeneratedFor type, DOM::Element& element)
{
m_generated_for = type;
m_pseudo_element_generator = &element;
}
Painting::Paintable* paintable() { return m_paintable; }
Painting::Paintable const* paintable() const { return m_paintable; }
@ -169,6 +183,8 @@ private:
JS::NonnullGCPtr<HTML::BrowsingContext> m_browsing_context;
JS::GCPtr<DOM::Element> m_pseudo_element_generator;
bool m_anonymous { false };
bool m_has_style { false };
bool m_visible { true };
@ -176,7 +192,7 @@ private:
SelectionState m_selection_state { SelectionState::None };
bool m_is_flex_item { false };
bool m_generated { false };
GeneratedFor m_generated_for { GeneratedFor::NotGenerated };
};
class NodeWithStyle : public Node {