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