Serenity Operating System
at master 33 lines 836 B view raw
1/* 2 * Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/NonnullRefPtr.h> 10#include <LibWeb/CSS/CSSGroupingRule.h> 11#include <LibWeb/Forward.h> 12 13namespace Web::CSS { 14 15class CSSConditionRule : public CSSGroupingRule { 16 WEB_PLATFORM_OBJECT(CSSConditionRule, CSSGroupingRule); 17 18public: 19 virtual ~CSSConditionRule() = default; 20 21 virtual DeprecatedString condition_text() const = 0; 22 virtual void set_condition_text(DeprecatedString) = 0; 23 virtual bool condition_matches() const = 0; 24 25 virtual void for_each_effective_style_rule(Function<void(CSSStyleRule const&)> const& callback) const override; 26 27protected: 28 CSSConditionRule(JS::Realm&, CSSRuleList&); 29 30 virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override; 31}; 32 33}