summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/core/nsIDOMElement.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/core/nsIDOMElement.idl')
-rw-r--r--dom/interfaces/core/nsIDOMElement.idl229
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);
+};