|
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
5 * |
|
6 * The origin of this IDL file is |
|
7 * http://dev.w3.org/csswg/cssom-view/ |
|
8 * |
|
9 * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C |
|
10 * liability, trademark and document use rules apply. |
|
11 */ |
|
12 |
|
13 enum CSSBoxType { "margin", "border", "padding", "content" }; |
|
14 dictionary BoxQuadOptions { |
|
15 CSSBoxType box = "border"; |
|
16 GeometryNode relativeTo; |
|
17 }; |
|
18 |
|
19 dictionary ConvertCoordinateOptions { |
|
20 CSSBoxType fromBox = "border"; |
|
21 CSSBoxType toBox = "border"; |
|
22 }; |
|
23 |
|
24 [NoInterfaceObject] |
|
25 interface GeometryUtils { |
|
26 [Throws, Pref="layout.css.getBoxQuads.enabled"] |
|
27 sequence<DOMQuad> getBoxQuads(optional BoxQuadOptions options); |
|
28 [Throws, Pref="layout.css.convertFromNode.enabled"] |
|
29 DOMQuad convertQuadFromNode(DOMQuad quad, GeometryNode from, optional ConvertCoordinateOptions options); |
|
30 [Throws, Pref="layout.css.convertFromNode.enabled"] |
|
31 DOMQuad convertRectFromNode(DOMRectReadOnly rect, GeometryNode from, optional ConvertCoordinateOptions options); |
|
32 [Throws, Pref="layout.css.convertFromNode.enabled"] |
|
33 DOMPoint convertPointFromNode(DOMPointInit point, GeometryNode from, optional ConvertCoordinateOptions options); |
|
34 }; |
|
35 |
|
36 Text implements GeometryUtils; |
|
37 Element implements GeometryUtils; |
|
38 // PseudoElement implements GeometryUtils; |
|
39 Document implements GeometryUtils; |
|
40 |
|
41 typedef (Text or Element /* or PseudoElement */ or Document) GeometryNode; |