1 module libwasm.bindings.Animation;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.AnimationEffect;
7 import libwasm.bindings.AnimationTimeline;
8 import libwasm.bindings.EventHandler;
9 import libwasm.bindings.EventTarget;
10 
11 @safe:
12 nothrow:
13 
14 struct Animation {
15   nothrow:
16   libwasm.bindings.EventTarget.EventTarget _parent;
17   alias _parent this;
18   this(Handle h) {
19     _parent = .EventTarget(h);
20   }
21   void id()(string id) {
22     Object_Call_string__void(this._parent, "id", id);
23   }
24   string id()() {
25     return Object_Getter__string(this._parent, "id");
26   }
27   void effect(T0)(scope auto ref Optional!(T0) effect) if (isTOrPointer!(T0, AnimationEffect)) {
28     Serialize_Object_VarArgCall!void(this._parent, "effect", "Optional!Handle", tuple(!effect.empty, cast(Handle)effect.front.handle));
29   }
30   auto effect()() {
31     return recastOpt!(AnimationEffect)(Object_Getter__OptionalHandle(this._parent, "effect"));
32   }
33   void timeline(T0)(scope auto ref Optional!(T0) timeline) if (isTOrPointer!(T0, AnimationTimeline)) {
34     Serialize_Object_VarArgCall!void(this._parent, "timeline", "Optional!Handle", tuple(!timeline.empty, cast(Handle)timeline.front.handle));
35   }
36   auto timeline()() {
37     return recastOpt!(AnimationTimeline)(Object_Getter__OptionalHandle(this._parent, "timeline"));
38   }
39   void startTime(T0)(scope auto ref Optional!(T0) startTime) if (isTOrPointer!(T0, double)) {
40     Serialize_Object_VarArgCall!void(this._parent, "startTime", "Optional!(double)", tuple(!startTime.empty, startTime.front));
41   }
42   Optional!(double) startTime()() {
43     return Object_Getter__OptionalDouble(this._parent, "startTime");
44   }
45   void currentTime(T0)(scope auto ref Optional!(T0) currentTime) if (isTOrPointer!(T0, double)) {
46     Serialize_Object_VarArgCall!void(this._parent, "currentTime", "Optional!(double)", tuple(!currentTime.empty, currentTime.front));
47   }
48   Optional!(double) currentTime()() {
49     return Object_Getter__OptionalDouble(this._parent, "currentTime");
50   }
51   void playbackRate()(double playbackRate) {
52     Object_Call_double__void(this._parent, "playbackRate", playbackRate);
53   }
54   double playbackRate()() {
55     return Object_Getter__double(this._parent, "playbackRate");
56   }
57   AnimationPlayState playState()() {
58     return Object_Getter__int(this._parent, "playState");
59   }
60   bool pending()() {
61     return Object_Getter__bool(this._parent, "pending");
62   }
63   auto ready()() {
64     return JsPromise!(Animation)(Object_Getter__Handle(this._parent, "ready"));
65   }
66   auto finished()() {
67     return JsPromise!(Animation)(Object_Getter__Handle(this._parent, "finished"));
68   }
69   void onfinish(T0)(scope auto ref Optional!(T0) onfinish) if (isTOrPointer!(T0, EventHandlerNonNull)) {
70     Object_Call_EventHandler__void(this._parent, "onfinish", !onfinish.empty, onfinish.front);
71   }
72   EventHandler onfinish()() {
73     return Object_Getter__EventHandler(this._parent, "onfinish");
74   }
75   void oncancel(T0)(scope auto ref Optional!(T0) oncancel) if (isTOrPointer!(T0, EventHandlerNonNull)) {
76     Object_Call_EventHandler__void(this._parent, "oncancel", !oncancel.empty, oncancel.front);
77   }
78   EventHandler oncancel()() {
79     return Object_Getter__EventHandler(this._parent, "oncancel");
80   }
81   void cancel()() {
82     Object_Call__void(this._parent, "cancel");
83   }
84   void finish()() {
85     Object_Call__void(this._parent, "finish");
86   }
87   void play()() {
88     Object_Call__void(this._parent, "play");
89   }
90   void pause()() {
91     Object_Call__void(this._parent, "pause");
92   }
93   void updatePlaybackRate()(double playbackRate) {
94     Object_Call_double__void(this._parent, "updatePlaybackRate", playbackRate);
95   }
96   void reverse()() {
97     Object_Call__void(this._parent, "reverse");
98   }
99   bool isRunningOnCompositor()() {
100     return Object_Getter__bool(this._parent, "isRunningOnCompositor");
101   }
102 }
103 enum AnimationPlayState {
104   idle,
105   running,
106   paused,
107   finished
108 }
109 
110