diff options
author | Sam Atkins <atkinssj@serenityos.org> | 2023-03-24 17:07:57 +0000 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2023-03-25 16:56:04 +0000 |
commit | fba2dacc7a91e2c696f984da54626155b6e5371f (patch) | |
tree | b62fbe0b64ba6db9367271f15115d1727fb7b092 /Userland | |
parent | 9a8415116948b4ad72f95deb217b8bc8f82b755e (diff) | |
download | serenity-fba2dacc7a91e2c696f984da54626155b6e5371f.zip |
LibWeb: Split ListStyleStyleValue out of StyleValue.{h,cpp}
Diffstat (limited to 'Userland')
7 files changed, 76 insertions, 42 deletions
diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index b290750cbc..7c054dba37 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -87,6 +87,7 @@ set(SOURCES CSS/StyleValues/ImageStyleValue.cpp CSS/StyleValues/LengthStyleValue.cpp CSS/StyleValues/LinearGradientStyleValue.cpp + CSS/StyleValues/ListStyleStyleValue.cpp CSS/StyleValues/RadialGradientStyleValue.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 c16695e917..f8cc2e04c2 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -55,6 +55,7 @@ #include <LibWeb/CSS/StyleValues/InitialStyleValue.h> #include <LibWeb/CSS/StyleValues/LengthStyleValue.h> #include <LibWeb/CSS/StyleValues/LinearGradientStyleValue.h> +#include <LibWeb/CSS/StyleValues/ListStyleStyleValue.h> #include <LibWeb/CSS/StyleValues/RadialGradientStyleValue.h> #include <LibWeb/DOM/Document.h> #include <LibWeb/Dump.h> diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index ad047bbaf5..ef52ef8d10 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -39,6 +39,7 @@ #include <LibWeb/CSS/StyleValues/GridTrackPlacementStyleValue.h> #include <LibWeb/CSS/StyleValues/IdentifierStyleValue.h> #include <LibWeb/CSS/StyleValues/LengthStyleValue.h> +#include <LibWeb/CSS/StyleValues/ListStyleStyleValue.h> #include <LibWeb/DOM/Document.h> #include <LibWeb/DOM/Element.h> #include <LibWeb/FontCache.h> diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValue.cpp index f1118fc656..f2a59c3be6 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValue.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleValue.cpp @@ -38,6 +38,7 @@ #include <LibWeb/CSS/StyleValues/InitialStyleValue.h> #include <LibWeb/CSS/StyleValues/LengthStyleValue.h> #include <LibWeb/CSS/StyleValues/LinearGradientStyleValue.h> +#include <LibWeb/CSS/StyleValues/ListStyleStyleValue.h> #include <LibWeb/CSS/StyleValues/RadialGradientStyleValue.h> #include <LibWeb/DOM/Document.h> #include <LibWeb/HTML/BrowsingContext.h> @@ -1135,11 +1136,6 @@ ErrorOr<void> PositionValue::serialize(StringBuilder& builder) const return {}; } -ErrorOr<String> ListStyleStyleValue::to_string() const -{ - return String::formatted("{} {} {}", TRY(m_properties.position->to_string()), TRY(m_properties.image->to_string()), TRY(m_properties.style_type->to_string())); -} - ErrorOr<String> NumericStyleValue::to_string() const { return m_value.visit( diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValue.h index 4664a43036..f89379ef86 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValue.h +++ b/Userland/Libraries/LibWeb/CSS/StyleValue.h @@ -627,43 +627,6 @@ private: NonnullOwnPtr<CalcSum> m_expression; }; -class ListStyleStyleValue final : public StyleValueWithDefaultOperators<ListStyleStyleValue> { -public: - static ValueComparingNonnullRefPtr<ListStyleStyleValue> create( - ValueComparingNonnullRefPtr<StyleValue> position, - ValueComparingNonnullRefPtr<StyleValue> image, - ValueComparingNonnullRefPtr<StyleValue> style_type) - { - return adopt_ref(*new ListStyleStyleValue(move(position), move(image), move(style_type))); - } - virtual ~ListStyleStyleValue() override = default; - - ValueComparingNonnullRefPtr<StyleValue> position() const { return m_properties.position; } - ValueComparingNonnullRefPtr<StyleValue> image() const { return m_properties.image; } - ValueComparingNonnullRefPtr<StyleValue> style_type() const { return m_properties.style_type; } - - virtual ErrorOr<String> to_string() const override; - - bool properties_equal(ListStyleStyleValue const& other) const { return m_properties == other.m_properties; } - -private: - ListStyleStyleValue( - ValueComparingNonnullRefPtr<StyleValue> position, - ValueComparingNonnullRefPtr<StyleValue> image, - ValueComparingNonnullRefPtr<StyleValue> style_type) - : StyleValueWithDefaultOperators(Type::ListStyle) - , m_properties { .position = move(position), .image = move(image), .style_type = move(style_type) } - { - } - - struct Properties { - ValueComparingNonnullRefPtr<StyleValue> position; - ValueComparingNonnullRefPtr<StyleValue> image; - ValueComparingNonnullRefPtr<StyleValue> style_type; - bool operator==(Properties const&) const = default; - } m_properties; -}; - class NumericStyleValue : public StyleValueWithDefaultOperators<NumericStyleValue> { public: static ValueComparingNonnullRefPtr<NumericStyleValue> create_float(float value) diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.cpp new file mode 100644 index 0000000000..85a6f08e6a --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.cpp @@ -0,0 +1,19 @@ +/* + * 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 "ListStyleStyleValue.h" + +namespace Web::CSS { + +ErrorOr<String> ListStyleStyleValue::to_string() const +{ + return String::formatted("{} {} {}", TRY(m_properties.position->to_string()), TRY(m_properties.image->to_string()), TRY(m_properties.style_type->to_string())); +} + +} diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.h new file mode 100644 index 0000000000..7fca0868c3 --- /dev/null +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.h @@ -0,0 +1,53 @@ +/* + * 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 ListStyleStyleValue final : public StyleValueWithDefaultOperators<ListStyleStyleValue> { +public: + static ValueComparingNonnullRefPtr<ListStyleStyleValue> create( + ValueComparingNonnullRefPtr<StyleValue> position, + ValueComparingNonnullRefPtr<StyleValue> image, + ValueComparingNonnullRefPtr<StyleValue> style_type) + { + return adopt_ref(*new ListStyleStyleValue(move(position), move(image), move(style_type))); + } + virtual ~ListStyleStyleValue() override = default; + + ValueComparingNonnullRefPtr<StyleValue> position() const { return m_properties.position; } + ValueComparingNonnullRefPtr<StyleValue> image() const { return m_properties.image; } + ValueComparingNonnullRefPtr<StyleValue> style_type() const { return m_properties.style_type; } + + virtual ErrorOr<String> to_string() const override; + + bool properties_equal(ListStyleStyleValue const& other) const { return m_properties == other.m_properties; } + +private: + ListStyleStyleValue( + ValueComparingNonnullRefPtr<StyleValue> position, + ValueComparingNonnullRefPtr<StyleValue> image, + ValueComparingNonnullRefPtr<StyleValue> style_type) + : StyleValueWithDefaultOperators(Type::ListStyle) + , m_properties { .position = move(position), .image = move(image), .style_type = move(style_type) } + { + } + + struct Properties { + ValueComparingNonnullRefPtr<StyleValue> position; + ValueComparingNonnullRefPtr<StyleValue> image; + ValueComparingNonnullRefPtr<StyleValue> style_type; + bool operator==(Properties const&) const = default; + } m_properties; +}; + +} |