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