1 module spasm.bindings.clipboard; 2 3 import spasm.types; 4 import spasm.bindings.dom; 5 import spasm.bindings.html; 6 import spasm.bindings.permissions; 7 8 @safe: 9 nothrow: 10 11 struct Clipboard { 12 nothrow: 13 spasm.bindings.dom.EventTarget _parent; 14 alias _parent this; 15 this(Handle h) { 16 _parent = .EventTarget(h); 17 } 18 auto read()() { 19 return Promise!(DataTransfer)(Clipboard_read(this._parent)); 20 } 21 auto readText()() { 22 return Promise!(string)(Clipboard_readText(this._parent)); 23 } 24 auto write()(scope ref DataTransfer data) { 25 return Promise!(void)(Clipboard_write(this._parent, data.handle)); 26 } 27 auto writeText()(string data) { 28 return Promise!(void)(Clipboard_writeText(this._parent, data)); 29 } 30 } 31 struct ClipboardEvent { 32 nothrow: 33 spasm.bindings.dom.Event _parent; 34 alias _parent this; 35 this(Handle h) { 36 _parent = .Event(h); 37 } 38 auto clipboardData()() { 39 return ClipboardEvent_clipboardData_Get(this._parent); 40 } 41 } 42 struct ClipboardEventInit { 43 nothrow: 44 spasm.bindings.dom.EventInit _parent; 45 alias _parent this; 46 this(Handle h) { 47 _parent = .EventInit(h); 48 } 49 static auto create() { 50 return ClipboardEventInit(spasm_add__object()); 51 } 52 void clipboardData(T0)(scope auto ref Optional!(T0) clipboardData) if (isTOrPointer!(T0, DataTransfer)) { 53 ClipboardEventInit_clipboardData_Set(this._parent, !clipboardData.empty, clipboardData.front.handle); 54 } 55 auto clipboardData()() { 56 return ClipboardEventInit_clipboardData_Get(this._parent); 57 } 58 } 59 struct ClipboardPermissionDescriptor { 60 nothrow: 61 spasm.bindings.permissions.PermissionDescriptor _parent; 62 alias _parent this; 63 this(Handle h) { 64 _parent = .PermissionDescriptor(h); 65 } 66 static auto create() { 67 return ClipboardPermissionDescriptor(spasm_add__object()); 68 } 69 void allowWithoutGesture()(bool allowWithoutGesture) { 70 ClipboardPermissionDescriptor_allowWithoutGesture_Set(this._parent, allowWithoutGesture); 71 } 72 auto allowWithoutGesture()() { 73 return ClipboardPermissionDescriptor_allowWithoutGesture_Get(this._parent); 74 } 75 } 76 77 78 extern (C) Handle Clipboard_read(Handle); 79 extern (C) Handle Clipboard_readText(Handle); 80 extern (C) Handle Clipboard_write(Handle, Handle); 81 extern (C) Handle Clipboard_writeText(Handle, string); 82 extern (C) Optional!(DataTransfer) ClipboardEvent_clipboardData_Get(Handle); 83 extern (C) void ClipboardEventInit_clipboardData_Set(Handle, bool, Handle); 84 extern (C) Optional!(DataTransfer) ClipboardEventInit_clipboardData_Get(Handle); 85 extern (C) void ClipboardPermissionDescriptor_allowWithoutGesture_Set(Handle, bool); 86 extern (C) bool ClipboardPermissionDescriptor_allowWithoutGesture_Get(Handle);