mirror of
https://github.com/RGBCube/serenity
synced 2025-07-23 13:17:36 +00:00
LibWeb: Replace Length::set_calculated_style() with ::make_calculated()
There's no need to modify the Length's calculated-value after creating it, so let's make it immutable. :^)
This commit is contained in:
parent
db04b5687d
commit
ce0a516e59
4 changed files with 12 additions and 18 deletions
|
@ -40,6 +40,13 @@ Length Length::make_px(float value)
|
|||
return Length(value, Type::Px);
|
||||
}
|
||||
|
||||
Length Length::make_calculated(NonnullRefPtr<CalculatedStyleValue> calculated_style_value)
|
||||
{
|
||||
Length length { 0, Type::Calculated };
|
||||
length.m_calculated_style = move(calculated_style_value);
|
||||
return length;
|
||||
}
|
||||
|
||||
Length Length::percentage_of(Percentage const& percentage) const
|
||||
{
|
||||
if (is_undefined_or_auto()) {
|
||||
|
@ -71,11 +78,6 @@ Length Length::resolved_or_zero(Layout::Node const& layout_node) const
|
|||
return resolved(make_px(0), layout_node);
|
||||
}
|
||||
|
||||
void Length::set_calculated_style(CalculatedStyleValue* value)
|
||||
{
|
||||
m_calculated_style = value;
|
||||
}
|
||||
|
||||
float Length::relative_length_to_px(Gfx::IntRect const& viewport_rect, Gfx::FontMetrics const& font_metrics, float root_font_size) const
|
||||
{
|
||||
switch (m_type) {
|
||||
|
|
|
@ -43,6 +43,7 @@ public:
|
|||
|
||||
static Length make_auto();
|
||||
static Length make_px(float value);
|
||||
static Length make_calculated(NonnullRefPtr<CalculatedStyleValue>);
|
||||
Length percentage_of(Percentage const&) const;
|
||||
|
||||
Length resolved(Length const& fallback_for_undefined, Layout::Node const& layout_node) const;
|
||||
|
@ -131,8 +132,6 @@ public:
|
|||
return !(*this == other);
|
||||
}
|
||||
|
||||
void set_calculated_style(CalculatedStyleValue* value);
|
||||
|
||||
float relative_length_to_px(Gfx::IntRect const& viewport_rect, Gfx::FontMetrics const& font_metrics, float root_font_size) const;
|
||||
|
||||
private:
|
||||
|
|
|
@ -773,9 +773,7 @@ void StyleComputer::compute_font(StyleProperties& style, DOM::Element const* ele
|
|||
maybe_length = font_size->to_length();
|
||||
|
||||
} else if (font_size->is_calculated()) {
|
||||
Length length = Length(0, Length::Type::Calculated);
|
||||
length.set_calculated_style(verify_cast<CalculatedStyleValue>(font_size.ptr()));
|
||||
maybe_length = length;
|
||||
maybe_length = Length::make_calculated(font_size->as_calculated());
|
||||
}
|
||||
if (maybe_length.has_value()) {
|
||||
// FIXME: Support font-size: calc(...)
|
||||
|
|
|
@ -54,11 +54,8 @@ Length StyleProperties::length_or_fallback(CSS::PropertyID id, Length const& fal
|
|||
return fallback;
|
||||
auto& value = maybe_value.value();
|
||||
|
||||
if (value->is_calculated()) {
|
||||
Length length = Length(0, Length::Type::Calculated);
|
||||
length.set_calculated_style(&value->as_calculated());
|
||||
return length;
|
||||
}
|
||||
if (value->is_calculated())
|
||||
return Length::make_calculated(value->as_calculated());
|
||||
|
||||
if (value->has_length())
|
||||
return value->to_length();
|
||||
|
@ -75,9 +72,7 @@ LengthPercentage StyleProperties::length_percentage_or_fallback(CSS::PropertyID
|
|||
|
||||
if (value->is_calculated()) {
|
||||
// FIXME: Handle percentages here
|
||||
Length length = Length(0, Length::Type::Calculated);
|
||||
length.set_calculated_style(&value->as_calculated());
|
||||
return length;
|
||||
return Length::make_calculated(value->as_calculated());
|
||||
}
|
||||
|
||||
if (value->is_percentage())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue