Bumping manifests a=b2g-bump
[gecko.git] / dom / webidl / Selection.webidl
blobe7923f9b68bf372838143e3f731d569b7d85c428
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4  * You can obtain one at http://mozilla.org/MPL/2.0/.
5  *
6  * The origin of this IDL file is
7  * https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#concept-selection
8  *
9  * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
10  * liability, trademark and document use rules apply.
11  */
13 interface Selection {
14   readonly attribute Node? anchorNode;
15   readonly attribute unsigned long anchorOffset;
16   readonly attribute Node? focusNode;
17   readonly attribute unsigned long focusOffset;
19   readonly attribute boolean isCollapsed;
20   [Throws]
21   void               collapse(Node node, unsigned long offset);
22   [Throws]
23   void               collapseToStart();
24   [Throws]
25   void               collapseToEnd();
27   [Throws]
28   void               extend(Node node, unsigned long offset);
30   [Throws]
31   void               selectAllChildren(Node node);
32   [Throws]
33   void               deleteFromDocument();
35   readonly attribute unsigned long rangeCount;
36   [Throws]
37   Range              getRangeAt(unsigned long index);
38   [Throws]
39   void               addRange(Range range);
40   [Throws]
41   void               removeRange(Range range);
42   [Throws]
43   void               removeAllRanges();
45   stringifier;
48 // Additional methods not currently in the spec
49 partial interface Selection {
50   [Throws]
51   boolean containsNode(Node? node, boolean partlyContained);
53   [Throws]
54   void modify(DOMString alter, DOMString direction,
55               DOMString granularity);
58 // Additional chrome-only methods from nsISelectionPrivate
59 interface nsISelectionListener;
60 partial interface Selection {
61   [ChromeOnly]
62   const short ENDOFPRECEDINGLINE = 0;
63   [ChromeOnly]
64   const short STARTOFNEXTLINE = 1;
66   [ChromeOnly,Throws]
67   attribute boolean interlinePosition;
69   [ChromeOnly,Throws]
70   DOMString  toStringWithFormat(DOMString formatType, unsigned long flags, long wrapColumn);
71   [ChromeOnly,Throws]
72   void  addSelectionListener(nsISelectionListener newListener);
73   [ChromeOnly,Throws]
74   void  removeSelectionListener(nsISelectionListener listenerToRemove);
76   [ChromeOnly]
77   readonly attribute short type;
79   [ChromeOnly,Throws,Pref="dom.testing.selection.GetRangesForInterval"]
80   sequence<Range> GetRangesForInterval(Node beginNode, long beginOffset, Node endNode, long endOffset,
81                                        boolean allowAdjacent);
83   [ChromeOnly,Throws]
84   void scrollIntoView(short aRegion, boolean aIsSynchronous, short aVPercent, short aHPercent);