Home | History | Annotate | Download | only in dom
      1 /*
      2  * Copyright (C) 2006 Apple Computer, Inc.
      3  * Copyright (C) 2006 Samuel Weinig <sam.weinig (at) 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 module 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