Introduce PointerEvent-related definitions
* Resolves https://youtrack.jetbrains.com/issue/KT-23932 * Backed by review https://upsource.jetbrains.com/kotlin/branch/KT-23932-POINTER-EVENT-FROM-REMOTE-IDL
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
namespace org.w3c.dom.pointerevents;
|
||||
|
||||
|
||||
// Downloaded from http://www.w3.org/TR/pointerevents/
|
||||
dictionary PointerEventInit : MouseEventInit {
|
||||
long pointerId = 0;
|
||||
double width = 1;
|
||||
double height = 1;
|
||||
float pressure = 0;
|
||||
float tangentialPressure = 0;
|
||||
long tiltX = 0;
|
||||
long tiltY = 0;
|
||||
long twist = 0;
|
||||
DOMString pointerType = "";
|
||||
boolean isPrimary = false;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional PointerEventInit eventInitDict), Exposed=Window]
|
||||
interface PointerEvent : MouseEvent {
|
||||
readonly attribute long pointerId;
|
||||
readonly attribute double width;
|
||||
readonly attribute double height;
|
||||
readonly attribute float pressure;
|
||||
readonly attribute float tangentialPressure;
|
||||
readonly attribute long tiltX;
|
||||
readonly attribute long tiltY;
|
||||
readonly attribute long twist;
|
||||
readonly attribute DOMString pointerType;
|
||||
readonly attribute boolean isPrimary;
|
||||
};
|
||||
|
||||
partial interface Element {
|
||||
void setPointerCapture(long pointerId);
|
||||
void releasePointerCapture(long pointerId);
|
||||
boolean hasPointerCapture(long pointerId);
|
||||
};
|
||||
|
||||
partial interface GlobalEventHandlers {
|
||||
attribute EventHandler ongotpointercapture;
|
||||
attribute EventHandler onlostpointercapture;
|
||||
attribute EventHandler onpointerdown;
|
||||
attribute EventHandler onpointermove;
|
||||
attribute EventHandler onpointerup;
|
||||
attribute EventHandler onpointercancel;
|
||||
attribute EventHandler onpointerover;
|
||||
attribute EventHandler onpointerout;
|
||||
attribute EventHandler onpointerenter;
|
||||
attribute EventHandler onpointerleave;
|
||||
};
|
||||
|
||||
partial interface Navigator {
|
||||
readonly attribute long maxTouchPoints;
|
||||
};
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.khronos.webgl.*
|
||||
import org.w3c.dom.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.khronos.webgl.*
|
||||
import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.khronos.webgl.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
@@ -74,6 +75,16 @@ public external open class Document : Node, GlobalEventHandlers, DocumentAndElem
|
||||
open val documentElement: Element?
|
||||
open val scrollingElement: Element?
|
||||
open val styleSheets: StyleSheetList
|
||||
override var ongotpointercapture: ((Event) -> dynamic)?
|
||||
override var onlostpointercapture: ((Event) -> dynamic)?
|
||||
override var onpointerdown: ((Event) -> dynamic)?
|
||||
override var onpointermove: ((Event) -> dynamic)?
|
||||
override var onpointerup: ((Event) -> dynamic)?
|
||||
override var onpointercancel: ((Event) -> dynamic)?
|
||||
override var onpointerover: ((Event) -> dynamic)?
|
||||
override var onpointerout: ((Event) -> dynamic)?
|
||||
override var onpointerenter: ((Event) -> dynamic)?
|
||||
override var onpointerleave: ((Event) -> dynamic)?
|
||||
override var onabort: ((Event) -> dynamic)?
|
||||
override var onblur: ((Event) -> dynamic)?
|
||||
override var oncancel: ((Event) -> dynamic)?
|
||||
@@ -2125,6 +2136,16 @@ public inline fun PromiseRejectionEventInit(promise: Promise<Any?>?, reason: Any
|
||||
* Exposes the JavaScript [GlobalEventHandlers](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers) to Kotlin
|
||||
*/
|
||||
public external interface GlobalEventHandlers {
|
||||
var ongotpointercapture: ((Event) -> dynamic)?
|
||||
var onlostpointercapture: ((Event) -> dynamic)?
|
||||
var onpointerdown: ((Event) -> dynamic)?
|
||||
var onpointermove: ((Event) -> dynamic)?
|
||||
var onpointerup: ((Event) -> dynamic)?
|
||||
var onpointercancel: ((Event) -> dynamic)?
|
||||
var onpointerover: ((Event) -> dynamic)?
|
||||
var onpointerout: ((Event) -> dynamic)?
|
||||
var onpointerenter: ((Event) -> dynamic)?
|
||||
var onpointerleave: ((Event) -> dynamic)?
|
||||
var onabort: ((Event) -> dynamic)?
|
||||
var onblur: ((Event) -> dynamic)?
|
||||
var oncancel: ((Event) -> dynamic)?
|
||||
@@ -2237,6 +2258,7 @@ public external interface WindowOrWorkerGlobalScope {
|
||||
*/
|
||||
public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware {
|
||||
open val serviceWorker: ServiceWorkerContainer
|
||||
open val maxTouchPoints: Int
|
||||
fun vibrate(pattern: dynamic): Boolean
|
||||
}
|
||||
|
||||
@@ -3199,6 +3221,9 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN
|
||||
open val clientWidth: Int
|
||||
open val clientHeight: Int
|
||||
fun requestFullscreen(): Promise<Unit>
|
||||
fun setPointerCapture(pointerId: Int): Unit
|
||||
fun releasePointerCapture(pointerId: Int): Unit
|
||||
fun hasPointerCapture(pointerId: Int): Boolean
|
||||
fun insertAdjacentHTML(position: String, text: String): Unit
|
||||
fun hasAttributes(): Boolean
|
||||
fun getAttributeNames(): Array<String>
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.khronos.webgl.*
|
||||
import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
* 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.pointerevents
|
||||
|
||||
import kotlin.js.*
|
||||
import org.khronos.webgl.*
|
||||
import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
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 PointerEventInit : MouseEventInit {
|
||||
var pointerId: Int? /* = 0 */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var width: Double? /* = 1.0 */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var height: Double? /* = 1.0 */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var pressure: Float? /* = 0f */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var tangentialPressure: Float? /* = 0f */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var tiltX: Int? /* = 0 */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var tiltY: Int? /* = 0 */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var twist: Int? /* = 0 */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var pointerType: String? /* = "" */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
var isPrimary: Boolean? /* = false */
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
}
|
||||
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, height: Double? = 1.0, pressure: Float? = 0f, tangentialPressure: Float? = 0f, tiltX: Int? = 0, tiltY: Int? = 0, twist: Int? = 0, pointerType: String? = "", isPrimary: Boolean? = false, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PointerEventInit {
|
||||
val o = js("({})")
|
||||
|
||||
o["pointerId"] = pointerId
|
||||
o["width"] = width
|
||||
o["height"] = height
|
||||
o["pressure"] = pressure
|
||||
o["tangentialPressure"] = tangentialPressure
|
||||
o["tiltX"] = tiltX
|
||||
o["tiltY"] = tiltY
|
||||
o["twist"] = twist
|
||||
o["pointerType"] = pointerType
|
||||
o["isPrimary"] = isPrimary
|
||||
o["screenX"] = screenX
|
||||
o["screenY"] = screenY
|
||||
o["clientX"] = clientX
|
||||
o["clientY"] = clientY
|
||||
o["button"] = button
|
||||
o["buttons"] = buttons
|
||||
o["relatedTarget"] = relatedTarget
|
||||
o["ctrlKey"] = ctrlKey
|
||||
o["shiftKey"] = shiftKey
|
||||
o["altKey"] = altKey
|
||||
o["metaKey"] = metaKey
|
||||
o["modifierAltGraph"] = modifierAltGraph
|
||||
o["modifierCapsLock"] = modifierCapsLock
|
||||
o["modifierFn"] = modifierFn
|
||||
o["modifierFnLock"] = modifierFnLock
|
||||
o["modifierHyper"] = modifierHyper
|
||||
o["modifierNumLock"] = modifierNumLock
|
||||
o["modifierScrollLock"] = modifierScrollLock
|
||||
o["modifierSuper"] = modifierSuper
|
||||
o["modifierSymbol"] = modifierSymbol
|
||||
o["modifierSymbolLock"] = modifierSymbolLock
|
||||
o["view"] = view
|
||||
o["detail"] = detail
|
||||
o["bubbles"] = bubbles
|
||||
o["cancelable"] = cancelable
|
||||
o["composed"] = composed
|
||||
|
||||
return o
|
||||
}
|
||||
|
||||
/**
|
||||
* Exposes the JavaScript [PointerEvent](https://developer.mozilla.org/en/docs/Web/API/PointerEvent) to Kotlin
|
||||
*/
|
||||
public external open class PointerEvent(type: String, eventInitDict: PointerEventInit = definedExternally) : MouseEvent {
|
||||
open val pointerId: Int
|
||||
open val width: Double
|
||||
open val height: Double
|
||||
open val pressure: Float
|
||||
open val tangentialPressure: Float
|
||||
open val tiltX: Int
|
||||
open val tiltY: Int
|
||||
open val twist: Int
|
||||
open val pointerType: String
|
||||
open val isPrimary: Boolean
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
import org.w3c.files.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.fetch.*
|
||||
import org.w3c.files.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.files.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.w3c.dom.*
|
||||
import org.w3c.dom.css.*
|
||||
import org.w3c.dom.events.*
|
||||
import org.w3c.dom.parsing.*
|
||||
import org.w3c.dom.pointerevents.*
|
||||
import org.w3c.dom.svg.*
|
||||
import org.w3c.dom.url.*
|
||||
import org.w3c.fetch.*
|
||||
|
||||
@@ -24,6 +24,8 @@ val urls = listOf(
|
||||
"http://www.w3.org/TR/geometry-1/" to "org.w3c.dom",
|
||||
"http://www.w3.org/TR/cssom-view/" to "org.w3c.dom",
|
||||
"http://www.w3.org/TR/uievents/" to "org.w3c.dom.events",
|
||||
"http://www.w3.org/TR/pointerevents/" to "org.w3c.dom.pointerevents",
|
||||
|
||||
"https://drafts.csswg.org/cssom/" to "org.w3c.dom.css",
|
||||
"http://www.w3.org/TR/DOM-Parsing/" to "org.w3c.dom.parsing",
|
||||
"https://raw.githubusercontent.com/whatwg/url/master/url.html" to "org.w3c.dom.url",
|
||||
|
||||
@@ -49,15 +49,18 @@ fun main(args: Array<String>) {
|
||||
w.appendln()
|
||||
w.appendln()
|
||||
|
||||
e.value.forEach { pair ->
|
||||
val (url) = pair
|
||||
e.value.forEach { (url) ->
|
||||
println("Loading $url...")
|
||||
|
||||
w.appendln("// Downloaded from $url")
|
||||
if (url.endsWith(".idl")) {
|
||||
w.appendln(URL(url).readText())
|
||||
} else {
|
||||
extractIDLText(url, w)
|
||||
val content = fetch(url)
|
||||
|
||||
if (content != null) {
|
||||
if (url.endsWith(".idl")) {
|
||||
w.appendln(content)
|
||||
} else {
|
||||
extractIDLText(content, w)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,9 +69,18 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun extractIDLText(url: String, out: Appendable) {
|
||||
// val soup = Jsoup.connect(url).validateTLSCertificates(false).ignoreHttpErrors(true).get()
|
||||
val soup = Jsoup.parse(URL(url).readText())
|
||||
private fun fetch(url: String): String? {
|
||||
try {
|
||||
return URL(url).readText()
|
||||
} catch (e: Exception) {
|
||||
println("failed to download ${url}, if it's not a local problem, revisit the list of downloaded entities")
|
||||
e.printStackTrace()
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
private fun extractIDLText(rawContent: String, out: Appendable) {
|
||||
val soup = Jsoup.parse(rawContent)
|
||||
fun append(it : Element) {
|
||||
if (!it.tag().preserveWhitespace()) {
|
||||
return append(Element(Tag.valueOf("pre"), it.baseUri()).appendChild(it))
|
||||
|
||||
Reference in New Issue
Block a user