/* * 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); GC_DECLARE_ALLOCATOR(SVGForeignObjectElement); public: virtual ~SVGForeignObjectElement() override; virtual GC::Ptr create_layout_node(CSS::StyleProperties) override; GC::Ref x(); GC::Ref y(); GC::Ref width(); GC::Ref 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; GC::Ptr m_x; GC::Ptr m_y; GC::Ptr m_width; GC::Ptr m_height; }; }