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