mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:37:46 +00:00
LibWeb: Add new property 'text-decoration-style'
This patch makes the property 'text-decoration-style' known throughout all the places in LibWeb that care.
This commit is contained in:
parent
5348c67ba4
commit
69aac6ecd7
6 changed files with 57 additions and 0 deletions
|
@ -21,6 +21,7 @@ public:
|
||||||
static CSS::TextAlign text_align() { return CSS::TextAlign::Left; }
|
static CSS::TextAlign text_align() { return CSS::TextAlign::Left; }
|
||||||
static CSS::Position position() { return CSS::Position::Static; }
|
static CSS::Position position() { return CSS::Position::Static; }
|
||||||
static CSS::TextDecorationLine text_decoration_line() { return CSS::TextDecorationLine::None; }
|
static CSS::TextDecorationLine text_decoration_line() { return CSS::TextDecorationLine::None; }
|
||||||
|
static CSS::TextDecorationStyle text_decoration_style() { return CSS::TextDecorationStyle::Solid; }
|
||||||
static CSS::TextTransform text_transform() { return CSS::TextTransform::None; }
|
static CSS::TextTransform text_transform() { return CSS::TextTransform::None; }
|
||||||
static CSS::Display display() { return CSS::Display { CSS::Display::Outside::Inline, CSS::Display::Inside::Flow }; }
|
static CSS::Display display() { return CSS::Display { CSS::Display::Outside::Inline, CSS::Display::Inside::Flow }; }
|
||||||
static Color color() { return Color::Black; }
|
static Color color() { return Color::Black; }
|
||||||
|
@ -91,6 +92,7 @@ public:
|
||||||
Optional<int> const& z_index() const { return m_noninherited.z_index; }
|
Optional<int> const& z_index() const { return m_noninherited.z_index; }
|
||||||
CSS::TextAlign text_align() const { return m_inherited.text_align; }
|
CSS::TextAlign text_align() const { return m_inherited.text_align; }
|
||||||
CSS::TextDecorationLine text_decoration_line() const { return m_noninherited.text_decoration_line; }
|
CSS::TextDecorationLine text_decoration_line() const { return m_noninherited.text_decoration_line; }
|
||||||
|
CSS::TextDecorationStyle text_decoration_style() const { return m_noninherited.text_decoration_style; }
|
||||||
CSS::TextTransform text_transform() const { return m_inherited.text_transform; }
|
CSS::TextTransform text_transform() const { return m_inherited.text_transform; }
|
||||||
CSS::Position position() const { return m_noninherited.position; }
|
CSS::Position position() const { return m_noninherited.position; }
|
||||||
CSS::WhiteSpace white_space() const { return m_inherited.white_space; }
|
CSS::WhiteSpace white_space() const { return m_inherited.white_space; }
|
||||||
|
@ -168,6 +170,7 @@ protected:
|
||||||
CSS::Display display { InitialValues::display() };
|
CSS::Display display { InitialValues::display() };
|
||||||
Optional<int> z_index;
|
Optional<int> z_index;
|
||||||
CSS::TextDecorationLine text_decoration_line { InitialValues::text_decoration_line() };
|
CSS::TextDecorationLine text_decoration_line { InitialValues::text_decoration_line() };
|
||||||
|
CSS::TextDecorationStyle text_decoration_style { InitialValues::text_decoration_style() };
|
||||||
CSS::Position position { InitialValues::position() };
|
CSS::Position position { InitialValues::position() };
|
||||||
CSS::LengthPercentage width { Length::make_auto() };
|
CSS::LengthPercentage width { Length::make_auto() };
|
||||||
CSS::LengthPercentage min_width { Length::make_auto() };
|
CSS::LengthPercentage min_width { Length::make_auto() };
|
||||||
|
@ -219,6 +222,7 @@ public:
|
||||||
void set_z_index(Optional<int> value) { m_noninherited.z_index = value; }
|
void set_z_index(Optional<int> value) { m_noninherited.z_index = value; }
|
||||||
void set_text_align(CSS::TextAlign text_align) { m_inherited.text_align = text_align; }
|
void set_text_align(CSS::TextAlign text_align) { m_inherited.text_align = text_align; }
|
||||||
void set_text_decoration_line(CSS::TextDecorationLine value) { m_noninherited.text_decoration_line = value; }
|
void set_text_decoration_line(CSS::TextDecorationLine value) { m_noninherited.text_decoration_line = value; }
|
||||||
|
void set_text_decoration_style(CSS::TextDecorationStyle value) { m_noninherited.text_decoration_style = value; }
|
||||||
void set_text_transform(CSS::TextTransform value) { m_inherited.text_transform = value; }
|
void set_text_transform(CSS::TextTransform value) { m_inherited.text_transform = value; }
|
||||||
void set_position(CSS::Position position) { m_noninherited.position = position; }
|
void set_position(CSS::Position position) { m_noninherited.position = position; }
|
||||||
void set_white_space(CSS::WhiteSpace value) { m_inherited.white_space = value; }
|
void set_white_space(CSS::WhiteSpace value) { m_inherited.white_space = value; }
|
||||||
|
|
|
@ -163,6 +163,23 @@ static CSS::ValueID to_css_value_id(CSS::TextDecorationLine value)
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static CSS::ValueID to_css_value_id(CSS::TextDecorationStyle value)
|
||||||
|
{
|
||||||
|
switch (value) {
|
||||||
|
case TextDecorationStyle::Solid:
|
||||||
|
return CSS::ValueID::Solid;
|
||||||
|
case TextDecorationStyle::Double:
|
||||||
|
return CSS::ValueID::Double;
|
||||||
|
case TextDecorationStyle::Dotted:
|
||||||
|
return CSS::ValueID::Dotted;
|
||||||
|
case TextDecorationStyle::Dashed:
|
||||||
|
return CSS::ValueID::Dashed;
|
||||||
|
case TextDecorationStyle::Wavy:
|
||||||
|
return CSS::ValueID::Wavy;
|
||||||
|
}
|
||||||
|
VERIFY_NOT_REACHED();
|
||||||
|
}
|
||||||
|
|
||||||
static CSS::ValueID to_css_value_id(CSS::Cursor value)
|
static CSS::ValueID to_css_value_id(CSS::Cursor value)
|
||||||
{
|
{
|
||||||
switch (value) {
|
switch (value) {
|
||||||
|
@ -467,6 +484,8 @@ RefPtr<StyleValue> ResolvedCSSStyleDeclaration::style_value_for_property(Layout:
|
||||||
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_align()));
|
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_align()));
|
||||||
case CSS::PropertyID::TextDecorationLine:
|
case CSS::PropertyID::TextDecorationLine:
|
||||||
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_decoration_line()));
|
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_decoration_line()));
|
||||||
|
case CSS::PropertyID::TextDecorationStyle:
|
||||||
|
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_decoration_style()));
|
||||||
case CSS::PropertyID::TextTransform:
|
case CSS::PropertyID::TextTransform:
|
||||||
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_transform()));
|
return IdentifierStyleValue::create(to_css_value_id(layout_node.computed_values().text_transform()));
|
||||||
case CSS::PropertyID::Position:
|
case CSS::PropertyID::Position:
|
||||||
|
|
|
@ -645,6 +645,27 @@ Optional<CSS::TextDecorationLine> StyleProperties::text_decoration_line() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optional<CSS::TextDecorationStyle> StyleProperties::text_decoration_style() const
|
||||||
|
{
|
||||||
|
auto value = property(CSS::PropertyID::TextDecorationStyle);
|
||||||
|
if (!value.has_value())
|
||||||
|
return {};
|
||||||
|
switch (value.value()->to_identifier()) {
|
||||||
|
case CSS::ValueID::Solid:
|
||||||
|
return CSS::TextDecorationStyle::Solid;
|
||||||
|
case CSS::ValueID::Double:
|
||||||
|
return CSS::TextDecorationStyle::Double;
|
||||||
|
case CSS::ValueID::Dotted:
|
||||||
|
return CSS::TextDecorationStyle::Dotted;
|
||||||
|
case CSS::ValueID::Dashed:
|
||||||
|
return CSS::TextDecorationStyle::Dashed;
|
||||||
|
case CSS::ValueID::Wavy:
|
||||||
|
return CSS::TextDecorationStyle::Wavy;
|
||||||
|
default:
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Optional<CSS::TextTransform> StyleProperties::text_transform() const
|
Optional<CSS::TextTransform> StyleProperties::text_transform() const
|
||||||
{
|
{
|
||||||
auto value = property(CSS::PropertyID::TextTransform);
|
auto value = property(CSS::PropertyID::TextTransform);
|
||||||
|
|
|
@ -51,6 +51,7 @@ public:
|
||||||
Optional<CSS::WhiteSpace> white_space() const;
|
Optional<CSS::WhiteSpace> white_space() const;
|
||||||
Optional<CSS::LineStyle> line_style(CSS::PropertyID) const;
|
Optional<CSS::LineStyle> line_style(CSS::PropertyID) const;
|
||||||
Optional<CSS::TextDecorationLine> text_decoration_line() const;
|
Optional<CSS::TextDecorationLine> text_decoration_line() const;
|
||||||
|
Optional<CSS::TextDecorationStyle> text_decoration_style() const;
|
||||||
Optional<CSS::TextTransform> text_transform() const;
|
Optional<CSS::TextTransform> text_transform() const;
|
||||||
Optional<CSS::ListStyleType> list_style_type() const;
|
Optional<CSS::ListStyleType> list_style_type() const;
|
||||||
Optional<CSS::FlexDirection> flex_direction() const;
|
Optional<CSS::FlexDirection> flex_direction() const;
|
||||||
|
|
|
@ -233,6 +233,14 @@ enum class TextDecorationLine {
|
||||||
Blink,
|
Blink,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class TextDecorationStyle {
|
||||||
|
Solid,
|
||||||
|
Double,
|
||||||
|
Dotted,
|
||||||
|
Dashed,
|
||||||
|
Wavy,
|
||||||
|
};
|
||||||
|
|
||||||
enum class TextTransform {
|
enum class TextTransform {
|
||||||
None,
|
None,
|
||||||
Capitalize,
|
Capitalize,
|
||||||
|
|
|
@ -404,6 +404,10 @@ void NodeWithStyle::apply_style(const CSS::StyleProperties& specified_style)
|
||||||
if (text_decoration_line.has_value())
|
if (text_decoration_line.has_value())
|
||||||
computed_values.set_text_decoration_line(text_decoration_line.value());
|
computed_values.set_text_decoration_line(text_decoration_line.value());
|
||||||
|
|
||||||
|
auto text_decoration_style = specified_style.text_decoration_style();
|
||||||
|
if (text_decoration_style.has_value())
|
||||||
|
computed_values.set_text_decoration_style(text_decoration_style.value());
|
||||||
|
|
||||||
auto text_transform = specified_style.text_transform();
|
auto text_transform = specified_style.text_transform();
|
||||||
if (text_transform.has_value())
|
if (text_transform.has_value())
|
||||||
computed_values.set_text_transform(text_transform.value());
|
computed_values.set_text_transform(text_transform.value());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue