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);