mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:47:34 +00:00
LibWeb: Add the CSSAnimation IDL object
This commit is contained in:
parent
3721a1a81c
commit
3a87c000c4
7 changed files with 88 additions and 1 deletions
39
Userland/Libraries/LibWeb/CSS/CSSAnimation.h
Normal file
39
Userland/Libraries/LibWeb/CSS/CSSAnimation.h
Normal file
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Matthew Olsson <mattco@serenityos.org>.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibWeb/Animations/Animation.h>
|
||||
#include <LibWeb/CSS/PropertyID.h>
|
||||
#include <LibWeb/CSS/StyleValue.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
// https://www.w3.org/TR/css-animations-2/#cssanimation
|
||||
class CSSAnimation : public Animations::Animation {
|
||||
WEB_PLATFORM_OBJECT(CSSAnimation, Animations::Animation);
|
||||
|
||||
public:
|
||||
static JS::NonnullGCPtr<CSSAnimation> create(JS::Realm&);
|
||||
|
||||
JS::GCPtr<DOM::Element> owning_element() const { return m_owning_element; }
|
||||
void set_owning_element(JS::GCPtr<DOM::Element> value) { m_owning_element = value; }
|
||||
|
||||
FlyString const& animation_name() const { return id(); }
|
||||
|
||||
private:
|
||||
explicit CSSAnimation(JS::Realm&);
|
||||
|
||||
virtual void initialize(JS::Realm&) override;
|
||||
virtual void visit_edges(Cell::Visitor&) override;
|
||||
|
||||
virtual bool is_css_animation() const override { return true; }
|
||||
|
||||
// https://www.w3.org/TR/css-animations-2/#owning-element-section
|
||||
JS::GCPtr<DOM::Element> m_owning_element;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue