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 21module ranges { 22 23 // Introduced in DOM Level 2: 24 interface Range { 25 26 readonly attribute Node startContainer 27 getter raises(DOMException); 28 readonly attribute long startOffset 29 getter raises(DOMException); 30 readonly attribute Node endContainer 31 getter raises(DOMException); 32 readonly attribute long endOffset 33 getter raises(DOMException); 34 readonly attribute boolean collapsed 35 getter raises(DOMException); 36 readonly attribute Node commonAncestorContainer 37 getter raises(DOMException); 38 39 [OldStyleObjC] void setStart(in Node refNode, 40 in long offset) 41 raises(RangeException, DOMException); 42 [OldStyleObjC] void setEnd(in Node refNode, 43 in long offset) 44 raises(RangeException, DOMException); 45 void setStartBefore(in Node refNode) 46 raises(RangeException, DOMException); 47 void setStartAfter(in Node refNode) 48 raises(RangeException, DOMException); 49 void setEndBefore(in Node refNode) 50 raises(RangeException, DOMException); 51 void setEndAfter(in Node refNode) 52 raises(RangeException, DOMException); 53 void collapse(in boolean toStart) 54 raises(DOMException); 55 void selectNode(in Node refNode) 56 raises(RangeException, DOMException); 57 void selectNodeContents(in Node refNode) 58 raises(RangeException, DOMException); 59 60 // CompareHow 61 const unsigned short START_TO_START = 0; 62 const unsigned short START_TO_END = 1; 63 const unsigned short END_TO_END = 2; 64 const unsigned short END_TO_START = 3; 65 66 [OldStyleObjC] short compareBoundaryPoints(in CompareHow how, 67 in Range sourceRange) 68 raises(DOMException); 69 70 void deleteContents() 71 raises(DOMException); 72 DocumentFragment extractContents() 73 raises(DOMException); 74 DocumentFragment cloneContents() 75 raises(DOMException); 76 void insertNode(in Node newNode) 77 raises(DOMException, RangeException); 78 void surroundContents(in Node newParent) 79 raises(DOMException, RangeException); 80 Range cloneRange() 81 raises(DOMException); 82 DOMString toString() 83 raises(DOMException); 84 85 void detach() 86 raises(DOMException); 87 88#if defined(LANGUAGE_JAVASCRIPT) || LANGUAGE_JAVASCRIPT 89 // CSSOM View Module API extensions 90 91 ClientRectList getClientRects(); 92 ClientRect getBoundingClientRect(); 93#endif 94 95 // extensions 96 97 DocumentFragment createContextualFragment(in DOMString html) 98 raises(DOMException); 99 100 // WebKit extensions 101 102 boolean intersectsNode(in Node refNode) 103 raises(RangeException, DOMException); 104 105 short compareNode(in Node refNode) 106 raises(RangeException, DOMException); 107 108 // CompareResults 109 const unsigned short NODE_BEFORE = 0; 110 const unsigned short NODE_AFTER = 1; 111 const unsigned short NODE_BEFORE_AND_AFTER = 2; 112 const unsigned short NODE_INSIDE = 3; 113 114 short comparePoint(in Node refNode, 115 in long offset) 116 raises(RangeException, DOMException); 117 118 boolean isPointInRange(in Node refNode, 119 in long offset) 120 raises(RangeException, DOMException); 121 122 void expand(in DOMString unit) 123 raises(RangeException, DOMException); 124 125#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT 126 readonly attribute DOMString text; 127#endif 128 }; 129 130} 131