Add support for Touch API in JS Stdlib
#KT-34948 fixed #KT-21445 fixed
This commit is contained in:
@@ -3962,4 +3962,32 @@ CSSPseudoElement implements GeometryUtils;
|
|||||||
Document implements GeometryUtils;
|
Document implements GeometryUtils;
|
||||||
|
|
||||||
typedef (Text or Element or CSSPseudoElement or Document) GeometryNode;
|
typedef (Text or Element or CSSPseudoElement or Document) GeometryNode;
|
||||||
|
// Downloaded from https://www.w3.org/TR/touch-events/
|
||||||
|
interface Touch {
|
||||||
|
readonly attribute long identifier;
|
||||||
|
readonly attribute EventTarget target;
|
||||||
|
readonly attribute long screenX;
|
||||||
|
readonly attribute long screenY;
|
||||||
|
readonly attribute long clientX;
|
||||||
|
readonly attribute long clientY;
|
||||||
|
readonly attribute long pageX;
|
||||||
|
readonly attribute long pageY;
|
||||||
|
};
|
||||||
|
interface TouchList {
|
||||||
|
readonly attribute unsigned long length;
|
||||||
|
getter Touch? item (unsigned long index);
|
||||||
|
};
|
||||||
|
interface TouchEvent : UIEvent {
|
||||||
|
readonly attribute TouchList touches;
|
||||||
|
readonly attribute TouchList targetTouches;
|
||||||
|
readonly attribute TouchList changedTouches;
|
||||||
|
readonly attribute boolean altKey;
|
||||||
|
readonly attribute boolean metaKey;
|
||||||
|
readonly attribute boolean ctrlKey;
|
||||||
|
readonly attribute boolean shiftKey;
|
||||||
|
};
|
||||||
|
partial interface Document {
|
||||||
|
Touch createTouch (WindowProxy view, EventTarget target, long identifier, long pageX, long pageY, long screenX, long screenY);
|
||||||
|
TouchList createTouchList (Touch... touches);
|
||||||
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4938,6 +4938,8 @@ public external open class Document : Node, GlobalEventHandlers, DocumentAndElem
|
|||||||
fun elementFromPoint(x: Double, y: Double): Element?
|
fun elementFromPoint(x: Double, y: Double): Element?
|
||||||
fun elementsFromPoint(x: Double, y: Double): Array<Element>
|
fun elementsFromPoint(x: Double, y: Double): Array<Element>
|
||||||
fun caretPositionFromPoint(x: Double, y: Double): CaretPosition?
|
fun caretPositionFromPoint(x: Double, y: Double): CaretPosition?
|
||||||
|
fun createTouch(view: Window, target: EventTarget, identifier: Int, pageX: Int, pageY: Int, screenX: Int, screenY: Int): Touch
|
||||||
|
fun createTouchList(vararg touches: Touch): TouchList
|
||||||
fun exitFullscreen(): Promise<Unit>
|
fun exitFullscreen(): Promise<Unit>
|
||||||
override fun getElementById(elementId: String): Element?
|
override fun getElementById(elementId: String): Element?
|
||||||
override fun prepend(vararg nodes: dynamic)
|
override fun prepend(vararg nodes: dynamic)
|
||||||
@@ -5926,6 +5928,45 @@ public external interface GeometryUtils {
|
|||||||
fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions = definedExternally): DOMPoint
|
fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions = definedExternally): DOMPoint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exposes the JavaScript [Touch](https://developer.mozilla.org/en/docs/Web/API/Touch) to Kotlin
|
||||||
|
*/
|
||||||
|
public external abstract class Touch {
|
||||||
|
open val identifier: Int
|
||||||
|
open val target: EventTarget
|
||||||
|
open val screenX: Int
|
||||||
|
open val screenY: Int
|
||||||
|
open val clientX: Int
|
||||||
|
open val clientY: Int
|
||||||
|
open val pageX: Int
|
||||||
|
open val pageY: Int
|
||||||
|
open val region: String?
|
||||||
|
}
|
||||||
|
|
||||||
|
public external abstract class TouchList : ItemArrayLike<Touch> {
|
||||||
|
override fun item(index: Int): Touch?
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline operator fun TouchList.get(index: Int): Touch? = asDynamic()[index]
|
||||||
|
|
||||||
|
public external open class TouchEvent : UIEvent {
|
||||||
|
open val touches: TouchList
|
||||||
|
open val targetTouches: TouchList
|
||||||
|
open val changedTouches: TouchList
|
||||||
|
open val altKey: Boolean
|
||||||
|
open val metaKey: Boolean
|
||||||
|
open val ctrlKey: Boolean
|
||||||
|
open val shiftKey: Boolean
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
val NONE: Short
|
||||||
|
val CAPTURING_PHASE: Short
|
||||||
|
val AT_TARGET: Short
|
||||||
|
val BUBBLING_PHASE: Short
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin
|
* Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ private val urls = listOf(
|
|||||||
"https://www.w3.org/TR/animation-timing/" to "org.w3c.dom",
|
"https://www.w3.org/TR/animation-timing/" to "org.w3c.dom",
|
||||||
"https://www.w3.org/TR/geometry-1/" to "org.w3c.dom",
|
"https://www.w3.org/TR/geometry-1/" to "org.w3c.dom",
|
||||||
"https://www.w3.org/TR/cssom-view/" to "org.w3c.dom",
|
"https://www.w3.org/TR/cssom-view/" to "org.w3c.dom",
|
||||||
|
"https://www.w3.org/TR/touch-events/" to "org.w3c.dom",
|
||||||
"https://www.w3.org/TR/uievents/" to "org.w3c.dom.events",
|
"https://www.w3.org/TR/uievents/" to "org.w3c.dom.events",
|
||||||
"https://www.w3.org/TR/pointerevents/" to "org.w3c.dom.pointerevents",
|
"https://www.w3.org/TR/pointerevents/" to "org.w3c.dom.pointerevents",
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user