JS stubs: add CSSOM view specification and GEOMETRY spec

This commit is contained in:
Sergey Mashkov
2015-05-25 12:19:23 +03:00
parent 4fd1b46e91
commit 07a3233569
8 changed files with 996 additions and 14 deletions
-8
View File
@@ -200,19 +200,11 @@ public native trait HTMLElement : Element {
public native var lang: String
public native var dir: String
public native var style: CSSStyleDeclaration
public native var clientWidth: Double
public native var clientHeight: Double
public native var clientTop: Double
public native var clientLeft: Double
public native var offsetWidth: Double
public native var offsetHeight: Double
public native var offsetTop: Double
public native var offsetLeft: Double
public native var offsetParent: HTMLElement?
public native var scrollWidth: Double
public native var scrollHeight: Double
public native var scrollTop: Double
public native var scrollLeft: Double
public native var stylesheet: Stylesheet
public native var onblur: () -> Unit
public native var onclick: () -> Unit
@@ -869,7 +869,7 @@ native public interface CSSStyleDeclaration {
fun removeProperty(property: String): String = noImpl
}
native public interface PseudoElement {
native public interface PseudoElement : GeometryNode {
var cascadedStyle: CSSStyleDeclaration
get() = noImpl
set(value) = noImpl
@@ -882,6 +882,10 @@ native public interface PseudoElement {
var usedStyle: CSSStyleDeclaration
get() = noImpl
set(value) = noImpl
fun getBoxQuads(options: BoxQuadOptions = noImpl): Array<DOMQuad> = noImpl
fun convertQuadFromNode(quad: DOMQuad, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMPoint = noImpl
}
native public interface CSS {
@@ -56,6 +56,36 @@ native public open class MouseEvent(typeArg: String, mouseEventInitDict: MouseEv
var region: String?
get() = noImpl
set(value) = noImpl
// var screenX: Double
// get() = noImpl
// set(value) = noImpl
// var screenY: Double
// get() = noImpl
// set(value) = noImpl
var pageX: Double
get() = noImpl
set(value) = noImpl
var pageY: Double
get() = noImpl
set(value) = noImpl
// var clientX: Double
// get() = noImpl
// set(value) = noImpl
// var clientY: Double
// get() = noImpl
// set(value) = noImpl
// var x: Double
// get() = noImpl
// set(value) = noImpl
// var y: Double
// get() = noImpl
// set(value) = noImpl
var offsetX: Double
get() = noImpl
set(value) = noImpl
var offsetY: Double
get() = noImpl
set(value) = noImpl
fun getModifierState(keyArg: String): Boolean = noImpl
fun initMouseEvent(typeArg: String, bubblesArg: Boolean, cancelableArg: Boolean, viewArg: Window?, detailArg: Int, screenXArg: Int, screenYArg: Int, clientXArg: Int, clientYArg: Int, ctrlKeyArg: Boolean, altKeyArg: Boolean, shiftKeyArg: Boolean, metaKeyArg: Boolean, buttonArg: Short, relatedTargetArg: EventTarget?): Unit = noImpl
}
+368 -3
View File
@@ -67,7 +67,7 @@ native public interface DOMElementMap {
nativeSetter fun set(name: String, value: Element): Unit = noImpl
}
native public open class Document : Node {
native public open class Document : Node, GeometryNode {
var fullscreenEnabled: Boolean
get() = noImpl
set(value) = noImpl
@@ -459,6 +459,9 @@ native public open class Document : Node {
fun createTreeWalker(root: Node, whatToShow: Int = noImpl, filter: NodeFilter? = null): TreeWalker = noImpl
fun createTreeWalker(root: Node, whatToShow: Int = noImpl, filter: ((Node) -> Short)? = null): TreeWalker = noImpl
fun getSelection(): Selection = noImpl
fun elementFromPoint(x: Double, y: Double): Element? = noImpl
fun elementsFromPoint(x: Double, y: Double): Array<Element> = noImpl
fun caretPositionFromPoint(x: Double, y: Double): CaretPosition? = noImpl
fun getElementById(elementId: String): Element? = noImpl
fun prepend(vararg nodes: dynamic): Unit = noImpl
fun append(vararg nodes: dynamic): Unit = noImpl
@@ -466,6 +469,10 @@ native public open class Document : Node {
fun queryAll(relativeSelectors: String): dynamic = noImpl
fun querySelector(selectors: String): Element? = noImpl
fun querySelectorAll(selectors: String): NodeList = noImpl
fun getBoxQuads(options: BoxQuadOptions = noImpl): Array<DOMQuad> = noImpl
fun convertQuadFromNode(quad: DOMQuad, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMPoint = noImpl
}
native public open class XMLDocument : Document() {
@@ -551,6 +558,21 @@ native public interface HTMLElement : Element {
var commandChecked: Boolean?
get() = noImpl
set(value) = noImpl
var offsetParent: Element?
get() = noImpl
set(value) = noImpl
var offsetTop: Double
get() = noImpl
set(value) = noImpl
var offsetLeft: Double
get() = noImpl
set(value) = noImpl
var offsetWidth: Double
get() = noImpl
set(value) = noImpl
var offsetHeight: Double
get() = noImpl
set(value) = noImpl
var onabort: ((Event) -> dynamic)?
get() = noImpl
set(value) = noImpl
@@ -3098,6 +3120,42 @@ native public interface Window : EventTarget, UnionMessagePortOrWindow {
var applicationCache: ApplicationCache
get() = noImpl
set(value) = noImpl
var screen: Screen
get() = noImpl
set(value) = noImpl
var innerWidth: Double
get() = noImpl
set(value) = noImpl
var innerHeight: Double
get() = noImpl
set(value) = noImpl
var scrollX: Double
get() = noImpl
set(value) = noImpl
var pageXOffset: Double
get() = noImpl
set(value) = noImpl
var scrollY: Double
get() = noImpl
set(value) = noImpl
var pageYOffset: Double
get() = noImpl
set(value) = noImpl
var screenX: Double
get() = noImpl
set(value) = noImpl
var screenY: Double
get() = noImpl
set(value) = noImpl
var outerWidth: Double
get() = noImpl
set(value) = noImpl
var outerHeight: Double
get() = noImpl
set(value) = noImpl
var devicePixelRatio: Double
get() = noImpl
set(value) = noImpl
var onabort: ((Event) -> dynamic)?
get() = noImpl
set(value) = noImpl
@@ -3352,6 +3410,14 @@ native public interface Window : EventTarget, UnionMessagePortOrWindow {
fun captureEvents(): Unit = noImpl
fun releaseEvents(): Unit = noImpl
fun getSelection(): Selection = noImpl
fun matchMedia(query: String): MediaQueryList = noImpl
fun moveTo(x: Double, y: Double): Unit = noImpl
fun moveBy(x: Double, y: Double): Unit = noImpl
fun resizeTo(x: Double, y: Double): Unit = noImpl
fun resizeBy(x: Double, y: Double): Unit = noImpl
fun scroll(x: Double, y: Double, options: ScrollOptions = noImpl): Unit = noImpl
fun scrollTo(x: Double, y: Double, options: ScrollOptions = noImpl): Unit = noImpl
fun scrollBy(x: Double, y: Double, options: ScrollOptions = noImpl): Unit = noImpl
fun btoa(btoa: String): String = noImpl
fun atob(atob: String): String = noImpl
fun setTimeout(handler: () -> dynamic, timeout: Int = 0, vararg arguments: Any?): Int = noImpl
@@ -4187,6 +4253,12 @@ native public interface HTMLImageElement : HTMLElement, CanvasImageSource, Image
var currentSrc: String
get() = noImpl
set(value) = noImpl
var x: Double
get() = noImpl
set(value) = noImpl
var y: Double
get() = noImpl
set(value) = noImpl
}
native public interface HTMLPictureElement : HTMLElement {
@@ -4393,7 +4465,7 @@ native public interface DocumentType : Node {
fun remove(): Unit = noImpl
}
native public interface Element : Node, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction {
native public interface Element : Node, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction, GeometryNode {
var innerHTML: String
get() = noImpl
set(value) = noImpl
@@ -4424,6 +4496,30 @@ native public interface Element : Node, UnionElementOrHTMLCollection, UnionEleme
var attributes: NamedNodeMap
get() = noImpl
set(value) = noImpl
var scrollTop: dynamic
get() = noImpl
set(value) = noImpl
var scrollLeft: dynamic
get() = noImpl
set(value) = noImpl
var scrollWidth: Double
get() = noImpl
set(value) = noImpl
var scrollHeight: Double
get() = noImpl
set(value) = noImpl
var clientTop: Double
get() = noImpl
set(value) = noImpl
var clientLeft: Double
get() = noImpl
set(value) = noImpl
var clientWidth: Double
get() = noImpl
set(value) = noImpl
var clientHeight: Double
get() = noImpl
set(value) = noImpl
var children: HTMLCollection
get() = noImpl
set(value) = noImpl
@@ -4476,6 +4572,10 @@ native public interface Element : Node, UnionElementOrHTMLCollection, UnionEleme
fun getElementsByTagName(localName: String): HTMLCollection = noImpl
fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection = noImpl
fun getElementsByClassName(classNames: String): HTMLCollection = noImpl
fun getClientRects(): dynamic = noImpl
fun getBoundingClientRect(): DOMRect = noImpl
fun scrollIntoView(): Unit = noImpl
fun scrollIntoView(top: Boolean, options: ScrollOptions = noImpl): Unit = noImpl
fun prepend(vararg nodes: dynamic): Unit = noImpl
fun append(vararg nodes: dynamic): Unit = noImpl
fun query(relativeSelectors: String): Element? = noImpl
@@ -4486,6 +4586,10 @@ native public interface Element : Node, UnionElementOrHTMLCollection, UnionEleme
fun after(vararg nodes: dynamic): Unit = noImpl
fun replaceWith(vararg nodes: dynamic): Unit = noImpl
fun remove(): Unit = noImpl
fun getBoxQuads(options: BoxQuadOptions = noImpl): Array<DOMQuad> = noImpl
fun convertQuadFromNode(quad: DOMQuad, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMPoint = noImpl
}
native public interface NamedNodeMap {
@@ -4557,11 +4661,15 @@ native public interface CharacterData : Node {
fun remove(): Unit = noImpl
}
native public open class Text(data: String = "") : CharacterData {
native public open class Text(data: String = "") : CharacterData, GeometryNode {
var wholeText: String
get() = noImpl
set(value) = noImpl
fun splitText(offset: Int): Text = noImpl
fun getBoxQuads(options: BoxQuadOptions = noImpl): Array<DOMQuad> = noImpl
fun convertQuadFromNode(quad: DOMQuad, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMQuad = noImpl
fun convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions = noImpl): DOMPoint = noImpl
}
native public interface ProcessingInstruction : CharacterData, UnionElementOrProcessingInstruction {
@@ -4616,6 +4724,8 @@ native public open class Range {
fun isPointInRange(node: Node, offset: Int): Boolean = noImpl
fun comparePoint(node: Node, offset: Int): Short = noImpl
fun intersectsNode(node: Node): Boolean = noImpl
fun getClientRects(): dynamic = noImpl
fun getBoundingClientRect(): DOMRect = noImpl
companion object {
val START_TO_START: Short = 0
@@ -4768,6 +4878,258 @@ native public open class EditingInputEventInit : EventInit() {
var value: String
}
native public open class DOMPointReadOnly(x: Double, y: Double, z: Double, w: Double) {
var x: Double
get() = noImpl
set(value) = noImpl
var y: Double
get() = noImpl
set(value) = noImpl
var z: Double
get() = noImpl
set(value) = noImpl
var w: Double
get() = noImpl
set(value) = noImpl
fun matrixTransform(matrix: DOMMatrixReadOnly): DOMPoint = noImpl
}
native public open class DOMPoint(point: DOMPointInit = noImpl) : DOMPointReadOnly(noImpl, noImpl, noImpl, noImpl) {
}
native public open class DOMPointInit {
var x: Double = 0.0
var y: Double = 0.0
var z: Double = 0.0
var w: Double = 1.0
}
native public open class DOMRect(x: Double = 0.0, y: Double = 0.0, width: Double = 0.0, height: Double = 0.0) : DOMRectReadOnly(x, y, width, height) {
}
native public open class DOMRectReadOnly(x: Double, y: Double, width: Double, height: Double) {
var x: Double
get() = noImpl
set(value) = noImpl
var y: Double
get() = noImpl
set(value) = noImpl
var width: Double
get() = noImpl
set(value) = noImpl
var height: Double
get() = noImpl
set(value) = noImpl
var top: Double
get() = noImpl
set(value) = noImpl
var right: Double
get() = noImpl
set(value) = noImpl
var bottom: Double
get() = noImpl
set(value) = noImpl
var left: Double
get() = noImpl
set(value) = noImpl
}
native public open class DOMRectInit {
var x: Double = 0.0
var y: Double = 0.0
var width: Double = 0.0
var height: Double = 0.0
}
native public open class DOMQuad(p1: DOMPointInit = noImpl, p2: DOMPointInit = noImpl, p3: DOMPointInit = noImpl, p4: DOMPointInit = noImpl) {
var p1: DOMPoint
get() = noImpl
set(value) = noImpl
var p2: DOMPoint
get() = noImpl
set(value) = noImpl
var p3: DOMPoint
get() = noImpl
set(value) = noImpl
var p4: DOMPoint
get() = noImpl
set(value) = noImpl
var bounds: DOMRectReadOnly
get() = noImpl
set(value) = noImpl
}
native public open class DOMMatrixReadOnly(numberSequence: Array<Double>) {
var a: Double
get() = noImpl
set(value) = noImpl
var b: Double
get() = noImpl
set(value) = noImpl
var c: Double
get() = noImpl
set(value) = noImpl
var d: Double
get() = noImpl
set(value) = noImpl
var e: Double
get() = noImpl
set(value) = noImpl
var f: Double
get() = noImpl
set(value) = noImpl
var m11: Double
get() = noImpl
set(value) = noImpl
var m12: Double
get() = noImpl
set(value) = noImpl
var m13: Double
get() = noImpl
set(value) = noImpl
var m14: Double
get() = noImpl
set(value) = noImpl
var m21: Double
get() = noImpl
set(value) = noImpl
var m22: Double
get() = noImpl
set(value) = noImpl
var m23: Double
get() = noImpl
set(value) = noImpl
var m24: Double
get() = noImpl
set(value) = noImpl
var m31: Double
get() = noImpl
set(value) = noImpl
var m32: Double
get() = noImpl
set(value) = noImpl
var m33: Double
get() = noImpl
set(value) = noImpl
var m34: Double
get() = noImpl
set(value) = noImpl
var m41: Double
get() = noImpl
set(value) = noImpl
var m42: Double
get() = noImpl
set(value) = noImpl
var m43: Double
get() = noImpl
set(value) = noImpl
var m44: Double
get() = noImpl
set(value) = noImpl
var is2D: Boolean
get() = noImpl
set(value) = noImpl
var isIdentity: Boolean
get() = noImpl
set(value) = noImpl
fun translate(tx: Double, ty: Double, tz: Double = 0.0): DOMMatrix = noImpl
fun scale(scale: Double, originX: Double = 0.0, originY: Double = 0.0): DOMMatrix = noImpl
fun scale3d(scale: Double, originX: Double = 0.0, originY: Double = 0.0, originZ: Double = 0.0): DOMMatrix = noImpl
fun scaleNonUniform(scaleX: Double, scaleY: Double = 1.0, scaleZ: Double = 1.0, originX: Double = 0.0, originY: Double = 0.0, originZ: Double = 0.0): DOMMatrix = noImpl
fun rotate(angle: Double, originX: Double = 0.0, originY: Double = 0.0): DOMMatrix = noImpl
fun rotateFromVector(x: Double, y: Double): DOMMatrix = noImpl
fun rotateAxisAngle(x: Double, y: Double, z: Double, angle: Double): DOMMatrix = noImpl
fun skewX(sx: Double): DOMMatrix = noImpl
fun skewY(sy: Double): DOMMatrix = noImpl
fun multiply(other: DOMMatrix): DOMMatrix = noImpl
fun flipX(): DOMMatrix = noImpl
fun flipY(): DOMMatrix = noImpl
fun inverse(): DOMMatrix = noImpl
fun transformPoint(point: DOMPointInit = noImpl): DOMPoint = noImpl
fun toFloat32Array(): Float32Array = noImpl
fun toFloat64Array(): Float64Array = noImpl
}
native public open class DOMMatrix : DOMMatrixReadOnly(noImpl) {
fun multiplySelf(other: DOMMatrix): DOMMatrix = noImpl
fun preMultiplySelf(other: DOMMatrix): DOMMatrix = noImpl
fun translateSelf(tx: Double, ty: Double, tz: Double = 0.0): DOMMatrix = noImpl
fun scaleSelf(scale: Double, originX: Double = 0.0, originY: Double = 0.0): DOMMatrix = noImpl
fun scale3dSelf(scale: Double, originX: Double = 0.0, originY: Double = 0.0, originZ: Double = 0.0): DOMMatrix = noImpl
fun scaleNonUniformSelf(scaleX: Double, scaleY: Double = 1.0, scaleZ: Double = 1.0, originX: Double = 0.0, originY: Double = 0.0, originZ: Double = 0.0): DOMMatrix = noImpl
fun rotateSelf(angle: Double, originX: Double = 0.0, originY: Double = 0.0): DOMMatrix = noImpl
fun rotateFromVectorSelf(x: Double, y: Double): DOMMatrix = noImpl
fun rotateAxisAngleSelf(x: Double, y: Double, z: Double, angle: Double): DOMMatrix = noImpl
fun skewXSelf(sx: Double): DOMMatrix = noImpl
fun skewYSelf(sy: Double): DOMMatrix = noImpl
fun invertSelf(): DOMMatrix = noImpl
fun setMatrixValue(transformList: String): DOMMatrix = noImpl
}
native public open class ScrollOptions {
var behavior: String = "auto"
}
native public interface MediaQueryList {
var media: String
get() = noImpl
set(value) = noImpl
var matches: Boolean
get() = noImpl
set(value) = noImpl
fun addListener(listener: (MediaQueryList) -> Unit): Unit = noImpl
fun removeListener(listener: (MediaQueryList) -> Unit): Unit = noImpl
}
native public interface Screen {
var availWidth: Double
get() = noImpl
set(value) = noImpl
var availHeight: Double
get() = noImpl
set(value) = noImpl
var width: Double
get() = noImpl
set(value) = noImpl
var height: Double
get() = noImpl
set(value) = noImpl
var colorDepth: Int
get() = noImpl
set(value) = noImpl
var pixelDepth: Int
get() = noImpl
set(value) = noImpl
}
native public interface CaretPosition {
var offsetNode: Node
get() = noImpl
set(value) = noImpl
var offset: Int
get() = noImpl
set(value) = noImpl
fun getClientRect(): DOMRect? = noImpl
}
native public open class ScrollOptionsHorizontal : ScrollOptions() {
var x: Double
}
native public open class ScrollOptionsVertical : ScrollOptions() {
var y: Double
}
native public open class BoxQuadOptions {
var box: String = "border"
var relativeTo: GeometryNode
}
native public open class ConvertCoordinateOptions {
var fromBox: String = "border"
var toBox: String = "border"
}
native public marker interface UnionElementOrHTMLCollection {
}
@@ -4804,3 +5166,6 @@ native public marker interface CanvasImageSource {
native public marker interface ImageBitmapSource {
}
native public marker interface GeometryNode {
}
+574
View File
@@ -5111,4 +5111,578 @@ partial interface Window {
};
callback FrameRequestCallback = void (DOMHighResTimeStamp time);
// Downloaded from http://www.w3.org/TR/geometry-1/
[Constructor(unrestricted double x, unrestricted double y,
unrestricted double z, unrestricted double w),
Exposed=(Window,Worker)]
interface DOMPointReadOnly {
readonly attribute unrestricted double x;
readonly attribute unrestricted double y;
readonly attribute unrestricted double z;
readonly attribute unrestricted double w;
DOMPoint matrixTransform(DOMMatrixReadOnly matrix);
};
[Constructor(optional DOMPointInit point),
Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double z = 0, optional unrestricted double w = 1),
Exposed=(Window,Worker)]
interface DOMPoint : DOMPointReadOnly {
inherit attribute unrestricted double x;
inherit attribute unrestricted double y;
inherit attribute unrestricted double z;
inherit attribute unrestricted double w;
};
dictionary DOMPointInit {
unrestricted double x = 0;
unrestricted double y = 0;
unrestricted double z = 0;
unrestricted double w = 1;
};
[Constructor(unrestricted double x = 0, unrestricted double y = 0,
unrestricted double width = 0, unrestricted double height = 0),
Exposed=(Window,Worker)]
interface DOMRect : DOMRectReadOnly {
inherit attribute unrestricted double x;
inherit attribute unrestricted double y;
inherit attribute unrestricted double width;
inherit attribute unrestricted double height;
};
[Constructor(unrestricted double x, unrestricted double y,
unrestricted double width, unrestricted double height),
Exposed=(Window,Worker)]
interface DOMRectReadOnly {
readonly attribute unrestricted double x;
readonly attribute unrestricted double y;
readonly attribute unrestricted double width;
readonly attribute unrestricted double height;
readonly attribute unrestricted double top;
readonly attribute unrestricted double right;
readonly attribute unrestricted double bottom;
readonly attribute unrestricted double left;
};
dictionary DOMRectInit {
unrestricted double x = 0;
unrestricted double y = 0;
unrestricted double width = 0;
unrestricted double height = 0;
};
[NoInterfaceObject,
ArrayClass]
interface DOMRectList {
readonly attribute unsigned long length;
getter DOMRect? item(unsigned long index);
};
[Constructor(optional DOMPointInit p1, optional DOMPointInit p2,
optional DOMPointInit p3, optional DOMPointInit p4),
Constructor(optional DOMRectInit rect),
Exposed=(Window,Worker)]
interface DOMQuad {
[SameObject] readonly attribute DOMPoint p1;
[SameObject] readonly attribute DOMPoint p2;
[SameObject] readonly attribute DOMPoint p3;
[SameObject] readonly attribute DOMPoint p4;
[SameObject] readonly attribute DOMRectReadOnly bounds;
};
[Constructor(sequence<unrestricted double> numberSequence),
Exposed=(Window,Worker)]
interface DOMMatrixReadOnly {
// These attributes are simple aliases for certain elements of the 4x4 matrix
readonly attribute unrestricted double a;
readonly attribute unrestricted double b;
readonly attribute unrestricted double c;
readonly attribute unrestricted double d;
readonly attribute unrestricted double e;
readonly attribute unrestricted double f;
readonly attribute unrestricted double m11;
readonly attribute unrestricted double m12;
readonly attribute unrestricted double m13;
readonly attribute unrestricted double m14;
readonly attribute unrestricted double m21;
readonly attribute unrestricted double m22;
readonly attribute unrestricted double m23;
readonly attribute unrestricted double m24;
readonly attribute unrestricted double m31;
readonly attribute unrestricted double m32;
readonly attribute unrestricted double m33;
readonly attribute unrestricted double m34;
readonly attribute unrestricted double m41;
readonly attribute unrestricted double m42;
readonly attribute unrestricted double m43;
readonly attribute unrestricted double m44;
readonly attribute boolean is2D;
readonly attribute boolean isIdentity;
// Immutable transform methods
DOMMatrix translate(unrestricted double tx,
unrestricted double ty,
optional unrestricted double tz = 0);
DOMMatrix scale(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix scale3d(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix scaleNonUniform(unrestricted double scaleX,
optional unrestricted double scaleY = 1,
optional unrestricted double scaleZ = 1,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix rotate(unrestricted double angle,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix rotateFromVector(unrestricted double x,
unrestricted double y);
DOMMatrix rotateAxisAngle(unrestricted double x,
unrestricted double y,
unrestricted double z,
unrestricted double angle);
DOMMatrix skewX(unrestricted double sx);
DOMMatrix skewY(unrestricted double sy);
DOMMatrix multiply(DOMMatrix other);
DOMMatrix flipX();
DOMMatrix flipY();
DOMMatrix inverse();
DOMPoint transformPoint(optional DOMPointInit point);
Float32Array toFloat32Array();
Float64Array toFloat64Array();
stringifier;
};
[Constructor,
Constructor(DOMString transformList),
Constructor(DOMMatrixReadOnly other),
Constructor(Float32Array array32),
Constructor(Float64Array array64),
Constructor(sequence<unrestricted double> numberSequence),
Exposed=(Window,Worker)]
interface DOMMatrix : DOMMatrixReadOnly {
// These attributes are simple aliases for certain elements of the 4x4 matrix
inherit attribute unrestricted double a;
inherit attribute unrestricted double b;
inherit attribute unrestricted double c;
inherit attribute unrestricted double d;
inherit attribute unrestricted double e;
inherit attribute unrestricted double f;
inherit attribute unrestricted double m11;
inherit attribute unrestricted double m12;
inherit attribute unrestricted double m13;
inherit attribute unrestricted double m14;
inherit attribute unrestricted double m21;
inherit attribute unrestricted double m22;
inherit attribute unrestricted double m23;
inherit attribute unrestricted double m24;
inherit attribute unrestricted double m31;
inherit attribute unrestricted double m32;
inherit attribute unrestricted double m33;
inherit attribute unrestricted double m34;
inherit attribute unrestricted double m41;
inherit attribute unrestricted double m42;
inherit attribute unrestricted double m43;
inherit attribute unrestricted double m44;
// Mutable transform methods
DOMMatrix multiplySelf(DOMMatrix other);
DOMMatrix preMultiplySelf(DOMMatrix other);
DOMMatrix translateSelf(unrestricted double tx,
unrestricted double ty,
optional unrestricted double tz = 0);
DOMMatrix scaleSelf(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix scale3dSelf(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix scaleNonUniformSelf(unrestricted double scaleX,
optional unrestricted double scaleY = 1,
optional unrestricted double scaleZ = 1,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix rotateSelf(unrestricted double angle,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix rotateFromVectorSelf(unrestricted double x,
unrestricted double y);
DOMMatrix rotateAxisAngleSelf(unrestricted double x,
unrestricted double y,
unrestricted double z,
unrestricted double angle);
DOMMatrix skewXSelf(unrestricted double sx);
DOMMatrix skewYSelf(unrestricted double sy);
DOMMatrix invertSelf();
DOMMatrix setMatrixValue(DOMString transformList);
};
[Constructor(unrestricted double x, unrestricted double y,
unrestricted double z, unrestricted double w),
Exposed=(Window,Worker)]
interface DOMPointReadOnly {
readonly attribute unrestricted double x;
readonly attribute unrestricted double y;
readonly attribute unrestricted double z;
readonly attribute unrestricted double w;
DOMPoint matrixTransform(DOMMatrixReadOnly matrix);
};
[Constructor(optional DOMPointInit point),
Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double z = 0, optional unrestricted double w = 1),
Exposed=(Window,Worker)]
interface DOMPoint : DOMPointReadOnly {
inherit attribute unrestricted double x;
inherit attribute unrestricted double y;
inherit attribute unrestricted double z;
inherit attribute unrestricted double w;
};
dictionary DOMPointInit {
unrestricted double x = 0;
unrestricted double y = 0;
unrestricted double z = 0;
unrestricted double w = 1;
};
[Constructor(unrestricted double x = 0, unrestricted double y = 0,
unrestricted double width = 0, unrestricted double height = 0),
Exposed=(Window,Worker)]
interface DOMRect : DOMRectReadOnly {
inherit attribute unrestricted double x;
inherit attribute unrestricted double y;
inherit attribute unrestricted double width;
inherit attribute unrestricted double height;
};
[Constructor(unrestricted double x, unrestricted double y,
unrestricted double width, unrestricted double height),
Exposed=(Window,Worker)]
interface DOMRectReadOnly {
readonly attribute unrestricted double x;
readonly attribute unrestricted double y;
readonly attribute unrestricted double width;
readonly attribute unrestricted double height;
readonly attribute unrestricted double top;
readonly attribute unrestricted double right;
readonly attribute unrestricted double bottom;
readonly attribute unrestricted double left;
};
dictionary DOMRectInit {
unrestricted double x = 0;
unrestricted double y = 0;
unrestricted double width = 0;
unrestricted double height = 0;
};
[NoInterfaceObject,
ArrayClass]
interface DOMRectList {
readonly attribute unsigned long length;
getter DOMRect? item(unsigned long index);
};
[Constructor(optional DOMPointInit p1, optional DOMPointInit p2,
optional DOMPointInit p3, optional DOMPointInit p4),
Constructor(optional DOMRectInit rect),
Exposed=(Window,Worker)]
interface DOMQuad {
[SameObject] readonly attribute DOMPoint p1;
[SameObject] readonly attribute DOMPoint p2;
[SameObject] readonly attribute DOMPoint p3;
[SameObject] readonly attribute DOMPoint p4;
[SameObject] readonly attribute DOMRectReadOnly bounds;
};
[Constructor(sequence<unrestricted double> numberSequence),
Exposed=(Window,Worker)]
interface DOMMatrixReadOnly {
// These attributes are simple aliases for certain elements of the 4x4 matrix
readonly attribute unrestricted double a;
readonly attribute unrestricted double b;
readonly attribute unrestricted double c;
readonly attribute unrestricted double d;
readonly attribute unrestricted double e;
readonly attribute unrestricted double f;
readonly attribute unrestricted double m11;
readonly attribute unrestricted double m12;
readonly attribute unrestricted double m13;
readonly attribute unrestricted double m14;
readonly attribute unrestricted double m21;
readonly attribute unrestricted double m22;
readonly attribute unrestricted double m23;
readonly attribute unrestricted double m24;
readonly attribute unrestricted double m31;
readonly attribute unrestricted double m32;
readonly attribute unrestricted double m33;
readonly attribute unrestricted double m34;
readonly attribute unrestricted double m41;
readonly attribute unrestricted double m42;
readonly attribute unrestricted double m43;
readonly attribute unrestricted double m44;
readonly attribute boolean is2D;
readonly attribute boolean isIdentity;
// Immutable transform methods
DOMMatrix translate(unrestricted double tx,
unrestricted double ty,
optional unrestricted double tz = 0);
DOMMatrix scale(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix scale3d(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix scaleNonUniform(unrestricted double scaleX,
optional unrestricted double scaleY = 1,
optional unrestricted double scaleZ = 1,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix rotate(unrestricted double angle,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix rotateFromVector(unrestricted double x,
unrestricted double y);
DOMMatrix rotateAxisAngle(unrestricted double x,
unrestricted double y,
unrestricted double z,
unrestricted double angle);
DOMMatrix skewX(unrestricted double sx);
DOMMatrix skewY(unrestricted double sy);
DOMMatrix multiply(DOMMatrix other);
DOMMatrix flipX();
DOMMatrix flipY();
DOMMatrix inverse();
DOMPoint transformPoint(optional DOMPointInit point);
Float32Array toFloat32Array();
Float64Array toFloat64Array();
stringifier;
};
[Constructor,
Constructor(DOMString transformList),
Constructor(DOMMatrixReadOnly other),
Constructor(Float32Array array32),
Constructor(Float64Array array64),
Constructor(sequence<unrestricted double> numberSequence),
Exposed=(Window,Worker)]
interface DOMMatrix : DOMMatrixReadOnly {
// These attributes are simple aliases for certain elements of the 4x4 matrix
inherit attribute unrestricted double a;
inherit attribute unrestricted double b;
inherit attribute unrestricted double c;
inherit attribute unrestricted double d;
inherit attribute unrestricted double e;
inherit attribute unrestricted double f;
inherit attribute unrestricted double m11;
inherit attribute unrestricted double m12;
inherit attribute unrestricted double m13;
inherit attribute unrestricted double m14;
inherit attribute unrestricted double m21;
inherit attribute unrestricted double m22;
inherit attribute unrestricted double m23;
inherit attribute unrestricted double m24;
inherit attribute unrestricted double m31;
inherit attribute unrestricted double m32;
inherit attribute unrestricted double m33;
inherit attribute unrestricted double m34;
inherit attribute unrestricted double m41;
inherit attribute unrestricted double m42;
inherit attribute unrestricted double m43;
inherit attribute unrestricted double m44;
// Mutable transform methods
DOMMatrix multiplySelf(DOMMatrix other);
DOMMatrix preMultiplySelf(DOMMatrix other);
DOMMatrix translateSelf(unrestricted double tx,
unrestricted double ty,
optional unrestricted double tz = 0);
DOMMatrix scaleSelf(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix scale3dSelf(unrestricted double scale,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix scaleNonUniformSelf(unrestricted double scaleX,
optional unrestricted double scaleY = 1,
optional unrestricted double scaleZ = 1,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0,
optional unrestricted double originZ = 0);
DOMMatrix rotateSelf(unrestricted double angle,
optional unrestricted double originX = 0,
optional unrestricted double originY = 0);
DOMMatrix rotateFromVectorSelf(unrestricted double x,
unrestricted double y);
DOMMatrix rotateAxisAngleSelf(unrestricted double x,
unrestricted double y,
unrestricted double z,
unrestricted double angle);
DOMMatrix skewXSelf(unrestricted double sx);
DOMMatrix skewYSelf(unrestricted double sy);
DOMMatrix invertSelf();
DOMMatrix setMatrixValue(DOMString transformList);
};
// Downloaded from http://www.w3.org/TR/cssom-view/
enum ScrollBehavior { "auto", "instant", "smooth" };
dictionary ScrollOptions {
ScrollBehavior behavior = "auto";
};
partial interface Window {
MediaQueryList matchMedia(DOMString query);
[SameObject] readonly attribute Screen screen;
// browsing context
void moveTo(double x, double y);
void moveBy(double x, double y);
void resizeTo(double x, double y);
void resizeBy(double x, double y);
// viewport
readonly attribute double innerWidth;
readonly attribute double innerHeight;
// viewport scrolling
readonly attribute double scrollX;
readonly attribute double pageXOffset;
readonly attribute double scrollY;
readonly attribute double pageYOffset;
void scroll(double x, double y, optional ScrollOptions options);
void scrollTo(double x, double y, optional ScrollOptions options);
void scrollBy(double x, double y, optional ScrollOptions options);
// client
readonly attribute double screenX;
readonly attribute double screenY;
readonly attribute double outerWidth;
readonly attribute double outerHeight;
readonly attribute double devicePixelRatio;
};
interface MediaQueryList {
readonly attribute DOMString media;
readonly attribute boolean matches;
void addListener(MediaQueryListListener listener);
void removeListener(MediaQueryListListener listener);
};
callback MediaQueryListListener = void (MediaQueryList list);
interface Screen {
readonly attribute double availWidth;
readonly attribute double availHeight;
readonly attribute double width;
readonly attribute double height;
readonly attribute unsigned long colorDepth;
readonly attribute unsigned long pixelDepth;
};
partial interface Document {
Element? elementFromPoint(double x, double y);
sequence<Element> elementsFromPoint(double x, double y);
CaretPosition? caretPositionFromPoint(double x, double y);
};
interface CaretPosition {
readonly attribute Node offsetNode;
readonly attribute unsigned long offset;
DOMRect? getClientRect();
};
dictionary ScrollOptionsHorizontal : ScrollOptions {
double x;
};
dictionary ScrollOptionsVertical : ScrollOptions {
double y;
};
partial interface Element {
DOMRectList getClientRects();
DOMRect getBoundingClientRect();
void scrollIntoView();
void scrollIntoView(boolean top, optional ScrollOptions options);
attribute (double or ScrollOptionsVertical) scrollTop;
attribute (double or ScrollOptionsHorizontal) scrollLeft;
readonly attribute double scrollWidth;
readonly attribute double scrollHeight;
readonly attribute double clientTop;
readonly attribute double clientLeft;
readonly attribute double clientWidth;
readonly attribute double clientHeight;
};
partial interface HTMLElement {
readonly attribute Element? offsetParent;
readonly attribute double offsetTop;
readonly attribute double offsetLeft;
readonly attribute double offsetWidth;
readonly attribute double offsetHeight;
};
partial interface HTMLImageElement {
readonly attribute double x;
readonly attribute double y;
};
partial interface Range {
DOMRectList getClientRects();
DOMRect getBoundingClientRect();
};
partial interface MouseEvent {
readonly attribute double screenX;
readonly attribute double screenY;
readonly attribute double pageX;
readonly attribute double pageY;
readonly attribute double clientX;
readonly attribute double clientY;
readonly attribute double x;
readonly attribute double y;
readonly attribute double offsetX;
readonly attribute double offsetY;
};
partial dictionary MouseEventInit {
double screenX = 0.0;
double screenY = 0.0;
double clientX = 0.0;
double clientY = 0.0;
};
enum CSSBoxType { "margin", "border", "padding", "content" };
dictionary BoxQuadOptions {
CSSBoxType box = "border";
GeometryNode relativeTo;
};
dictionary ConvertCoordinateOptions {
CSSBoxType fromBox = "border";
CSSBoxType toBox = "border";
};
[NoInterfaceObject]
interface GeometryUtils {
sequence<DOMQuad> getBoxQuads(optional BoxQuadOptions options);
DOMQuad convertQuadFromNode(DOMQuad quad, GeometryNode from, optional ConvertCoordinateOptions options);
DOMQuad convertRectFromNode(DOMRectReadOnly rect, GeometryNode from, optional ConvertCoordinateOptions options);
DOMPoint convertPointFromNode(DOMPointInit point, GeometryNode from, optional ConvertCoordinateOptions options);
};
Text implements GeometryUtils;
Element implements GeometryUtils;
PseudoElement implements GeometryUtils;
Document implements GeometryUtils;
typedef (Text or Element or PseudoElement or Document) GeometryNode;
@@ -21,6 +21,8 @@ val urls = listOf(
"https://raw.githubusercontent.com/whatwg/dom/master/dom.html" to "org.w3c.dom",
"https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html" to "org.w3c.dom",
"http://www.w3.org/TR/animation-timing/" to "org.w3c.dom",
"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://dev.w3.org/csswg/cssom/" to "org.w3c.dom.css",
"http://www.w3.org/TR/DOM-Parsing/" to "org.w3c.dom.parsing",
@@ -27,7 +27,18 @@ fun main(args: Array<String>) {
val dir = File("../../idl")
dir.mkdirs()
val urlsPerFiles = urls.groupBy { it.second + ".idl" }
var packageFilter: String? = null
val argsIterator = args.iterator()
while (argsIterator.hasNext()) {
val arg = argsIterator.next()
when (arg) {
"-package", "-pkg", "--package" -> if (argsIterator.hasNext()) packageFilter = argsIterator.next() else throw IllegalArgumentException("argument $arg requires argument")
else -> throw IllegalArgumentException("Argument $arg is unknown")
}
}
val urlsPerFiles = urls.filter { packageFilter == null || it.second == packageFilter }.groupBy { it.second + ".idl" }
urlsPerFiles.forEach { e ->
val fileName = e.key
@@ -39,7 +39,11 @@ private fun Appendable.renderAttributeDeclaration(arg: GenerateAttribute, overri
private val keywords = setOf("interface")
private fun String.parse() = if (this.startsWith("0x")) BigInteger(this.substring(2), 16) else BigInteger(this)
private fun String.replaceWrongConstants(type: String) = if (this == "noImpl" || type == "Int" && parse() > BigInteger.valueOf(Int.MAX_VALUE.toLong())) "noImpl" else this
private fun String.replaceWrongConstants(type: String) = when {
this == "noImpl" || type == "Int" && parse() > BigInteger.valueOf(Int.MAX_VALUE.toLong()) -> "noImpl"
type == "Double" && this.matches("[0-9]+".toRegex()) -> "${this}.0"
else -> this
}
private fun String.replaceKeywords() = if (this in keywords) this + "_" else this
private fun Appendable.renderArgumentsDeclaration(args: List<GenerateAttribute>, omitDefaults: Boolean) =