/* * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::SVG { // https://svgwg.org/svg2-draft/embedded.html#InterfaceSVGForeignObjectElement class SVGForeignObjectElement final : public SVGGraphicsElement { WEB_PLATFORM_OBJECT(SVGForeignObjectElement, SVGGraphicsElement); public: virtual ~SVGForeignObjectElement() override; virtual JS::GCPtr create_layout_node(NonnullRefPtr) override; JS::NonnullGCPtr x(); JS::NonnullGCPtr y(); JS::NonnullGCPtr width(); JS::NonnullGCPtr height(); private: SVGForeignObjectElement(DOM::Document& document, DOM::QualifiedName qualified_name); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; virtual void apply_presentational_hints(CSS::StyleProperties&) const override; JS::GCPtr m_x; JS::GCPtr m_y; JS::GCPtr m_width; JS::GCPtr m_height; }; }