diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/webidl/Selection.webidl | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/webidl/Selection.webidl')
-rw-r--r-- | dom/webidl/Selection.webidl | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/dom/webidl/Selection.webidl b/dom/webidl/Selection.webidl new file mode 100644 index 0000000000..9f7f3d6e4e --- /dev/null +++ b/dom/webidl/Selection.webidl @@ -0,0 +1,159 @@ +/* -*- 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://w3c.github.io/selection-api/#selection-interface + * + * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C + * liability, trademark and document use rules apply. + */ + +[Exposed=Window] +interface Selection { + [NeedsCallerType] + readonly attribute Node? anchorNode; + [NeedsCallerType] + readonly attribute unsigned long anchorOffset; + [NeedsCallerType] + readonly attribute Node? focusNode; + [NeedsCallerType] + 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, BinaryName="removeRangeAndUnselectFramesAndNotifyListeners"] + 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. +interface nsISelectionListener; +partial interface Selection { + /** + * A true value means "selection after newline"; false means "selection before + * newline" when a selection is positioned "between lines". + */ + [ChromeOnly,Throws] + attribute boolean interlinePosition; + + [Throws] + attribute short? caretBidiLevel; + + [ChromeOnly,Throws] + DOMString toStringWithFormat(DOMString formatType, unsigned long flags, long wrapColumn); + [ChromeOnly] + void addSelectionListener(nsISelectionListener newListener); + [ChromeOnly] + void removeSelectionListener(nsISelectionListener listenerToRemove); + + [ChromeOnly,BinaryName="rawType"] + readonly attribute short selectionType; + + /** + * Return array of ranges intersecting with the given DOM interval. + */ + [ChromeOnly,Throws,Pref="dom.testing.selection.GetRangesForInterval"] + sequence<Range> GetRangesForInterval(Node beginNode, long beginOffset, Node endNode, long endOffset, + boolean allowAdjacent); + + /** + * Scrolls a region of the selection, so that it is visible in + * the scrolled view. + * + * @param aRegion the region inside the selection to scroll into view + * (see selection region constants defined in + * nsISelectionController). + * @param aIsSynchronous when true, scrolls the selection into view + * before returning. If false, posts a request which + * is processed at some point after the method returns. + * @param aVPercent how to align the frame vertically. + * @param aHPercent how to align the frame horizontally. + */ + [ChromeOnly,Throws] + void scrollIntoView(short aRegion, boolean aIsSynchronous, short aVPercent, short aHPercent); + + /** + * setColors() sets custom colors for the selection. + * Currently, this is supported only when the selection type is SELECTION_FIND. + * Otherwise, throws an exception. + * + * @param aForegroundColor The foreground color of the selection. + * If this is "currentColor", foreground color + * isn't changed by this selection. + * @param aBackgroundColor The background color of the selection. + * If this is "transparent", background color is + * never painted. + * @param aAltForegroundColor The alternative foreground color of the + * selection. + * If aBackgroundColor doesn't have sufficient + * contrast with its around or foreground color + * if "currentColor" is specified, alternative + * colors are used if it have higher contrast. + * @param aAltBackgroundColor The alternative background color of the + * selection. + */ + [ChromeOnly,Throws] + void setColors(DOMString aForegroundColor, DOMString aBackgroundColor, + DOMString aAltForegroundColor, DOMString aAltBackgroundColor); + + /** + * resetColors() forget the customized colors which were set by setColors(). + */ + [ChromeOnly,Throws] + void resetColors(); +}; |