summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/range
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/range')
-rw-r--r--dom/interfaces/range/moz.build12
-rw-r--r--dom/interfaces/range/nsIDOMRange.idl77
2 files changed, 89 insertions, 0 deletions
diff --git a/dom/interfaces/range/moz.build b/dom/interfaces/range/moz.build
new file mode 100644
index 000000000..5dc045a0d
--- /dev/null
+++ b/dom/interfaces/range/moz.build
@@ -0,0 +1,12 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+XPIDL_SOURCES += [
+ 'nsIDOMRange.idl',
+]
+
+XPIDL_MODULE = 'dom_range'
+
diff --git a/dom/interfaces/range/nsIDOMRange.idl b/dom/interfaces/range/nsIDOMRange.idl
new file mode 100644
index 000000000..2dc40ac98
--- /dev/null
+++ b/dom/interfaces/range/nsIDOMRange.idl
@@ -0,0 +1,77 @@
+/* -*- 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 "domstubs.idl"
+
+/**
+ * The nsIDOMRange interface is an interface to a DOM range object.
+ *
+ * For more information on this interface please see
+ * http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
+ */
+
+[builtinclass, uuid(1f94055c-42e7-4a30-96a1-6a804f1c2d1e)]
+interface nsIDOMRange : nsISupports
+{
+ readonly attribute nsIDOMNode startContainer;
+ readonly attribute long startOffset;
+ readonly attribute nsIDOMNode endContainer;
+ readonly attribute long endOffset;
+ readonly attribute boolean collapsed;
+ readonly attribute nsIDOMNode commonAncestorContainer;
+
+ void setStart(in nsIDOMNode refNode, in long offset);
+ void setEnd(in nsIDOMNode refNode, in long offset);
+ void setStartBefore(in nsIDOMNode refNode);
+ void setStartAfter(in nsIDOMNode refNode);
+ void setEndBefore(in nsIDOMNode refNode);
+ void setEndAfter(in nsIDOMNode refNode);
+ void collapse(in boolean toStart);
+ void selectNode(in nsIDOMNode refNode);
+ void selectNodeContents(in nsIDOMNode refNode);
+
+ // CompareHow
+ const unsigned short START_TO_START = 0;
+ const unsigned short START_TO_END = 1;
+ const unsigned short END_TO_END = 2;
+ const unsigned short END_TO_START = 3;
+
+ short compareBoundaryPoints(in unsigned short how,
+ in nsIDOMRange sourceRange);
+ void deleteContents();
+ nsIDOMDocumentFragment extractContents();
+ nsIDOMDocumentFragment cloneContents();
+ void insertNode(in nsIDOMNode newNode);
+ void surroundContents(in nsIDOMNode newParent);
+ nsIDOMRange cloneRange();
+ DOMString toString();
+ void detach();
+
+ // This method comes from
+ // http://html5.org/specs/dom-parsing.html#extensions-to-the-range-interface
+ nsIDOMDocumentFragment createContextualFragment(in DOMString fragment);
+
+ // This returns true if parent+offset equals either
+ // of the boundary points or is between them.
+ boolean isPointInRange(in nsIDOMNode parent,
+ in long offset);
+
+ // comparePoint returns
+ // -1 if point is before the start boundary point,
+ // 0 if point is either of the boundary points or between them,
+ // 1 if point is after the end boundary point.
+ // Sort of a strcmp for ranges.
+ short comparePoint(in nsIDOMNode parent, in long offset);
+
+ /**
+ * Returns whether the range intersects node.
+ */
+ boolean intersectsNode(in nsIDOMNode node);
+
+ // These methods come from
+ // http://dev.w3.org/csswg/cssom-view/#extensions-to-the-range-interface
+ nsIDOMClientRectList getClientRects();
+ nsIDOMClientRect getBoundingClientRect();
+};