diff options
Diffstat (limited to 'dom/interfaces/range')
-rw-r--r-- | dom/interfaces/range/moz.build | 12 | ||||
-rw-r--r-- | dom/interfaces/range/nsIDOMRange.idl | 77 |
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(); +}; |