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