diff options
Diffstat (limited to 'dom/interfaces/core/nsIDOMElement.idl')
-rw-r--r-- | dom/interfaces/core/nsIDOMElement.idl | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/dom/interfaces/core/nsIDOMElement.idl b/dom/interfaces/core/nsIDOMElement.idl new file mode 100644 index 000000000..403661394 --- /dev/null +++ b/dom/interfaces/core/nsIDOMElement.idl @@ -0,0 +1,229 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsIDOMNode.idl" + +interface nsIDOMMozNamedAttrMap; + +%{C++ +// Undo the windows.h damage +#undef GetMessage +#undef CreateEvent +#undef GetClassName +#undef GetBinaryType +#undef RemoveDirectory +%} + +/** + * The nsIDOMElement interface represents an element in an HTML or + * XML document. + * + * For more information on this interface please see + * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-element + */ + +[uuid(6289999b-1008-4269-b42a-413ec5a9d3f4)] +interface nsIDOMElement : nsIDOMNode +{ + readonly attribute DOMString tagName; + + attribute DOMString id; + attribute DOMString className; + /** + * Returns a DOMTokenList object reflecting the class attribute. + */ + readonly attribute nsISupports classList; + + readonly attribute nsIDOMMozNamedAttrMap attributes; + DOMString getAttribute(in DOMString name); + DOMString getAttributeNS(in DOMString namespaceURI, + in DOMString localName); + void setAttribute(in DOMString name, + in DOMString value); + void setAttributeNS(in DOMString namespaceURI, + in DOMString qualifiedName, + in DOMString value); + void removeAttribute(in DOMString name); + void removeAttributeNS(in DOMString namespaceURI, + in DOMString localName); + boolean hasAttribute(in DOMString name); + boolean hasAttributeNS(in DOMString namespaceURI, + in DOMString localName); + boolean hasAttributes(); + + // Obsolete methods. + nsIDOMAttr getAttributeNode(in DOMString name); + nsIDOMAttr setAttributeNode(in nsIDOMAttr newAttr); + nsIDOMAttr removeAttributeNode(in nsIDOMAttr oldAttr); + nsIDOMAttr getAttributeNodeNS(in DOMString namespaceURI, + in DOMString localName); + nsIDOMAttr setAttributeNodeNS(in nsIDOMAttr newAttr) + raises(DOMException); + + nsIDOMHTMLCollection getElementsByTagName(in DOMString name); + nsIDOMHTMLCollection getElementsByTagNameNS(in DOMString namespaceURI, + in DOMString localName); + /** + * Retrieve elements matching all classes listed in a + * space-separated string. + */ + nsIDOMHTMLCollection getElementsByClassName(in DOMString classes); + + /** + * Returns a live nsIDOMNodeList of the current child elements. + */ + [binaryname(ChildElements)] + readonly attribute nsIDOMNodeList children; + /** + * Similar as the attributes on nsIDOMNode, but navigates just elements + * rather than all nodes. + */ + readonly attribute nsIDOMElement firstElementChild; + readonly attribute nsIDOMElement lastElementChild; + readonly attribute nsIDOMElement previousElementSibling; + readonly attribute nsIDOMElement nextElementSibling; + /** + * Returns the number of child nodes that are nsIDOMElements. + */ + readonly attribute unsigned long childElementCount; + + [binaryname(MozRemove)] + void remove(); + + // CSSOM View + /** + * Retrieve a list of rectangles, one for each CSS border-box associated with + * the element. The coordinates are in CSS pixels, and relative to + * the top-left of the document's viewport, unless the document + * has an SVG foreignobject ancestor, in which case the coordinates are + * relative to the top-left of the content box of the nearest SVG foreignobject + * ancestor. The coordinates are calculated as if every scrollable element + * is scrolled to its default position. + * + * Note: the boxes of overflowing children do not affect these rectangles. + * Note: some elements have empty CSS boxes. Those return empty rectangles, + * but the coordinates may still be meaningful. + * Note: some elements have no CSS boxes (including display:none elements, + * HTML AREA elements, and SVG elements that do not render). Those return + * an empty list. + */ + nsIDOMClientRectList getClientRects(); + + /** + * Returns the union of all rectangles in the getClientRects() list. Empty + * rectangles are ignored, except that if all rectangles are empty, + * we return an empty rectangle positioned at the top-left of the first + * rectangle in getClientRects(). + */ + nsIDOMClientRect getBoundingClientRect(); + + /** + * The vertical scroll position of the element, or 0 if the element is not + * scrollable. This property may be assigned a value to change the + * vertical scroll position. + */ + attribute long scrollTop; + + /** + * The horizontal scroll position of the element, or 0 if the element is not + * scrollable. This property may be assigned a value to change the + * horizontal scroll position. + */ + attribute long scrollLeft; + + /** + * The width of the scrollable area of the element. If the element is not + * scrollable, scrollWidth is equivalent to the offsetWidth. + */ + readonly attribute long scrollWidth; + + /** + * The height of the scrollable area of the element. If the element is not + * scrollable, scrollHeight is equivalent to the offsetHeight. + */ + readonly attribute long scrollHeight; + + /** + * The height in CSS pixels of the element's top border. + */ + readonly attribute long clientTop; + + /** + * The width in CSS pixels of the element's left border and scrollbar + * if it is present on the left side. + */ + readonly attribute long clientLeft; + + /** + * The height in CSS pixels of the element's padding box. If the element is + * scrollable, the scroll bars are included inside this width. + */ + readonly attribute long clientWidth; + + /** + * The width in CSS pixels of the element's padding box. If the element is + * scrollable, the scroll bars are included inside this height. + */ + readonly attribute long clientHeight; + + /* The maximum offset that the element can be scrolled to + (i.e., the value that scrollLeft/scrollTop would be clamped to if they were + set to arbitrarily large values. */ + readonly attribute long scrollLeftMax; + readonly attribute long scrollTopMax; + + + // Selectors API + /** + * Returns whether this element would be selected by the given selector + * string. + * + * See <http://dev.w3.org/2006/webapi/selectors-api2/#matchesselector> + */ + boolean mozMatchesSelector([Null(Stringify)] in DOMString selector); + + + // Proprietary extensions + /** + * Set this during a mousedown event to grab and retarget all mouse events + * to this element until the mouse button is released or releaseCapture is + * called. If retargetToElement is true, then all events are targetted at + * this element. If false, events can also fire at descendants of this + * element. + * + */ + void setCapture([optional] in boolean retargetToElement); + + /** + * If this element has captured the mouse, release the capture. If another + * element has captured the mouse, this method has no effect. + */ + void releaseCapture(); + + // Mozilla extensions + /** + * Requests that this element be made the full-screen element, as per the DOM + * full-screen api. + * + * @see <https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI> + */ + void mozRequestFullScreen(); + + /** + * Requests that this element be made the pointer-locked element, as per the DOM + * pointer lock api. + * + * @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html> + */ + void mozRequestPointerLock(); + + /** + * Return nodes that match a given CSS selector. + * + * @see <http://dev.w3.org/2006/webapi/selectors-api/> + */ + nsIDOMElement querySelector([Null(Stringify)] in DOMString selectors); + nsIDOMNodeList querySelectorAll([Null(Stringify)] in DOMString selectors); +}; |