summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibWeb/CMakeLists.txt1
-rw-r--r--Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp1
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleValue.cpp6
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleValue.h30
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp26
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h44
-rw-r--r--Userland/Libraries/LibWeb/Layout/Node.cpp1
7 files changed, 74 insertions, 35 deletions
diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt
index f93f5b1dcd..3ca2acf5ae 100644
--- a/Userland/Libraries/LibWeb/CMakeLists.txt
+++ b/Userland/Libraries/LibWeb/CMakeLists.txt
@@ -66,6 +66,7 @@ set(SOURCES
CSS/StyleValue.cpp
CSS/StyleValues/AngleStyleValue.cpp
CSS/StyleValues/BackgroundRepeatStyleValue.cpp
+ CSS/StyleValues/BackgroundSizeStyleValue.cpp
CSS/StyleValues/BackgroundStyleValue.cpp
CSS/Supports.cpp
CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
index 7e38881d0c..e0510d7744 100644
--- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
+++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
@@ -31,6 +31,7 @@
#include <LibWeb/CSS/StyleValue.h>
#include <LibWeb/CSS/StyleValues/AngleStyleValue.h>
#include <LibWeb/CSS/StyleValues/BackgroundRepeatStyleValue.h>
+#include <LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h>
#include <LibWeb/CSS/StyleValues/BackgroundStyleValue.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/Dump.h>
diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValue.cpp
index dec5a4cdb2..a0373fc32a 100644
--- a/Userland/Libraries/LibWeb/CSS/StyleValue.cpp
+++ b/Userland/Libraries/LibWeb/CSS/StyleValue.cpp
@@ -13,6 +13,7 @@
#include <LibWeb/CSS/StyleValue.h>
#include <LibWeb/CSS/StyleValues/AngleStyleValue.h>
#include <LibWeb/CSS/StyleValues/BackgroundRepeatStyleValue.h>
+#include <LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h>
#include <LibWeb/CSS/StyleValues/BackgroundStyleValue.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/HTML/BrowsingContext.h>
@@ -293,11 +294,6 @@ StyleValueList const& StyleValue::as_value_list() const
return static_cast<StyleValueList const&>(*this);
}
-ErrorOr<String> BackgroundSizeStyleValue::to_string() const
-{
- return String::formatted("{} {}", TRY(m_properties.size_x.to_string()), TRY(m_properties.size_y.to_string()));
-}
-
ErrorOr<String> BorderStyleValue::to_string() const
{
return String::formatted("{} {} {}", TRY(m_properties.border_width->to_string()), TRY(m_properties.border_style->to_string()), TRY(m_properties.border_color->to_string()));
diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValue.h
index 40b58da713..68b9bdf327 100644
--- a/Userland/Libraries/LibWeb/CSS/StyleValue.h
+++ b/Userland/Libraries/LibWeb/CSS/StyleValue.h
@@ -502,36 +502,6 @@ struct StyleValueWithDefaultOperators : public StyleValue {
}
};
-// NOTE: This is not used for identifier sizes, like `cover` and `contain`.
-class BackgroundSizeStyleValue final : public StyleValueWithDefaultOperators<BackgroundSizeStyleValue> {
-public:
- static ValueComparingNonnullRefPtr<BackgroundSizeStyleValue> create(LengthPercentage size_x, LengthPercentage size_y)
- {
- return adopt_ref(*new BackgroundSizeStyleValue(size_x, size_y));
- }
- virtual ~BackgroundSizeStyleValue() override = default;
-
- LengthPercentage size_x() const { return m_properties.size_x; }
- LengthPercentage size_y() const { return m_properties.size_y; }
-
- virtual ErrorOr<String> to_string() const override;
-
- bool properties_equal(BackgroundSizeStyleValue const& other) const { return m_properties == other.m_properties; }
-
-private:
- BackgroundSizeStyleValue(LengthPercentage size_x, LengthPercentage size_y)
- : StyleValueWithDefaultOperators(Type::BackgroundSize)
- , m_properties { .size_x = size_x, .size_y = size_y }
- {
- }
-
- struct Properties {
- LengthPercentage size_x;
- LengthPercentage size_y;
- bool operator==(Properties const&) const = default;
- } m_properties;
-};
-
class BorderStyleValue final : public StyleValueWithDefaultOperators<BorderStyleValue> {
public:
static ValueComparingNonnullRefPtr<BorderStyleValue> create(
diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp
new file mode 100644
index 0000000000..e43c193c9d
--- /dev/null
+++ b/Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
+ * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
+ * Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#include "BackgroundSizeStyleValue.h"
+
+namespace Web::CSS {
+BackgroundSizeStyleValue::BackgroundSizeStyleValue(LengthPercentage size_x, LengthPercentage size_y)
+ : StyleValueWithDefaultOperators(Type::BackgroundSize)
+ , m_properties { .size_x = size_x, .size_y = size_y }
+{
+}
+
+BackgroundSizeStyleValue::~BackgroundSizeStyleValue() = default;
+
+ErrorOr<String> BackgroundSizeStyleValue::to_string() const
+{
+ return String::formatted("{} {}", TRY(m_properties.size_x.to_string()), TRY(m_properties.size_y.to_string()));
+}
+
+}
diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h
new file mode 100644
index 0000000000..f67a94c637
--- /dev/null
+++ b/Userland/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
+ * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
+ * Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+#include <LibWeb/CSS/Length.h>
+#include <LibWeb/CSS/Percentage.h>
+#include <LibWeb/CSS/StyleValue.h>
+
+namespace Web::CSS {
+
+// NOTE: This is not used for identifier sizes, like `cover` and `contain`.
+class BackgroundSizeStyleValue final : public StyleValueWithDefaultOperators<BackgroundSizeStyleValue> {
+public:
+ static ValueComparingNonnullRefPtr<BackgroundSizeStyleValue> create(LengthPercentage size_x, LengthPercentage size_y)
+ {
+ return adopt_ref(*new BackgroundSizeStyleValue(size_x, size_y));
+ }
+ virtual ~BackgroundSizeStyleValue() override;
+
+ LengthPercentage size_x() const { return m_properties.size_x; }
+ LengthPercentage size_y() const { return m_properties.size_y; }
+
+ virtual ErrorOr<String> to_string() const override;
+
+ bool properties_equal(BackgroundSizeStyleValue const& other) const { return m_properties == other.m_properties; }
+
+private:
+ BackgroundSizeStyleValue(LengthPercentage size_x, LengthPercentage size_y);
+
+ struct Properties {
+ LengthPercentage size_x;
+ LengthPercentage size_y;
+ bool operator==(Properties const&) const = default;
+ } m_properties;
+};
+
+}
diff --git a/Userland/Libraries/LibWeb/Layout/Node.cpp b/Userland/Libraries/LibWeb/Layout/Node.cpp
index 16978b8243..94ef74876a 100644
--- a/Userland/Libraries/LibWeb/Layout/Node.cpp
+++ b/Userland/Libraries/LibWeb/Layout/Node.cpp
@@ -6,6 +6,7 @@
#include <AK/Demangle.h>
#include <LibWeb/CSS/StyleValues/BackgroundRepeatStyleValue.h>
+#include <LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/Dump.h>
#include <LibWeb/HTML/BrowsingContext.h>