From 0b23a20ad56806e82ad67de05c82c5e3a4b47218 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Tue, 28 Sep 2021 16:53:15 +0100 Subject: [PATCH] LibWeb: Add CSSConditionRule https://www.w3.org/TR/css-conditional-3/#the-cssconditionrule-interface This simply exposes a condition string, which is implemented differently in each sub-class. --- Userland/Libraries/LibWeb/CMakeLists.txt | 1 + .../Libraries/LibWeb/CSS/CSSConditionRule.cpp | 20 +++++++++++++ .../Libraries/LibWeb/CSS/CSSConditionRule.h | 29 +++++++++++++++++++ .../Libraries/LibWeb/CSS/CSSConditionRule.idl | 3 ++ 4 files changed, 53 insertions(+) create mode 100644 Userland/Libraries/LibWeb/CSS/CSSConditionRule.cpp create mode 100644 Userland/Libraries/LibWeb/CSS/CSSConditionRule.h create mode 100644 Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index 12e3941df5..27cafb50f8 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -12,6 +12,7 @@ set(SOURCES Bindings/ScriptExecutionContext.cpp Bindings/WindowObject.cpp Bindings/Wrappable.cpp + CSS/CSSConditionRule.cpp CSS/CSSGroupingRule.cpp CSS/CSSImportRule.cpp CSS/CSSRule.cpp diff --git a/Userland/Libraries/LibWeb/CSS/CSSConditionRule.cpp b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.cpp new file mode 100644 index 0000000000..eb2a3716cb --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.cpp @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2021, Sam Atkins + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +namespace Web::CSS { + +CSSConditionRule::CSSConditionRule(NonnullRefPtrVector&& rules) + : CSSGroupingRule(move(rules)) +{ +} + +CSSConditionRule::~CSSConditionRule() +{ +} + +} diff --git a/Userland/Libraries/LibWeb/CSS/CSSConditionRule.h b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.h new file mode 100644 index 0000000000..7fb5b55caa --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021, Sam Atkins + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include +#include +#include + +namespace Web::CSS { + +class CSSConditionRule : public CSSGroupingRule { + AK_MAKE_NONCOPYABLE(CSSConditionRule); + AK_MAKE_NONMOVABLE(CSSConditionRule); + +public: + ~CSSConditionRule(); + + virtual String condition_text() const = 0; + virtual void set_condition_text(String) = 0; + +protected: + explicit CSSConditionRule(NonnullRefPtrVector&&); +}; + +} diff --git a/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl new file mode 100644 index 0000000000..3d4420cf3a --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl @@ -0,0 +1,3 @@ +interface CSSConditionRule : CSSGroupingRule { + attribute CSSOMString conditionText; +};