1 /* 2 * Copyright (C) 2007 Apple Inc. All rights reserved. 3 * Copyright (C) 2009 Google Inc. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 15 * its contributors may be used to endorse or promote products derived 16 * from this software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 19 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 */ 29 30 module window { 31 32 // This is based off of Mozilla's Selection interface 33 // https://developer.mozilla.org/En/DOM/Selection 34 interface [OmitConstructor] DOMSelection { 35 readonly attribute Node anchorNode; 36 readonly attribute long anchorOffset; 37 readonly attribute Node focusNode; 38 readonly attribute long focusOffset; 39 40 readonly attribute boolean isCollapsed; 41 readonly attribute long rangeCount; 42 43 void collapse(in Node node, in long index) 44 raises(DOMException); 45 void collapseToEnd(); 46 void collapseToStart(); 47 48 void deleteFromDocument(); 49 boolean containsNode(in Node node, in boolean allowPartial); 50 void selectAllChildren(in Node node) 51 raises(DOMException); 52 53 void extend(in Node node, in long offset) 54 raises(DOMException); 55 56 Range getRangeAt(in long index) 57 raises(DOMException); 58 void removeAllRanges(); 59 void addRange(in Range range); 60 61 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT 62 [DontEnum] DOMString toString(); 63 #endif 64 65 // WebKit extensions 66 readonly attribute Node baseNode; 67 readonly attribute long baseOffset; 68 readonly attribute Node extentNode; 69 readonly attribute long extentOffset; 70 71 // WebKit's "type" accessor returns "None", "Range" and "Caret" 72 // IE's type accessor returns "none", "text" and "control" 73 readonly attribute DOMString type; 74 75 void modify(in DOMString alter, in DOMString direction, in DOMString granularity); 76 void setBaseAndExtent(in Node baseNode, in long baseOffset, in Node extentNode, in long extentOffset) 77 raises(DOMException); 78 void setPosition(in Node node, in long offset) 79 raises(DOMException); 80 81 // IE extentions 82 // http://msdn.microsoft.com/en-us/library/ms535869(VS.85).aspx 83 void empty(); 84 }; 85 86 } 87