blob: 955bd470aa686735715bf4604b8db56c0ba4072d [file] [log] [blame]
/*
* Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
module core {
interface [
JSGenerateToNativeObject,
JSInlineGetOwnPropertySlot
] Element : Node {
// DOM Level 1 Core
readonly attribute [TreatReturnedNullStringAs=Null] DOMString tagName;
[TreatReturnedNullStringAs=Null] DOMString getAttribute(in [Optional=DefaultIsUndefined] DOMString name);
[ObjCLegacyUnnamedParameters] void setAttribute(in [Optional=DefaultIsUndefined] DOMString name,
in [Optional=DefaultIsUndefined] DOMString value)
raises(DOMException);
void removeAttribute(in [Optional=DefaultIsUndefined] DOMString name);
Attr getAttributeNode(in [Optional=DefaultIsUndefined] DOMString name);
Attr setAttributeNode(in [Optional=DefaultIsUndefined] Attr newAttr)
raises(DOMException);
Attr removeAttributeNode(in [Optional=DefaultIsUndefined] Attr oldAttr)
raises(DOMException);
NodeList getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString name);
// DOM Level 2 Core
[ObjCLegacyUnnamedParameters] DOMString getAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
in [Optional=DefaultIsUndefined] DOMString localName);
[ObjCLegacyUnnamedParameters] void setAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
in [Optional=DefaultIsUndefined] DOMString qualifiedName,
in [Optional=DefaultIsUndefined] DOMString value)
raises(DOMException);
[ObjCLegacyUnnamedParameters] void removeAttributeNS(in [TreatNullAs=NullString] DOMString namespaceURI,
in DOMString localName);
[ObjCLegacyUnnamedParameters] NodeList getElementsByTagNameNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
in [Optional=DefaultIsUndefined] DOMString localName);
[ObjCLegacyUnnamedParameters] Attr getAttributeNodeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
in [Optional=DefaultIsUndefined] DOMString localName);
Attr setAttributeNodeNS(in [Optional=DefaultIsUndefined] Attr newAttr)
raises(DOMException);
boolean hasAttribute(in DOMString name);
[ObjCLegacyUnnamedParameters] boolean hasAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
in [Optional=DefaultIsUndefined] DOMString localName);
readonly attribute CSSStyleDeclaration style;
// Common extensions
readonly attribute long offsetLeft;
readonly attribute long offsetTop;
readonly attribute long offsetWidth;
readonly attribute long offsetHeight;
readonly attribute Element offsetParent;
readonly attribute long clientLeft;
readonly attribute long clientTop;
readonly attribute long clientWidth;
readonly attribute long clientHeight;
attribute long scrollLeft;
attribute long scrollTop;
readonly attribute long scrollWidth;
readonly attribute long scrollHeight;
void focus();
void blur();
void scrollIntoView(in [Optional] boolean alignWithTop);
// WebKit extensions
void scrollIntoViewIfNeeded(in [Optional] boolean centerIfNeeded);
void scrollByLines(in [Optional=DefaultIsUndefined] long lines);
void scrollByPages(in [Optional=DefaultIsUndefined] long pages);
#if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
WebKitAnimationList webkitGetAnimations();
#endif
// HTML 5
NodeList getElementsByClassName(in [Optional=DefaultIsUndefined] DOMString name);
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
readonly attribute DOMStringMap dataset;
#endif
// NodeSelector - Selector API
Element querySelector(in DOMString selectors)
raises(DOMException);
NodeList querySelectorAll(in DOMString selectors)
raises(DOMException);
// WebKit extension, pending specification.
boolean webkitMatchesSelector(in [Optional=DefaultIsUndefined] DOMString selectors)
raises(DOMException);
// ElementTraversal API
readonly attribute Element firstElementChild;
readonly attribute Element lastElementChild;
readonly attribute Element previousElementSibling;
readonly attribute Element nextElementSibling;
readonly attribute unsigned long childElementCount;
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
// CSSOM View Module API
ClientRectList getClientRects();
ClientRect getBoundingClientRect();
#endif
#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
// Objective-C extensions
readonly attribute DOMString innerText;
#endif
#if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
// Mozilla version
const unsigned short ALLOW_KEYBOARD_INPUT = 1;
[V8EnabledAtRuntime] void webkitRequestFullScreen(in [Optional=DefaultIsUndefined] unsigned short flags);
// W3C version
[V8EnabledAtRuntime] void webkitRequestFullscreen();
#endif
// CSS Regions API
readonly attribute DOMString webkitRegionOverflow;
#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
// Event handler DOM attributes
attribute [NotEnumerable] EventListener onabort;
attribute [NotEnumerable] EventListener onblur;
attribute [NotEnumerable] EventListener onchange;
attribute [NotEnumerable] EventListener onclick;
attribute [NotEnumerable] EventListener oncontextmenu;
attribute [NotEnumerable] EventListener ondblclick;
attribute [NotEnumerable] EventListener ondrag;
attribute [NotEnumerable] EventListener ondragend;
attribute [NotEnumerable] EventListener ondragenter;
attribute [NotEnumerable] EventListener ondragleave;
attribute [NotEnumerable] EventListener ondragover;
attribute [NotEnumerable] EventListener ondragstart;
attribute [NotEnumerable] EventListener ondrop;
attribute [NotEnumerable] EventListener onerror;
attribute [NotEnumerable] EventListener onfocus;
attribute [NotEnumerable] EventListener oninput;
attribute [NotEnumerable] EventListener oninvalid;
attribute [NotEnumerable] EventListener onkeydown;
attribute [NotEnumerable] EventListener onkeypress;
attribute [NotEnumerable] EventListener onkeyup;
attribute [NotEnumerable] EventListener onload;
attribute [NotEnumerable] EventListener onmousedown;
attribute [NotEnumerable] EventListener onmousemove;
attribute [NotEnumerable] EventListener onmouseout;
attribute [NotEnumerable] EventListener onmouseover;
attribute [NotEnumerable] EventListener onmouseup;
attribute [NotEnumerable] EventListener onmousewheel;
attribute [NotEnumerable] EventListener onscroll;
attribute [NotEnumerable] EventListener onselect;
attribute [NotEnumerable] EventListener onsubmit;
// attribute [NotEnumerable] EventListener oncanplay;
// attribute [NotEnumerable] EventListener oncanplaythrough;
// attribute [NotEnumerable] EventListener ondurationchange;
// attribute [NotEnumerable] EventListener onemptied;
// attribute [NotEnumerable] EventListener onended;
// attribute [NotEnumerable] EventListener onloadeddata;
// attribute [NotEnumerable] EventListener onloadedmetadata;
// attribute [NotEnumerable] EventListener onloadstart;
// attribute [NotEnumerable] EventListener onpause;
// attribute [NotEnumerable] EventListener onplay;
// attribute [NotEnumerable] EventListener onplaying;
// attribute [NotEnumerable] EventListener onprogress;
// attribute [NotEnumerable] EventListener onratechange;
// attribute [NotEnumerable] EventListener onreadystatechange;
// attribute [NotEnumerable] EventListener onseeked;
// attribute [NotEnumerable] EventListener onseeking;
// attribute [NotEnumerable] EventListener onshow;
// attribute [NotEnumerable] EventListener onstalled;
// attribute [NotEnumerable] EventListener onsuspend;
// attribute [NotEnumerable] EventListener ontimeupdate;
// attribute [NotEnumerable] EventListener onvolumechange;
// attribute [NotEnumerable] EventListener onwaiting;
// WebKit extensions
attribute [NotEnumerable] EventListener onbeforecut;
attribute [NotEnumerable] EventListener oncut;
attribute [NotEnumerable] EventListener onbeforecopy;
attribute [NotEnumerable] EventListener oncopy;
attribute [NotEnumerable] EventListener onbeforepaste;
attribute [NotEnumerable] EventListener onpaste;
attribute [NotEnumerable] EventListener onreset;
attribute [NotEnumerable] EventListener onsearch;
attribute [NotEnumerable] EventListener onselectstart;
attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange;
attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenerror;
#endif
};
}