gecko-dev/dom/webidl/Selection.webidl

117 строки
3.9 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/.
*
* The origin of this IDL file is
* https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#concept-selection
*
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
*/
interface Selection {
readonly attribute Node? anchorNode;
readonly attribute unsigned long anchorOffset;
readonly attribute Node? focusNode;
readonly attribute unsigned long focusOffset;
readonly attribute boolean isCollapsed;
/**
* Returns the number of ranges in the selection.
*/
readonly attribute unsigned long rangeCount;
readonly attribute DOMString type;
/**
* Returns the range at the specified index. Throws if the index is
* out of range.
*/
[Throws]
Range getRangeAt(unsigned long index);
/**
* Adds a range to the current selection.
*/
[Throws, BinaryName="addRangeJS"]
void addRange(Range range);
/**
* Removes a range from the current selection.
*/
[Throws]
void removeRange(Range range);
/**
* Removes all ranges from the current selection.
*/
[Throws]
void removeAllRanges();
[Throws, BinaryName="RemoveAllRanges"]
void empty();
[Throws, BinaryName="collapseJS"]
void collapse(Node? node, optional unsigned long offset = 0);
[Throws, BinaryName="collapseJS"]
void setPosition(Node? node, optional unsigned long offset = 0);
[Throws, BinaryName="collapseToStartJS"]
void collapseToStart();
[Throws, BinaryName="collapseToEndJS"]
void collapseToEnd();
[Throws, BinaryName="extendJS"]
void extend(Node node, optional unsigned long offset = 0);
[Throws, BinaryName="setBaseAndExtentJS"]
void setBaseAndExtent(Node anchorNode,
unsigned long anchorOffset,
Node focusNode,
unsigned long focusOffset);
[Throws, BinaryName="selectAllChildrenJS"]
void selectAllChildren(Node node);
[CEReactions, Throws]
void deleteFromDocument();
[Throws]
boolean containsNode(Node node,
optional boolean allowPartialContainment = false);
stringifier DOMString ();
};
// Additional methods not currently in the spec
partial interface Selection {
[Throws]
void modify(DOMString alter, DOMString direction,
DOMString granularity);
};
// Additional chrome-only methods from nsISelectionPrivate
interface nsISelectionListener;
partial interface Selection {
[ChromeOnly]
const short ENDOFPRECEDINGLINE = 0;
[ChromeOnly]
const short STARTOFNEXTLINE = 1;
[ChromeOnly,Throws]
attribute boolean interlinePosition;
[Throws]
attribute short? caretBidiLevel;
[ChromeOnly,Throws]
DOMString toStringWithFormat(DOMString formatType, unsigned long flags, long wrapColumn);
[ChromeOnly,Throws]
void addSelectionListener(nsISelectionListener newListener);
[ChromeOnly,Throws]
void removeSelectionListener(nsISelectionListener listenerToRemove);
[ChromeOnly,BinaryName="rawType"]
readonly attribute short selectionType;
[ChromeOnly,Throws,Pref="dom.testing.selection.GetRangesForInterval"]
sequence<Range> GetRangesForInterval(Node beginNode, long beginOffset, Node endNode, long endOffset,
boolean allowAdjacent);
[ChromeOnly,Throws]
void scrollIntoView(short aRegion, boolean aIsSynchronous, short aVPercent, short aHPercent);
[ChromeOnly,Throws]
void setColors(DOMString aForegroundColor, DOMString aBackgroundColor,
DOMString aAltForegroundColor, DOMString aAltBackgroundColor);
[ChromeOnly,Throws]
void resetColors();
};