/* * 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); GC_DECLARE_ALLOCATOR(SVGTransformList); public: [[nodiscard]] static GC::Ref create(JS::Realm& realm); virtual ~SVGTransformList() override; WebIDL::UnsignedLong length(); WebIDL::UnsignedLong number_of_items(); WebIDL::ExceptionOr> get_item(WebIDL::UnsignedLong index); GC::Ref append_item(GC::Ref 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; }; }