From 30dcbc306cdba56f378b5ff0ec179297c13999c1 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Sat, 30 Dec 2023 17:05:23 +0000 Subject: [PATCH] LibWeb: Make resolution calculable No tests unfortunately, because no CSS property we currently support accepts ``. --- .../Libraries/LibWeb/CSS/CalculatedOr.cpp | 5 +++ Userland/Libraries/LibWeb/CSS/CalculatedOr.h | 8 ++++ Userland/Libraries/LibWeb/CSS/Resolution.cpp | 5 +++ Userland/Libraries/LibWeb/CSS/Resolution.h | 4 ++ .../CSS/StyleValues/CalculatedStyleValue.cpp | 39 ++++++++++++++++++- .../CSS/StyleValues/CalculatedStyleValue.h | 7 +++- Userland/Libraries/LibWeb/Forward.h | 1 + 7 files changed, 67 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/CalculatedOr.cpp b/Userland/Libraries/LibWeb/CSS/CalculatedOr.cpp index cab98ec8eb..51d2a34f89 100644 --- a/Userland/Libraries/LibWeb/CSS/CalculatedOr.cpp +++ b/Userland/Libraries/LibWeb/CSS/CalculatedOr.cpp @@ -50,6 +50,11 @@ Percentage PercentageOrCalculated::resolve_calculated(NonnullRefPtrresolve_percentage().value(); } +Resolution ResolutionOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const&) const +{ + return calculated->resolve_resolution().value(); +} + Time TimeOrCalculated::resolve_calculated(NonnullRefPtr const& calculated, Layout::Node const&) const { return calculated->resolve_time().value(); diff --git a/Userland/Libraries/LibWeb/CSS/CalculatedOr.h b/Userland/Libraries/LibWeb/CSS/CalculatedOr.h index 1d946cfc47..1a200b68d2 100644 --- a/Userland/Libraries/LibWeb/CSS/CalculatedOr.h +++ b/Userland/Libraries/LibWeb/CSS/CalculatedOr.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -128,6 +129,13 @@ public: Percentage resolve_calculated(NonnullRefPtr const&, Layout::Node const&) const override; }; +class ResolutionOrCalculated : public CalculatedOr { +public: + using CalculatedOr::CalculatedOr; + + Resolution resolve_calculated(NonnullRefPtr const&, Layout::Node const&) const override; +}; + class TimeOrCalculated : public CalculatedOr