ladybird/Libraries/LibWeb/CSS/StyleValues/AngleStyleValue.cpp
Tim Ledbetter 5bfbb7abe6 LibWeb: Preserve unit when serializing angle values
Previously, when serializing an angle value, we would always convert it
to degrees. We now canonicalize the angle value only when serializing
its computed value.
2025-03-20 16:59:27 +00:00

37 lines
975 B
C++

/*
* Copyright (c) 2018-2020, Andreas Kling <andreas@ladybird.org>
* Copyright (c) 2021-2024, Sam Atkins <sam@ladybird.org>
* Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
* Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "AngleStyleValue.h"
namespace Web::CSS {
AngleStyleValue::AngleStyleValue(Angle angle)
: CSSUnitValue(Type::Angle)
, m_angle(move(angle))
{
}
AngleStyleValue::~AngleStyleValue() = default;
String AngleStyleValue::to_string(SerializationMode serialization_mode) const
{
if (serialization_mode == SerializationMode::ResolvedValue)
return MUST(String::formatted("{}deg", m_angle.to_degrees()));
return m_angle.to_string();
}
bool AngleStyleValue::equals(CSSStyleValue const& other) const
{
if (type() != other.type())
return false;
auto const& other_angle = other.as_angle();
return m_angle == other_angle.m_angle;
}
}