ladybird/Libraries/LibWeb/CSS/CSSMathValue.h
Sam Atkins 6c8876cdb8 LibWeb/CSS: Implement CSSMathValue
This is a base class for the various math functions, so it's not used
directly anywhere.
2025-08-29 11:57:10 +02:00

42 lines
954 B
C++

/*
* Copyright (c) 2025, Sam Atkins <sam@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/Bindings/CSSMathValuePrototype.h>
#include <LibWeb/CSS/CSSNumericValue.h>
namespace Web::CSS {
// https://drafts.css-houdini.org/css-typed-om-1/#cssmathvalue
class CSSMathValue : public CSSNumericValue {
WEB_PLATFORM_OBJECT(CSSMathValue, CSSNumericValue);
GC_DECLARE_ALLOCATOR(CSSMathValue);
public:
virtual ~CSSMathValue() override = default;
Bindings::CSSMathOperator operator_() const { return m_operator; }
enum class Nested : u8 {
No,
Yes,
};
enum class Parens : u8 {
With,
Without,
};
virtual String serialize_math_value(Nested, Parens) const = 0;
protected:
explicit CSSMathValue(JS::Realm&, Bindings::CSSMathOperator, NumericType);
virtual void initialize(JS::Realm&) override;
Bindings::CSSMathOperator m_operator;
};
}