Support ClipboardEvent in definitions generated from idl

This commit is contained in:
Shagen Ogandzhanian
2018-12-18 15:07:34 +01:00
parent d90a92ae06
commit ca4521d57d
19 changed files with 166 additions and 17 deletions
@@ -0,0 +1,47 @@
namespace org.w3c.dom.clipboard;
// Downloaded from https://w3c.github.io/clipboard-apis
dictionary ClipboardEventInit : EventInit {
DataTransfer? clipboardData = null;
};
[Constructor(DOMString type, optional ClipboardEventInit eventInitDict), Exposed=Window]
interface ClipboardEvent : Event {
readonly attribute DataTransfer? clipboardData;
};
partial interface Navigator {
[SecureContext, SameObject] readonly attribute Clipboard clipboard;
};
[SecureContext, Exposed=Window] interface Clipboard : EventTarget {
Promise<DataTransfer> read();
Promise<DOMString> readText();
Promise<void> write(DataTransfer data);
Promise<void> writeText(DOMString data);
};
dictionary ClipboardPermissionDescriptor : PermissionDescriptor {
boolean allowWithoutGesture = false;
};
dictionary ClipboardEventInit : EventInit {
DataTransfer? clipboardData = null;
};
[Constructor(DOMString type, optional ClipboardEventInit eventInitDict), Exposed=Window]
interface ClipboardEvent : Event {
readonly attribute DataTransfer? clipboardData;
};
partial interface Navigator {
[SecureContext, SameObject] readonly attribute Clipboard clipboard;
};
[SecureContext, Exposed=Window] interface Clipboard : EventTarget {
Promise<DataTransfer> read();
Promise<DOMString> readText();
Promise<void> write(DataTransfer data);
Promise<void> writeText(DOMString data);
};
dictionary ClipboardPermissionDescriptor : PermissionDescriptor {
boolean allowWithoutGesture = false;
};
@@ -12,6 +12,7 @@ package org.khronos.webgl
import kotlin.js.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -12,6 +12,7 @@ package org.w3c.css.masking
import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -0,0 +1,79 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!
// See libraries/tools/idl2k for details
@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
package org.w3c.dom.clipboard
import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
import org.w3c.dom.parsing.*
import org.w3c.dom.pointerevents.*
import org.w3c.dom.svg.*
import org.w3c.dom.url.*
import org.w3c.fetch.*
import org.w3c.files.*
import org.w3c.notifications.*
import org.w3c.performance.*
import org.w3c.workers.*
import org.w3c.xhr.*
public external interface ClipboardEventInit : EventInit {
var clipboardData: DataTransfer? /* = null */
get() = definedExternally
set(value) = definedExternally
}
@kotlin.internal.InlineOnly
public inline fun ClipboardEventInit(clipboardData: DataTransfer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ClipboardEventInit {
val o = js("({})")
o["clipboardData"] = clipboardData
o["bubbles"] = bubbles
o["cancelable"] = cancelable
o["composed"] = composed
return o
}
/**
* Exposes the JavaScript [ClipboardEvent](https://developer.mozilla.org/en/docs/Web/API/ClipboardEvent) to Kotlin
*/
public external open class ClipboardEvent(type: String, eventInitDict: ClipboardEventInit = definedExternally) : Event {
open val clipboardData: DataTransfer?
}
/**
* Exposes the JavaScript [Clipboard](https://developer.mozilla.org/en/docs/Web/API/Clipboard) to Kotlin
*/
public external abstract class Clipboard : EventTarget {
fun read(): Promise<DataTransfer>
fun readText(): Promise<String>
fun write(data: DataTransfer): Promise<Unit>
fun writeText(data: String): Promise<Unit>
}
public external interface ClipboardPermissionDescriptor {
var allowWithoutGesture: Boolean? /* = false */
get() = definedExternally
set(value) = definedExternally
}
@kotlin.internal.InlineOnly
public inline fun ClipboardPermissionDescriptor(allowWithoutGesture: Boolean? = false): ClipboardPermissionDescriptor {
val o = js("({})")
o["allowWithoutGesture"] = allowWithoutGesture
return o
}
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
import org.w3c.dom.parsing.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.mediacapture.*
import org.w3c.dom.parsing.*
+19 -17
View File
@@ -12,6 +12,7 @@ package org.w3c.dom
import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -26,6 +27,18 @@ import org.w3c.performance.*
import org.w3c.workers.*
import org.w3c.xhr.*
/**
* Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin
*/
public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware {
open val serviceWorker: ServiceWorkerContainer
open val maxTouchPoints: Int
open val mediaDevices: MediaDevices
open val clipboard: Clipboard
fun vibrate(pattern: dynamic): Boolean
fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (dynamic) -> Unit): Unit
}
/**
* Exposes the JavaScript [Document](https://developer.mozilla.org/en/docs/Web/API/Document) to Kotlin
*/
@@ -148,9 +161,9 @@ public external open class Document : Node, GlobalEventHandlers, DocumentAndElem
override var ontoggle: ((Event) -> dynamic)?
override var onvolumechange: ((Event) -> dynamic)?
override var onwaiting: ((Event) -> dynamic)?
override var oncopy: ((Event) -> dynamic)?
override var oncut: ((Event) -> dynamic)?
override var onpaste: ((Event) -> dynamic)?
override var oncopy: ((ClipboardEvent) -> dynamic)?
override var oncut: ((ClipboardEvent) -> dynamic)?
override var onpaste: ((ClipboardEvent) -> dynamic)?
override val fullscreenElement: Element?
override val children: HTMLCollection
override val firstElementChild: Element?
@@ -2233,9 +2246,9 @@ public external interface WindowEventHandlers {
}
public external interface DocumentAndElementEventHandlers {
var oncopy: ((Event) -> dynamic)?
var oncut: ((Event) -> dynamic)?
var onpaste: ((Event) -> dynamic)?
var oncopy: ((ClipboardEvent) -> dynamic)?
var oncut: ((ClipboardEvent) -> dynamic)?
var onpaste: ((ClipboardEvent) -> dynamic)?
}
/**
@@ -2255,17 +2268,6 @@ public external interface WindowOrWorkerGlobalScope {
fun createImageBitmap(image: dynamic, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions = definedExternally): Promise<ImageBitmap>
}
/**
* Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin
*/
public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware {
open val serviceWorker: ServiceWorkerContainer
open val maxTouchPoints: Int
open val mediaDevices: MediaDevices
fun vibrate(pattern: dynamic): Boolean
fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (dynamic) -> Unit): Unit
}
/**
* Exposes the JavaScript [NavigatorID](https://developer.mozilla.org/en/docs/Web/API/NavigatorID) to Kotlin
*/
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.parsing.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -13,6 +13,7 @@ import kotlin.js.*
import org.khronos.webgl.*
import org.w3c.css.masking.*
import org.w3c.dom.*
import org.w3c.dom.clipboard.*
import org.w3c.dom.css.*
import org.w3c.dom.events.*
import org.w3c.dom.mediacapture.*
@@ -31,6 +31,7 @@ val urls = listOf(
"https://w3c.github.io/mediacapture-main/" to "org.w3c.dom.mediacapture",
"http://www.w3.org/TR/DOM-Parsing/" to "org.w3c.dom.parsing",
"https://w3c.github.io/clipboard-apis" to "org.w3c.dom.clipboard",
"https://raw.githubusercontent.com/whatwg/url/master/url.html" to "org.w3c.dom.url",
"https://www.w3.org/TR/SVG2/single-page.html" to "org.w3c.dom.svg",
@@ -108,6 +109,11 @@ val eventSpecifierMapper = mapOf<String, String>(
"ondragstart" to "DragEvent",
"ondrop" to "DragEvent",
"oncopy" to "ClipboardEvent",
"oncut" to "ClipboardEvent",
"onpaste" to "ClipboardEvent",
"onfetch" to "FetchEvent",
"onblur" to "FocusEvent",