ladybird/Libraries/LibWeb/CSS/StyleValues/TextUnderlinePositionStyleValue.cpp
Callum Law b0e3af7d10 LibWeb: Parse text-underline-position property
This introduces the `TextUnderlinePositionStyleValue` class, it is
possible to represent `text-underline-position` as a `StyleValueList`
but would have required ugly workarounds for either serialization or in
`ComputedProperties::text_underline_position`
2025-09-15 15:24:20 +01:00

25 lines
799 B
C++

/*
* Copyright (c) 2025, Callum Law <callumlaw1709@outlook.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/CSS/StyleValues/TextUnderlinePositionStyleValue.h>
namespace Web::CSS {
String TextUnderlinePositionStyleValue::to_string(SerializationMode) const
{
if (m_horizontal == TextUnderlinePositionHorizontal::Auto && m_vertical == TextUnderlinePositionVertical::Auto)
return "auto"_string;
if (m_vertical == TextUnderlinePositionVertical::Auto)
return MUST(String::from_utf8(CSS::to_string(m_horizontal)));
if (m_horizontal == TextUnderlinePositionHorizontal::Auto)
return MUST(String::from_utf8(CSS::to_string(m_vertical)));
return MUST(String::formatted("{} {}", CSS::to_string(m_horizontal), CSS::to_string(m_vertical)));
}
}