From 35859c0467c86a93a26bfa02f47ee86dadce02f8 Mon Sep 17 00:00:00 2001 From: Matthew Olsson Date: Sat, 4 Nov 2023 14:04:20 -0700 Subject: [PATCH] LibWeb: Add helpers to convert between FillMode and Direction enums --- .../LibWeb/Animations/AnimationEffect.cpp | 34 ++++++++++++++++++- .../LibWeb/Animations/AnimationEffect.h | 6 +++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp b/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp index c2cbad8cff..6214af5476 100644 --- a/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp +++ b/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Matthew Olsson + * Copyright (c) 2023-2024, Matthew Olsson * * SPDX-License-Identifier: BSD-2-Clause */ @@ -16,6 +16,38 @@ namespace Web::Animations { JS_DEFINE_ALLOCATOR(AnimationEffect); +Bindings::FillMode css_fill_mode_to_bindings_fill_mode(CSS::AnimationFillMode mode) +{ + switch (mode) { + case CSS::AnimationFillMode::Backwards: + return Bindings::FillMode::Backwards; + case CSS::AnimationFillMode::Both: + return Bindings::FillMode::Both; + case CSS::AnimationFillMode::Forwards: + return Bindings::FillMode::Forwards; + case CSS::AnimationFillMode::None: + return Bindings::FillMode::None; + default: + VERIFY_NOT_REACHED(); + } +} + +Bindings::PlaybackDirection css_animation_direction_to_bindings_playback_direction(CSS::AnimationDirection direction) +{ + switch (direction) { + case CSS::AnimationDirection::Alternate: + return Bindings::PlaybackDirection::Alternate; + case CSS::AnimationDirection::AlternateReverse: + return Bindings::PlaybackDirection::AlternateReverse; + case CSS::AnimationDirection::Normal: + return Bindings::PlaybackDirection::Normal; + case CSS::AnimationDirection::Reverse: + return Bindings::PlaybackDirection::Reverse; + default: + VERIFY_NOT_REACHED(); + } +} + JS::NonnullGCPtr AnimationEffect::create(JS::Realm& realm) { return realm.heap().allocate(realm, realm); diff --git a/Userland/Libraries/LibWeb/Animations/AnimationEffect.h b/Userland/Libraries/LibWeb/Animations/AnimationEffect.h index 7713e2d239..4156d92bb2 100644 --- a/Userland/Libraries/LibWeb/Animations/AnimationEffect.h +++ b/Userland/Libraries/LibWeb/Animations/AnimationEffect.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Matthew Olsson + * Copyright (c) 2023-2024, Matthew Olsson * * SPDX-License-Identifier: BSD-2-Clause */ @@ -12,6 +12,7 @@ #include #include #include +#include namespace Web::Animations { @@ -55,6 +56,9 @@ enum class AnimationDirection { Backwards, }; +Bindings::FillMode css_fill_mode_to_bindings_fill_mode(CSS::AnimationFillMode mode); +Bindings::PlaybackDirection css_animation_direction_to_bindings_playback_direction(CSS::AnimationDirection direction); + // https://www.w3.org/TR/web-animations-1/#the-animationeffect-interface class AnimationEffect : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(AnimationEffect, Bindings::PlatformObject);