summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/dom/Range.idl
blob: cd01d614b64e8bc657f5074c9520f2a742c343c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * Copyright (C) 2006 Apple Computer, Inc.
 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

module ranges {

    // Introduced in DOM Level 2:
    interface Range {

        readonly attribute Node startContainer
            getter raises(DOMException);
        readonly attribute long startOffset
            getter raises(DOMException);
        readonly attribute Node endContainer
            getter raises(DOMException);
        readonly attribute long endOffset
            getter raises(DOMException);
        readonly attribute boolean collapsed
            getter raises(DOMException);
        readonly attribute Node commonAncestorContainer
            getter raises(DOMException);

        [OldStyleObjC] void setStart(in Node refNode, 
                                     in long offset)
            raises(RangeException, DOMException);
        [OldStyleObjC] void setEnd(in Node refNode, 
                                   in long offset)
            raises(RangeException, DOMException);
        void setStartBefore(in Node refNode)
            raises(RangeException, DOMException);
        void setStartAfter(in Node refNode)
            raises(RangeException, DOMException);
        void setEndBefore(in Node refNode)
            raises(RangeException, DOMException);
        void setEndAfter(in Node refNode)
            raises(RangeException, DOMException);
        void collapse(in boolean toStart)
            raises(DOMException);
        void selectNode(in Node refNode)
            raises(RangeException, DOMException);
        void selectNodeContents(in Node refNode)
            raises(RangeException, DOMException);

        // CompareHow
        const unsigned short START_TO_START = 0;
        const unsigned short START_TO_END   = 1;
        const unsigned short END_TO_END     = 2;
        const unsigned short END_TO_START   = 3;

        [OldStyleObjC] short compareBoundaryPoints(in CompareHow how,
                                                   in Range sourceRange)
            raises(DOMException);

        void deleteContents()
            raises(DOMException);
        DocumentFragment extractContents()
            raises(DOMException);
        DocumentFragment cloneContents()
            raises(DOMException);
        void insertNode(in Node newNode)
            raises(DOMException, RangeException);
        void surroundContents(in Node newParent)
            raises(DOMException, RangeException);
        Range cloneRange()
            raises(DOMException);
        DOMString toString()
            raises(DOMException);

        void detach()
            raises(DOMException);

#if defined(LANGUAGE_JAVASCRIPT) || LANGUAGE_JAVASCRIPT
        // CSSOM View Module API extensions

        ClientRectList getClientRects();
        ClientRect getBoundingClientRect();
#endif

        // extensions

        DocumentFragment createContextualFragment(in DOMString html)
            raises(DOMException);

        // WebKit extensions

        boolean intersectsNode(in Node refNode)
            raises(RangeException, DOMException);

        short compareNode(in Node refNode)
            raises(RangeException, DOMException);

        // CompareResults
        const unsigned short NODE_BEFORE           = 0;
        const unsigned short NODE_AFTER            = 1;
        const unsigned short NODE_BEFORE_AND_AFTER = 2;
        const unsigned short NODE_INSIDE           = 3;

        short comparePoint(in Node refNode, 
                           in long offset)
            raises(RangeException, DOMException);

        boolean isPointInRange(in Node refNode, 
                               in long offset)
            raises(RangeException, DOMException);

        void expand(in DOMString unit)
            raises(RangeException, DOMException);

#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
        readonly attribute DOMString text;
#endif
    };

}