mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-04-18 09:50:27 +00:00
The exact same two steps are repeated for all of these in CSSNumericValue. These steps are complicated enough that it makes sense to factor them out into some helpers.
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
/*
|
|
* Copyright (c) 2025, Sam Atkins <sam@ladybird.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/CSS/CSSMathValue.h>
|
|
|
|
namespace Web::CSS {
|
|
|
|
// https://drafts.css-houdini.org/css-typed-om-1/#cssmathmin
|
|
class CSSMathMin final : public CSSMathValue {
|
|
WEB_PLATFORM_OBJECT(CSSMathMin, CSSMathValue);
|
|
GC_DECLARE_ALLOCATOR(CSSMathMin);
|
|
|
|
public:
|
|
[[nodiscard]] static GC::Ref<CSSMathMin> create(JS::Realm&, NumericType, GC::Ref<CSSNumericArray>);
|
|
static WebIDL::ExceptionOr<GC::Ref<CSSMathMin>> construct_impl(JS::Realm&, Vector<CSSNumberish>);
|
|
static WebIDL::ExceptionOr<GC::Ref<CSSMathMin>> add_all_types_into_math_min(JS::Realm&, GC::RootVector<GC::Ref<CSSNumericValue>> const&);
|
|
|
|
virtual ~CSSMathMin() override;
|
|
|
|
virtual void initialize(JS::Realm&) override;
|
|
virtual void visit_edges(Visitor&) override;
|
|
|
|
GC::Ref<CSSNumericArray> values() const;
|
|
|
|
virtual void serialize_math_value(StringBuilder&, Nested, Parens) const override;
|
|
virtual bool is_equal_numeric_value(GC::Ref<CSSNumericValue> other) const override;
|
|
virtual Optional<SumValue> create_a_sum_value() const override;
|
|
|
|
virtual WebIDL::ExceptionOr<NonnullRefPtr<CalculationNode const>> create_calculation_node(CalculationContext const&) const override;
|
|
|
|
private:
|
|
CSSMathMin(JS::Realm&, NumericType, GC::Ref<CSSNumericArray>);
|
|
GC::Ref<CSSNumericArray> m_values;
|
|
};
|
|
|
|
}
|