1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 06:47:34 +00:00

LibWeb: Add MediaList

This is a list of MediaQuery objects. Not to be confused with
`MediaQueryList`, which is concerned with firing events when a media
query's match-state changes.
This commit is contained in:
Sam Atkins 2021-09-29 12:08:09 +01:00 committed by Andreas Kling
parent 0a4d9c6d31
commit 8ac622f056
4 changed files with 116 additions and 0 deletions

View file

@ -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;
};
}