6bb068772f0f8c91f831937d8c18ed687608603a
[WebKit-https.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         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] 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         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] 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         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         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
199         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
200         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
201         attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
202 #endif
203     };
204
205 }