ladybird/Libraries/LibWeb/SVG/SVGStyleElement.h
Shannon Booth 903c8860f8 LibWeb: Add metadata to children update steps invocation
Currently, this metadata is only provided on the insertion steps,
though I believe it would be useful to extend to the other cases
as well. This metadata can aid in making optimizations for these
steps by providing extra context into the type of change which
was made on the child.
2025-01-30 13:55:40 -07:00

41 lines
1.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2023, Preston Taylor <PrestonLeeTaylor@proton.me>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/DOM/StyleElementUtils.h>
#include <LibWeb/SVG/SVGElement.h>
namespace Web::SVG {
class SVGStyleElement final : public SVGElement {
WEB_PLATFORM_OBJECT(SVGStyleElement, SVGElement);
GC_DECLARE_ALLOCATOR(SVGStyleElement);
public:
virtual ~SVGStyleElement() override;
virtual void children_changed(ChildrenChangedMetadata const*) override;
virtual void inserted() override;
virtual void removed_from(Node* old_parent, Node& old_root) override;
CSS::CSSStyleSheet* sheet();
CSS::CSSStyleSheet const* sheet() const;
private:
SVGStyleElement(DOM::Document&, DOM::QualifiedName);
// ^DOM::Node
virtual bool is_svg_style_element() const override { return true; }
virtual void initialize(JS::Realm&) override;
virtual void visit_edges(Cell::Visitor&) override;
// The semantics and processing of a style and its attributes must be the same as is defined for the HTML style element.
DOM::StyleElementUtils m_style_element_utils;
};
}