Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / dom / Range.idl
1 /*
2  * Copyright (C) 2006 Apple Computer, Inc.
3  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB.  If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20
21 // Introduced in DOM Level 2:
22 [
23     Constructor,
24     ConstructorCallWith=Document,
25     WillBeGarbageCollected,
26 ] interface Range {
27
28     readonly attribute Node startContainer;
29     readonly attribute long startOffset;
30     readonly attribute Node endContainer;
31     readonly attribute long endOffset;
32     readonly attribute boolean collapsed;
33     readonly attribute Node commonAncestorContainer;
34
35     [RaisesException] void setStart(Node refNode, long offset);
36     [RaisesException] void setEnd(Node refNode, long offset);
37     [RaisesException] void setStartBefore(Node refNode);
38     [RaisesException] void setStartAfter(Node refNode);
39     [RaisesException] void setEndBefore(Node refNode);
40     [RaisesException] void setEndAfter(Node refNode);
41     void collapse(optional boolean toStart = false);
42     [RaisesException] void selectNode(Node refNode);
43     [RaisesException] void selectNodeContents(Node refNode);
44
45     // CompareHow
46     const unsigned short START_TO_START = 0;
47     const unsigned short START_TO_END   = 1;
48     const unsigned short END_TO_END     = 2;
49     const unsigned short END_TO_START   = 3;
50
51     [RaisesException, TypeChecking=Interface] short compareBoundaryPoints(unsigned short how, Range sourceRange);
52
53     [RaisesException, CustomElementCallbacks] void deleteContents();
54     [RaisesException, CustomElementCallbacks] DocumentFragment extractContents();
55     [RaisesException, CustomElementCallbacks] DocumentFragment cloneContents();
56     [RaisesException, CustomElementCallbacks] void insertNode(Node newNode);
57     [RaisesException, CustomElementCallbacks] void surroundContents(Node newParent);
58     Range cloneRange();
59
60     stringifier;
61
62     [DeprecateAs=RangeDetach] void detach();
63
64     [RaisesException] boolean isPointInRange(Node refNode, long offset);
65     [RaisesException, TypeChecking=Interface] short comparePoint(Node refNode, long offset);
66
67     [RaisesException] boolean intersectsNode(Node refNode);
68
69     // CSSOM View Module API extensions
70
71     ClientRectList getClientRects();
72     ClientRect getBoundingClientRect();
73
74     // DOM Parsing and Serialization
75
76     [RaisesException, CustomElementCallbacks] DocumentFragment createContextualFragment(DOMString html);
77
78     // WebKit extensions
79
80     // CompareResults
81     const unsigned short NODE_BEFORE           = 0;
82     const unsigned short NODE_AFTER            = 1;
83     const unsigned short NODE_BEFORE_AND_AFTER = 2;
84     const unsigned short NODE_INSIDE           = 3;
85
86     [RaisesException, MeasureAs=RangeCompareNode] short compareNode([Default=Undefined] optional Node refNode);
87
88     [RaisesException, MeasureAs=RangeExpand] void expand([Default=Undefined] optional DOMString unit);
89 };