/* -*- 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 unsigned long startOffset; readonly attribute nsIDOMNode endContainer; readonly attribute unsigned long endOffset; readonly attribute boolean collapsed; readonly attribute nsIDOMNode commonAncestorContainer; void setStart(in nsIDOMNode refNode, in unsigned long offset); void setEnd(in nsIDOMNode refNode, in unsigned 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 unsigned 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 unsigned 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(); };