1 module libwasm.bindings.WebComponents; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.Document; 7 8 @safe: 9 nothrow: 10 11 alias LifecycleAdoptedCallback = void delegate(Optional!(Document), Optional!(Document)); 12 alias LifecycleAttributeChangedCallback = void delegate(string, Optional!(string), Optional!(string), Optional!(string)); 13 struct LifecycleCallbacks { 14 nothrow: 15 JsHandle handle; 16 alias handle this; 17 this(Handle h) { 18 this.handle = JsHandle(h); 19 } 20 static auto create() { 21 return LifecycleCallbacks(libwasm_add__object()); 22 } 23 void connectedCallback()(LifecycleConnectedCallback connectedCallback) { 24 LifecycleCallbacks_connectedCallback_Set(this.handle, connectedCallback); 25 } 26 LifecycleConnectedCallback connectedCallback()() { 27 return LifecycleCallbacks_connectedCallback_Get(this.handle); 28 } 29 void disconnectedCallback()(LifecycleDisconnectedCallback disconnectedCallback) { 30 LifecycleCallbacks_disconnectedCallback_Set(this.handle, disconnectedCallback); 31 } 32 LifecycleDisconnectedCallback disconnectedCallback()() { 33 return LifecycleCallbacks_disconnectedCallback_Get(this.handle); 34 } 35 void adoptedCallback()(LifecycleAdoptedCallback adoptedCallback) { 36 LifecycleCallbacks_adoptedCallback_Set(this.handle, adoptedCallback); 37 } 38 LifecycleAdoptedCallback adoptedCallback()() { 39 return LifecycleCallbacks_adoptedCallback_Get(this.handle); 40 } 41 void attributeChangedCallback()(LifecycleAttributeChangedCallback attributeChangedCallback) { 42 LifecycleCallbacks_attributeChangedCallback_Set(this.handle, attributeChangedCallback); 43 } 44 LifecycleAttributeChangedCallback attributeChangedCallback()() { 45 return LifecycleCallbacks_attributeChangedCallback_Get(this.handle); 46 } 47 void getCustomInterfaceCallback()(LifecycleGetCustomInterfaceCallback getCustomInterfaceCallback) { 48 LifecycleCallbacks_getCustomInterfaceCallback_Set(this.handle, getCustomInterfaceCallback); 49 } 50 LifecycleGetCustomInterfaceCallback getCustomInterfaceCallback()() { 51 return LifecycleCallbacks_getCustomInterfaceCallback_Get(this.handle); 52 } 53 } 54 alias LifecycleConnectedCallback = void delegate(); 55 alias LifecycleDisconnectedCallback = void delegate(); 56 alias LifecycleGetCustomInterfaceCallback = Optional!(JsObject) delegate(Any); 57 58 59 extern (C) void LifecycleCallbacks_connectedCallback_Set(Handle, LifecycleConnectedCallback); 60 extern (C) LifecycleConnectedCallback LifecycleCallbacks_connectedCallback_Get(Handle); 61 extern (C) void LifecycleCallbacks_disconnectedCallback_Set(Handle, LifecycleDisconnectedCallback); 62 extern (C) LifecycleDisconnectedCallback LifecycleCallbacks_disconnectedCallback_Get(Handle); 63 extern (C) void LifecycleCallbacks_adoptedCallback_Set(Handle, LifecycleAdoptedCallback); 64 extern (C) LifecycleAdoptedCallback LifecycleCallbacks_adoptedCallback_Get(Handle); 65 extern (C) void LifecycleCallbacks_attributeChangedCallback_Set(Handle, LifecycleAttributeChangedCallback); 66 extern (C) LifecycleAttributeChangedCallback LifecycleCallbacks_attributeChangedCallback_Get(Handle); 67 extern (C) void LifecycleCallbacks_getCustomInterfaceCallback_Set(Handle, LifecycleGetCustomInterfaceCallback); 68 extern (C) LifecycleGetCustomInterfaceCallback LifecycleCallbacks_getCustomInterfaceCallback_Get(Handle);