Home | History | Annotate | Download | only in dom
      1 /*
      2  * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
      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 core {
     22 
     23     interface [
     24         CustomMarkFunction,
     25         GenerateNativeConverter,
     26         InlineGetOwnPropertySlot
     27     ] Element : Node {
     28 
     29         // DOM Level 1 Core
     30 
     31         readonly attribute [ConvertNullStringTo=Null] DOMString tagName;
     32 
     33         [ConvertNullStringTo=Null] DOMString getAttribute(in DOMString name);
     34         [OldStyleObjC, Custom] void setAttribute(in DOMString name,
     35                                                  in DOMString value)
     36             raises(DOMException);
     37         void removeAttribute(in DOMString name)
     38             raises(DOMException);
     39         Attr getAttributeNode(in DOMString name);
     40         [Custom] Attr setAttributeNode(in Attr newAttr)
     41             raises(DOMException);
     42         Attr removeAttributeNode(in Attr oldAttr)
     43             raises(DOMException);
     44         NodeList getElementsByTagName(in DOMString name);
     45 
     46         // DOM Level 2 Core
     47 
     48         [OldStyleObjC] DOMString getAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
     49                                                 in DOMString localName);
     50         [OldStyleObjC, Custom] void setAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
     51                                                    in DOMString qualifiedName,
     52                                                    in DOMString value)
     53             raises(DOMException);
     54         [OldStyleObjC] void removeAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
     55                                               in DOMString localName)
     56             raises(DOMException);
     57         [OldStyleObjC] NodeList getElementsByTagNameNS(in [ConvertNullToNullString] DOMString namespaceURI,
     58                                                        in DOMString localName);
     59         [OldStyleObjC] Attr getAttributeNodeNS(in [ConvertNullToNullString] DOMString namespaceURI,
     60                                                in DOMString localName);
     61         [Custom] Attr setAttributeNodeNS(in Attr newAttr)
     62             raises(DOMException);
     63         boolean hasAttribute(in DOMString name);
     64         [OldStyleObjC] boolean hasAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
     65                                               in DOMString localName);
     66 
     67         readonly attribute CSSStyleDeclaration style;
     68 
     69         // Common extensions
     70 
     71         readonly attribute long offsetLeft;
     72         readonly attribute long offsetTop;
     73         readonly attribute long offsetWidth;
     74         readonly attribute long offsetHeight;
     75         readonly attribute Element offsetParent;
     76         readonly attribute long clientLeft;
     77         readonly attribute long clientTop;
     78         readonly attribute long clientWidth;
     79         readonly attribute long clientHeight;
     80                  attribute long scrollLeft;
     81                  attribute long scrollTop;
     82         readonly attribute long scrollWidth;
     83         readonly attribute long scrollHeight;
     84 
     85         void focus();
     86         void blur();
     87         void scrollIntoView(in [Optional] boolean alignWithTop);
     88 
     89         // IE extensions
     90 
     91         boolean contains(in Element element);
     92 
     93         // WebKit extensions
     94 
     95         void scrollIntoViewIfNeeded(in [Optional] boolean centerIfNeeded);
     96         void scrollByLines(in long lines);
     97         void scrollByPages(in long pages);
     98 
     99         // HTML 5
    100         NodeList getElementsByClassName(in DOMString name);
    101 
    102         // NodeSelector - Selector API
    103         Element querySelector(in DOMString selectors)
    104             raises(DOMException);
    105         NodeList querySelectorAll(in DOMString selectors)
    106             raises(DOMException);
    107 
    108         // WebKit extension, pending specification.
    109         boolean webkitMatchesSelector(in DOMString selectors)
    110             raises(DOMException);
    111 
    112         // ElementTraversal API
    113         readonly attribute Element firstElementChild;
    114         readonly attribute Element lastElementChild;
    115         readonly attribute Element previousElementSibling;
    116         readonly attribute Element nextElementSibling;
    117         readonly attribute unsigned long childElementCount;
    118 
    119 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
    120         // CSSOM View Module API
    121         ClientRectList getClientRects();
    122         ClientRect getBoundingClientRect();
    123 #endif
    124 
    125 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
    126         // Objective-C extensions
    127         readonly attribute DOMString innerText;
    128 #endif
    129 
    130 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
    131         // Event handler DOM attributes
    132         attribute [DontEnum] EventListener onabort;
    133         attribute [DontEnum] EventListener onblur;
    134         attribute [DontEnum] EventListener onchange;
    135         attribute [DontEnum] EventListener onclick;
    136         attribute [DontEnum] EventListener oncontextmenu;
    137         attribute [DontEnum] EventListener ondblclick;
    138         attribute [DontEnum] EventListener ondrag;
    139         attribute [DontEnum] EventListener ondragend;
    140         attribute [DontEnum] EventListener ondragenter;
    141         attribute [DontEnum] EventListener ondragleave;
    142         attribute [DontEnum] EventListener ondragover;
    143         attribute [DontEnum] EventListener ondragstart;
    144         attribute [DontEnum] EventListener ondrop;
    145         attribute [DontEnum] EventListener onerror;
    146         attribute [DontEnum] EventListener onfocus;
    147         attribute [DontEnum] EventListener oninput;
    148         attribute [DontEnum] EventListener oninvalid;
    149         attribute [DontEnum] EventListener onkeydown;
    150         attribute [DontEnum] EventListener onkeypress;
    151         attribute [DontEnum] EventListener onkeyup;
    152         attribute [DontEnum] EventListener onload;
    153         attribute [DontEnum] EventListener onmousedown;
    154         attribute [DontEnum] EventListener onmousemove;
    155         attribute [DontEnum] EventListener onmouseout;
    156         attribute [DontEnum] EventListener onmouseover;
    157         attribute [DontEnum] EventListener onmouseup;
    158         attribute [DontEnum] EventListener onmousewheel;
    159         attribute [DontEnum] EventListener onscroll;
    160         attribute [DontEnum] EventListener onselect;
    161         attribute [DontEnum] EventListener onsubmit;
    162 
    163         // attribute [DontEnum] EventListener oncanplay;
    164         // attribute [DontEnum] EventListener oncanplaythrough;
    165         // attribute [DontEnum] EventListener ondurationchange;
    166         // attribute [DontEnum] EventListener onemptied;
    167         // attribute [DontEnum] EventListener onended;
    168         // attribute [DontEnum] EventListener onformchange;
    169         // attribute [DontEnum] EventListener onforminput;
    170         // attribute [DontEnum] EventListener onloadeddata;
    171         // attribute [DontEnum] EventListener onloadedmetadata;
    172         // attribute [DontEnum] EventListener onloadstart;
    173         // attribute [DontEnum] EventListener onpause;
    174         // attribute [DontEnum] EventListener onplay;
    175         // attribute [DontEnum] EventListener onplaying;
    176         // attribute [DontEnum] EventListener onprogress;
    177         // attribute [DontEnum] EventListener onratechange;
    178         // attribute [DontEnum] EventListener onreadystatechange;
    179         // attribute [DontEnum] EventListener onseeked;
    180         // attribute [DontEnum] EventListener onseeking;
    181         // attribute [DontEnum] EventListener onshow;
    182         // attribute [DontEnum] EventListener onstalled;
    183         // attribute [DontEnum] EventListener onsuspend;
    184         // attribute [DontEnum] EventListener ontimeupdate;
    185         // attribute [DontEnum] EventListener onvolumechange;
    186         // attribute [DontEnum] EventListener onwaiting;
    187 
    188         // WebKit extensions
    189         attribute [DontEnum] EventListener onbeforecut;
    190         attribute [DontEnum] EventListener oncut;
    191         attribute [DontEnum] EventListener onbeforecopy;
    192         attribute [DontEnum] EventListener oncopy;
    193         attribute [DontEnum] EventListener onbeforepaste;
    194         attribute [DontEnum] EventListener onpaste;
    195         attribute [DontEnum] EventListener onreset;
    196         attribute [DontEnum] EventListener onsearch;
    197         attribute [DontEnum] EventListener onselectstart;
    198 #if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
    199         attribute [DontEnum] EventListener ontouchstart;
    200         attribute [DontEnum] EventListener ontouchmove;
    201         attribute [DontEnum] EventListener ontouchend;
    202         attribute [DontEnum] EventListener ontouchcancel;
    203 #endif
    204 #endif
    205     };
    206 
    207 }
    208