diff options
Diffstat (limited to 'Userland/Libraries/LibWeb/CSS/MediaList.h')
-rw-r--r-- | Userland/Libraries/LibWeb/CSS/MediaList.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/CSS/MediaList.h b/Userland/Libraries/LibWeb/CSS/MediaList.h new file mode 100644 index 0000000000..4586f731bb --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/MediaList.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021, Sam Atkins <atkinssj@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <AK/NonnullRefPtrVector.h> +#include <AK/Optional.h> +#include <AK/RefCounted.h> +#include <LibWeb/CSS/MediaQuery.h> + +namespace Web::CSS { + +// https://www.w3.org/TR/cssom-1/#the-medialist-interface +class MediaList final : public RefCounted<MediaList> { +public: + static NonnullRefPtr<MediaList> create(NonnullRefPtrVector<MediaQuery>&& media) + { + return adopt_ref(*new MediaList(move(media))); + } + ~MediaList(); + + String media_text() const; + void set_media_text(String const&); + size_t length() const { return m_media.size(); } + Optional<String> item(size_t index) const; + void append_medium(String); + void delete_medium(String); + +private: + explicit MediaList(NonnullRefPtrVector<MediaQuery>&&); + + NonnullRefPtrVector<MediaQuery> m_media; +}; + +} |