/* * Copyright (c) 2020-2021, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Web::CSS { class StyleSheetList : public RefCounted , public Weakable , public Bindings::Wrappable { public: using WrapperType = Bindings::StyleSheetListWrapper; static NonnullRefPtr create(DOM::Document& document) { return adopt_ref(*new StyleSheetList(document)); } void add_sheet(NonnullRefPtr); void remove_sheet(CSSStyleSheet&); NonnullRefPtrVector const& sheets() const { return m_sheets; } NonnullRefPtrVector& sheets() { return m_sheets; } RefPtr item(size_t index) const { if (index >= m_sheets.size()) return {}; return m_sheets[index]; } size_t length() const { return m_sheets.size(); } bool is_supported_property_index(u32) const; DOM::Document& document() { return m_document; } DOM::Document const& document() const { return m_document; } private: explicit StyleSheetList(DOM::Document&); DOM::Document& m_document; NonnullRefPtrVector m_sheets; }; } namespace Web::Bindings { StyleSheetListWrapper* wrap(JS::GlobalObject&, CSS::StyleSheetList&); }