Prechádzať zdrojové kódy

LibWeb: Split RectStyleValue out of StyleValue.{h,cpp}

Sam Atkins 2 rokov pred
rodič
commit
3a2de67c7b

+ 1 - 0
Userland/Libraries/LibWeb/CMakeLists.txt

@@ -92,6 +92,7 @@ set(SOURCES
     CSS/StyleValues/OverflowStyleValue.cpp
     CSS/StyleValues/PositionStyleValue.cpp
     CSS/StyleValues/RadialGradientStyleValue.cpp
+    CSS/StyleValues/RectStyleValue.cpp
     CSS/StyleValues/ShadowStyleValue.cpp
     CSS/StyleValues/TextDecorationStyleValue.cpp
     CSS/StyleValues/TransformationStyleValue.cpp

+ 1 - 0
Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp

@@ -61,6 +61,7 @@
 #include <LibWeb/CSS/StyleValues/PercentageStyleValue.h>
 #include <LibWeb/CSS/StyleValues/PositionStyleValue.h>
 #include <LibWeb/CSS/StyleValues/RadialGradientStyleValue.h>
+#include <LibWeb/CSS/StyleValues/RectStyleValue.h>
 #include <LibWeb/CSS/StyleValues/ResolutionStyleValue.h>
 #include <LibWeb/CSS/StyleValues/ShadowStyleValue.h>
 #include <LibWeb/CSS/StyleValues/StringStyleValue.h>

+ 1 - 0
Userland/Libraries/LibWeb/CSS/ResolvedCSSStyleDeclaration.cpp

@@ -28,6 +28,7 @@
 #include <LibWeb/CSS/StyleValues/NumericStyleValue.h>
 #include <LibWeb/CSS/StyleValues/PercentageStyleValue.h>
 #include <LibWeb/CSS/StyleValues/PositionStyleValue.h>
+#include <LibWeb/CSS/StyleValues/RectStyleValue.h>
 #include <LibWeb/CSS/StyleValues/ShadowStyleValue.h>
 #include <LibWeb/CSS/StyleValues/TransformationStyleValue.h>
 #include <LibWeb/DOM/Document.h>

+ 1 - 0
Userland/Libraries/LibWeb/CSS/StyleProperties.cpp

@@ -15,6 +15,7 @@
 #include <LibWeb/CSS/StyleValues/GridTrackPlacementStyleValue.h>
 #include <LibWeb/CSS/StyleValues/GridTrackSizeStyleValue.h>
 #include <LibWeb/CSS/StyleValues/PercentageStyleValue.h>
+#include <LibWeb/CSS/StyleValues/RectStyleValue.h>
 #include <LibWeb/CSS/StyleValues/ShadowStyleValue.h>
 #include <LibWeb/CSS/StyleValues/StringStyleValue.h>
 #include <LibWeb/CSS/StyleValues/TransformationStyleValue.h>

+ 1 - 11
Userland/Libraries/LibWeb/CSS/StyleValue.cpp

@@ -44,6 +44,7 @@
 #include <LibWeb/CSS/StyleValues/PercentageStyleValue.h>
 #include <LibWeb/CSS/StyleValues/PositionStyleValue.h>
 #include <LibWeb/CSS/StyleValues/RadialGradientStyleValue.h>
+#include <LibWeb/CSS/StyleValues/RectStyleValue.h>
 #include <LibWeb/CSS/StyleValues/ResolutionStyleValue.h>
 #include <LibWeb/CSS/StyleValues/ShadowStyleValue.h>
 #include <LibWeb/CSS/StyleValues/StringStyleValue.h>
@@ -1148,11 +1149,6 @@ ErrorOr<void> PositionValue::serialize(StringBuilder& builder) const
     return {};
 }
 
-ErrorOr<String> RectStyleValue::to_string() const
-{
-    return String::formatted("rect({} {} {} {})", m_rect.top_edge, m_rect.right_edge, m_rect.bottom_edge, m_rect.left_edge);
-}
-
 bool StyleValueList::Properties::operator==(Properties const& other) const
 {
     return separator == other.separator && values.span() == other.values.span();
@@ -1181,12 +1177,6 @@ ErrorOr<String> StyleValueList::to_string() const
     return builder.to_string();
 }
 
-
-ValueComparingNonnullRefPtr<RectStyleValue> RectStyleValue::create(EdgeRect rect)
-{
-    return adopt_ref(*new RectStyleValue(rect));
-}
-
 Optional<CSS::Length> absolutized_length(CSS::Length const& length, CSSPixelRect const& viewport_rect, Gfx::FontPixelMetrics const& font_metrics, CSSPixels font_size, CSSPixels root_font_size, CSSPixels line_height, CSSPixels root_line_height)
 {
     if (length.is_px())

+ 0 - 22
Userland/Libraries/LibWeb/CSS/StyleValue.h

@@ -657,28 +657,6 @@ private:
     } m_properties;
 };
 
-class RectStyleValue : public StyleValueWithDefaultOperators<RectStyleValue> {
-public:
-    static ValueComparingNonnullRefPtr<RectStyleValue> create(EdgeRect rect);
-    virtual ~RectStyleValue() override = default;
-
-    EdgeRect rect() const { return m_rect; }
-    virtual ErrorOr<String> to_string() const override;
-    virtual bool has_rect() const override { return true; }
-    virtual EdgeRect to_rect() const override { return m_rect; }
-
-    bool properties_equal(RectStyleValue const& other) const { return m_rect == other.m_rect; }
-
-private:
-    explicit RectStyleValue(EdgeRect rect)
-        : StyleValueWithDefaultOperators(Type::Rect)
-        , m_rect(rect)
-    {
-    }
-
-    EdgeRect m_rect;
-};
-
 }
 
 template<>

+ 24 - 0
Userland/Libraries/LibWeb/CSS/StyleValues/RectStyleValue.cpp

@@ -0,0 +1,24 @@
+/*
+ * 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 "RectStyleValue.h"
+
+namespace Web::CSS {
+
+ValueComparingNonnullRefPtr<RectStyleValue> RectStyleValue::create(EdgeRect rect)
+{
+    return adopt_ref(*new RectStyleValue(rect));
+}
+
+ErrorOr<String> RectStyleValue::to_string() const
+{
+    return String::formatted("rect({} {} {} {})", m_rect.top_edge, m_rect.right_edge, m_rect.bottom_edge, m_rect.left_edge);
+}
+
+}

+ 38 - 0
Userland/Libraries/LibWeb/CSS/StyleValues/RectStyleValue.h

@@ -0,0 +1,38 @@
+/*
+ * 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/StyleValue.h>
+
+namespace Web::CSS {
+
+class RectStyleValue : public StyleValueWithDefaultOperators<RectStyleValue> {
+public:
+    static ValueComparingNonnullRefPtr<RectStyleValue> create(EdgeRect rect);
+    virtual ~RectStyleValue() override = default;
+
+    EdgeRect rect() const { return m_rect; }
+    virtual ErrorOr<String> to_string() const override;
+    virtual bool has_rect() const override { return true; }
+    virtual EdgeRect to_rect() const override { return m_rect; }
+
+    bool properties_equal(RectStyleValue const& other) const { return m_rect == other.m_rect; }
+
+private:
+    explicit RectStyleValue(EdgeRect rect)
+        : StyleValueWithDefaultOperators(Type::Rect)
+        , m_rect(rect)
+    {
+    }
+
+    EdgeRect m_rect;
+};
+
+}