/* * Copyright (c) 2024, MacDue * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::SVG { // https://svgwg.org/svg2-draft/single-page.html#coords-InterfaceSVGTransformList class SVGTransformList final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(SVGTransformList, Bindings::PlatformObject); JS_DECLARE_ALLOCATOR(SVGTransformList); public: [[nodiscard]] static JS::NonnullGCPtr create(JS::Realm& realm); virtual ~SVGTransformList() override; WebIDL::ExceptionOr> get_item(WebIDL::UnsignedLong index); JS::NonnullGCPtr append_item(JS::NonnullGCPtr new_item); private: SVGTransformList(JS::Realm& realm); virtual void initialize(JS::Realm& realm) override; virtual void visit_edges(Cell::Visitor& visitor) override; Vector> m_transforms; }; }