gecko-dev/dom/interfaces/range/nsIDOMRange.idl

78 lines
3.2 KiB
Plaintext

/* -*- 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/
*/
[scriptable, 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();
};