diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index e6f8e35515..15d1d77efb 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -77,6 +77,7 @@ set(SOURCES CSS/StyleValues/FlexFlowStyleValue.cpp CSS/StyleValues/FlexStyleValue.cpp CSS/StyleValues/FontStyleValue.cpp + CSS/StyleValues/GridTemplateAreaStyleValue.cpp CSS/Supports.cpp CSS/SyntaxHighlighter/SyntaxHighlighter.cpp CSS/Time.cpp diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 0d393690fc..36684a0435 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index 311f9a45a9..7eb8e86cf0 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValue.cpp index 91155c7c41..05f2a8b08a 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValue.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleValue.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -1053,21 +1054,6 @@ ErrorOr GridTrackPlacementStyleValue::to_string() const return m_grid_track_placement.to_string(); } -ErrorOr GridTemplateAreaStyleValue::to_string() const -{ - StringBuilder builder; - for (size_t y = 0; y < m_grid_template_area.size(); ++y) { - for (size_t x = 0; x < m_grid_template_area[y].size(); ++x) { - TRY(builder.try_appendff("{}", m_grid_template_area[y][x])); - if (x < m_grid_template_area[y].size() - 1) - TRY(builder.try_append(" "sv)); - } - if (y < m_grid_template_area.size() - 1) - TRY(builder.try_append(", "sv)); - } - return builder.to_string(); -} - ErrorOr GridTrackSizeStyleValue::to_string() const { return m_grid_track_size_list.to_string(); @@ -1957,11 +1943,6 @@ ErrorOr StyleValueList::to_string() const return builder.to_string(); } -ValueComparingNonnullRefPtr GridTemplateAreaStyleValue::create(Vector> grid_template_area) -{ - return adopt_ref(*new GridTemplateAreaStyleValue(grid_template_area)); -} - ValueComparingNonnullRefPtr GridTrackPlacementStyleValue::create(CSS::GridTrackPlacement grid_track_placement) { return adopt_ref(*new GridTrackPlacementStyleValue(grid_track_placement)); diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValue.h index b30e6ea8c5..d3f82f66b2 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValue.h +++ b/Userland/Libraries/LibWeb/CSS/StyleValue.h @@ -661,26 +661,6 @@ private: NonnullOwnPtr m_expression; }; -class GridTemplateAreaStyleValue final : public StyleValueWithDefaultOperators { -public: - static ValueComparingNonnullRefPtr create(Vector> grid_template_area); - virtual ~GridTemplateAreaStyleValue() override = default; - - Vector> const& grid_template_area() const { return m_grid_template_area; } - virtual ErrorOr to_string() const override; - - bool properties_equal(GridTemplateAreaStyleValue const& other) const { return m_grid_template_area == other.m_grid_template_area; }; - -private: - explicit GridTemplateAreaStyleValue(Vector> grid_template_area) - : StyleValueWithDefaultOperators(Type::GridTemplateArea) - , m_grid_template_area(grid_template_area) - { - } - - Vector> m_grid_template_area; -}; - class GridTrackPlacementStyleValue final : public StyleValueWithDefaultOperators { public: static ValueComparingNonnullRefPtr create(CSS::GridTrackPlacement grid_track_placement); diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/GridTemplateAreaStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/GridTemplateAreaStyleValue.cpp new file mode 100644 index 0000000000..4177bef427 --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/GridTemplateAreaStyleValue.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Tobias Christiansen + * Copyright (c) 2021-2023, Sam Atkins + * Copyright (c) 2022-2023, MacDue + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include "GridTemplateAreaStyleValue.h" + +namespace Web::CSS { + +ValueComparingNonnullRefPtr GridTemplateAreaStyleValue::create(Vector> grid_template_area) +{ + return adopt_ref(*new GridTemplateAreaStyleValue(grid_template_area)); +} + +ErrorOr GridTemplateAreaStyleValue::to_string() const +{ + StringBuilder builder; + for (size_t y = 0; y < m_grid_template_area.size(); ++y) { + for (size_t x = 0; x < m_grid_template_area[y].size(); ++x) { + TRY(builder.try_appendff("{}", m_grid_template_area[y][x])); + if (x < m_grid_template_area[y].size() - 1) + TRY(builder.try_append(" "sv)); + } + if (y < m_grid_template_area.size() - 1) + TRY(builder.try_append(", "sv)); + } + return builder.to_string(); +} + +} diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/GridTemplateAreaStyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValues/GridTemplateAreaStyleValue.h new file mode 100644 index 0000000000..75dfbcca83 --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/GridTemplateAreaStyleValue.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Tobias Christiansen + * Copyright (c) 2021-2023, Sam Atkins + * Copyright (c) 2022-2023, MacDue + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Web::CSS { + +class GridTemplateAreaStyleValue final : public StyleValueWithDefaultOperators { +public: + static ValueComparingNonnullRefPtr create(Vector> grid_template_area); + virtual ~GridTemplateAreaStyleValue() override = default; + + Vector> const& grid_template_area() const { return m_grid_template_area; } + virtual ErrorOr to_string() const override; + + bool properties_equal(GridTemplateAreaStyleValue const& other) const { return m_grid_template_area == other.m_grid_template_area; }; + +private: + explicit GridTemplateAreaStyleValue(Vector> grid_template_area) + : StyleValueWithDefaultOperators(Type::GridTemplateArea) + , m_grid_template_area(grid_template_area) + { + } + + Vector> m_grid_template_area; +}; + +}