1 module libwasm.bindings.HTMLCanvasElement;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.Blob;
7 import libwasm.bindings.CanvasCaptureMediaStream;
8 import libwasm.bindings.File;
9 import libwasm.bindings.HTMLElement;
10 import libwasm.bindings.OffscreenCanvas;
11 
12 @safe:
13 nothrow:
14 
15 alias BlobCallback = void delegate(Optional!(Blob));
16 struct HTMLCanvasElement {
17   nothrow:
18   libwasm.bindings.HTMLElement.HTMLElement _parent;
19   alias _parent this;
20   this(Handle h) {
21     _parent = .HTMLElement(h);
22   }
23   void width()(uint width) {
24     Object_Call_uint__void(this._parent, "width", width);
25   }
26   uint width()() {
27     return Object_Getter__uint(this._parent, "width");
28   }
29   void height()(uint height) {
30     Object_Call_uint__void(this._parent, "height", height);
31   }
32   uint height()() {
33     return Object_Getter__uint(this._parent, "height");
34   }
35   auto getContext(T1)(string contextId, scope auto ref T1 contextOptions /* = null */) {
36     // Any
37     Handle _handle_contextOptions = getOrCreateHandle(contextOptions);
38     auto result = recastOpt!(nsISupports)(Serialize_Object_VarArgCall!(Optional!Handle)(this._parent, "getContext", "string;Handle", tuple(contextId, _handle_contextOptions)));
39     dropHandle!(T1)(_handle_contextOptions);
40     return result;
41   }
42   auto getContext()(string contextId) {
43     return recastOpt!(nsISupports)(Object_Call_string__OptionalHandle(this._parent, "getContext", contextId));
44   }
45   string toDataURL(T1)(string type /* = "" */, scope auto ref T1 encoderOptions) {
46     // Any
47     Handle _handle_encoderOptions = getOrCreateHandle(encoderOptions);
48     auto result = Serialize_Object_VarArgCall!string(this._parent, "toDataURL", "string;Handle", tuple(type, _handle_encoderOptions));
49     dropHandle!(T1)(_handle_encoderOptions);
50     return result;
51   }
52   string toDataURL()(string type /* = "" */) {
53     return Object_Call_string__string(this._parent, "toDataURL", type);
54   }
55   string toDataURL()() {
56     return Object_Getter__string(this._parent, "toDataURL");
57   }
58   void toBlob(T2)(BlobCallback _callback, string type /* = "" */, scope auto ref T2 encoderOptions) {
59     // Any
60     Handle _handle_encoderOptions = getOrCreateHandle(encoderOptions);
61     HTMLCanvasElement_toBlob(this._parent, _callback, type, _handle_encoderOptions);
62     dropHandle!(T2)(_handle_encoderOptions);
63   }
64   void toBlob()(BlobCallback _callback, string type /* = "" */) {
65     HTMLCanvasElement_toBlob_0(this._parent, _callback, type);
66   }
67   void toBlob()(BlobCallback _callback) {
68     HTMLCanvasElement_toBlob_1(this._parent, _callback);
69   }
70   void mozOpaque()(bool mozOpaque) {
71     Object_Call_bool__void(this._parent, "mozOpaque", mozOpaque);
72   }
73   bool mozOpaque()() {
74     return Object_Getter__bool(this._parent, "mozOpaque");
75   }
76   auto mozGetAsFile(T1)(string name, scope auto ref Optional!(T1) type /* = no!(string) */) if (isTOrPointer!(T1, string)) {
77     return File(Serialize_Object_VarArgCall!Handle(this._parent, "mozGetAsFile", "string;Optional!(string)", tuple(name, !type.empty, type.front)));
78   }
79   auto mozGetAsFile()(string name) {
80     return File(Object_Call_string__Handle(this._parent, "mozGetAsFile", name));
81   }
82   auto MozGetIPCContext()(string contextId) {
83     return recastOpt!(nsISupports)(Object_Call_string__OptionalHandle(this._parent, "MozGetIPCContext", contextId));
84   }
85   void mozPrintCallback(T0)(scope auto ref Optional!(T0) mozPrintCallback) if (isTOrPointer!(T0, PrintCallback)) {
86     HTMLCanvasElement_mozPrintCallback_Set(this._parent, !mozPrintCallback.empty, mozPrintCallback.front);
87   }
88   Optional!(PrintCallback) mozPrintCallback()() {
89     return HTMLCanvasElement_mozPrintCallback_Get(this._parent);
90   }
91   auto captureStream()(double frameRate) {
92     return CanvasCaptureMediaStream(Serialize_Object_VarArgCall!Handle(this._parent, "captureStream", "double", tuple(frameRate)));
93   }
94   auto captureStream()() {
95     return CanvasCaptureMediaStream(Object_Getter__Handle(this._parent, "captureStream"));
96   }
97   auto transferControlToOffscreen()() {
98     return OffscreenCanvas(Object_Getter__Handle(this._parent, "transferControlToOffscreen"));
99   }
100 }
101 struct MozCanvasPrintState {
102   nothrow:
103   JsHandle handle;
104   alias handle this;
105   this(Handle h) {
106     this.handle = JsHandle(h);
107   }
108   auto context()() {
109     return nsISupports(Object_Getter__Handle(this.handle, "context"));
110   }
111   void done()() {
112     Object_Call__void(this.handle, "done");
113   }
114 }
115 alias PrintCallback = void delegate(MozCanvasPrintState);
116 
117 
118 extern (C) void HTMLCanvasElement_toBlob(Handle, BlobCallback, string, Handle);
119 extern (C) void HTMLCanvasElement_toBlob_0(Handle, BlobCallback, string);
120 extern (C) void HTMLCanvasElement_toBlob_1(Handle, BlobCallback);
121 extern (C) void HTMLCanvasElement_mozPrintCallback_Set(Handle, bool, PrintCallback);
122 extern (C) Optional!(PrintCallback) HTMLCanvasElement_mozPrintCallback_Get(Handle);