1 module libwasm.bindings.ScreenOrientation;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.EventHandler;
7 import libwasm.bindings.EventTarget;
8 
9 @safe:
10 nothrow:
11 
12 enum OrientationLockType {
13   any,
14   natural,
15   landscape,
16   portrait,
17   portrait_primary,
18   portrait_secondary,
19   landscape_primary,
20   landscape_secondary
21 }
22 enum OrientationType {
23   portrait_primary,
24   portrait_secondary,
25   landscape_primary,
26   landscape_secondary
27 }
28 struct ScreenOrientation {
29   nothrow:
30   libwasm.bindings.EventTarget.EventTarget _parent;
31   alias _parent this;
32   this(Handle h) {
33     _parent = .EventTarget(h);
34   }
35   auto lock()(OrientationLockType orientation) {
36     return JsPromise!(void)(Object_Call_int__Handle(this._parent, "lock", orientation));
37   }
38   void unlock()() {
39     Object_Call__void(this._parent, "unlock");
40   }
41   OrientationType type()() {
42     return Object_Getter__int(this._parent, "type");
43   }
44   ushort angle()() {
45     return Object_Getter__ushort(this._parent, "angle");
46   }
47   void onchange(T0)(scope auto ref Optional!(T0) onchange) if (isTOrPointer!(T0, EventHandlerNonNull)) {
48     Object_Call_EventHandler__void(this._parent, "onchange", !onchange.empty, onchange.front);
49   }
50   EventHandler onchange()() {
51     return Object_Getter__EventHandler(this._parent, "onchange");
52   }
53 }
54 
55