/* * Copyright (c) 2023, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #include "CalculatedOr.h" #include #include #include #include #include #include #include #include #include namespace Web::CSS { Angle AngleOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_angle({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } NonnullRefPtr AngleOrCalculated::create_style_value() const { return AngleStyleValue::create(value()); } Flex FlexOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_flex({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } NonnullRefPtr FlexOrCalculated::create_style_value() const { return FlexStyleValue::create(value()); } Frequency FrequencyOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_frequency({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } NonnullRefPtr FrequencyOrCalculated::create_style_value() const { return FrequencyStyleValue::create(value()); } i64 IntegerOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_integer({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } i64 IntegerOrCalculated::resolved(Length::ResolutionContext const& context) const { if (is_calculated()) return calculated()->resolve_integer({ .length_resolution_context = context }).value(); return value(); } NonnullRefPtr IntegerOrCalculated::create_style_value() const { return IntegerStyleValue::create(value()); } Length LengthOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_length({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } Length LengthOrCalculated::resolved(Length::ResolutionContext const& context) const { if (is_calculated()) return calculated()->resolve_length({ .length_resolution_context = context }).value(); return value(); } NonnullRefPtr LengthOrCalculated::create_style_value() const { return LengthStyleValue::create(value()); } double NumberOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_number({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } NonnullRefPtr NumberOrCalculated::create_style_value() const { return NumberStyleValue::create(value()); } Percentage PercentageOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_percentage({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } NonnullRefPtr PercentageOrCalculated::create_style_value() const { return PercentageStyleValue::create(value()); } Resolution ResolutionOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_resolution({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } Resolution ResolutionOrCalculated::resolved() const { if (is_calculated()) return calculated()->resolve_resolution({}).value(); return value(); } NonnullRefPtr ResolutionOrCalculated::create_style_value() const { return ResolutionStyleValue::create(value()); } Time TimeOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const& layout_node) const { return calculated->resolve_time({ .length_resolution_context = Length::ResolutionContext::for_layout_node(layout_node) }).value(); } NonnullRefPtr TimeOrCalculated::create_style_value() const { return TimeStyleValue::create(value()); } }