DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
/* -*- Mode: C++; 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 "nsISupports.idl"

interface nsIAccessible;
interface nsIAccessibleText;
interface nsIArray;
interface nsIVariant;

/**
 * A range representing a piece of text in the document.
 */
[scriptable, uuid(525b3401-8a67-4822-b35d-661065767cd8)]
interface nsIAccessibleTextRange : nsISupports
{
  readonly attribute nsIAccessibleText startContainer;
  readonly attribute long startOffset;
  readonly attribute nsIAccessibleText endContainer;
  readonly attribute long endOffset;

  /**
   * Return an accessible containing the whole range
   */
  readonly attribute nsIAccessible container;

  /**
   * Return embedded children within the range.
   */
  readonly attribute nsIArray embeddedChildren;

  /**
   * Return true if this range has the same end points of the given range.
   */
  boolean compare(in nsIAccessibleTextRange aOtherRange);

  /**
   * The two endpoints of the range (starting and ending).
   */
  const unsigned long EndPoint_Start = 1;
  const unsigned long EndPoint_End = 2;

  /**
   * Compare this and given ranges end points.
   *
   * @return -1/0/1 if this range end point is before/equal/after the given
   *          range end point.
   */
  long compareEndPoints(in unsigned long aEndPoint,
                        in nsIAccessibleTextRange aOtherRange,
                        in unsigned long aOtherRangeEndPoint);

  /**
   * Return text within the range.
   */
  readonly attribute AString text;

  /**
   * Return list of rects of the range.
   */
  readonly attribute nsIArray bounds;

  const unsigned long FormatUnit = 0;
  const unsigned long WordUnit = 1;
  const unsigned long LineUnit = 2;
  const unsigned long ParagraphUnit = 3;
  const unsigned long PageUnit = 4;
  const unsigned long DocumentUnit = 5;

  /**
   *  Move the boundary(ies) by the given number of the unit.
   */
  void move(in unsigned long aUnit, in long aCount);
  void moveStart(in unsigned long aUnit, in long aCount);
  void moveEnd(in unsigned long aUnit, in long aCount);

  /**
   * Normalize the range to the closest unit of the given type.
   */
  void normalize(in unsigned long aUnit);

  /**
   * Return range enclosing the found text.
   */
  nsIAccessibleTextRange findText(in AString aText, in boolean aIsBackward,
                                  in boolean aIsIgnoreCase);

  /**
   * Text attributes. Used in conjunction with findAttrs().
   */
  const unsigned long AnimationStyleAttr = 0;
  const unsigned long AnnotationObjectsAttr = 1;
  const unsigned long AnnotationTypesAttr = 2;
  const unsigned long BackgroundColorAttr = 3;
  const unsigned long BulletStyleAttr = 4;
  const unsigned long CapStyleAttr = 5;
  const unsigned long CaretBidiModeAttr = 6;
  const unsigned long CaretPositionAttr = 7;
  const unsigned long CultureAttr = 8;
  const unsigned long FontNameAttr = 9;
  const unsigned long FontSizeAttr = 10;
  const unsigned long FontWeightAttr = 11;
  const unsigned long ForegroundColorAttr = 12;
  const unsigned long HorizontalTextAlignmentAttr = 13;
  const unsigned long IndentationFirstLineAttr = 14;
  const unsigned long IndentationLeadingAttr = 15;
  const unsigned long IndentationTrailingAttr = 16;
  const unsigned long IsActiveAttr = 17;
  const unsigned long IsHiddenAttr = 18;
  const unsigned long IsItalicAttr = 19;
  const unsigned long IsReadOnlyAttr = 20;
  const unsigned long IsSubscriptAttr = 21;
  const unsigned long IsSuperscriptAttr = 22;
  const unsigned long LinkAttr = 23;
  const unsigned long MarginBottomAttr = 24;
  const unsigned long MarginLeadingAttr = 25;
  const unsigned long MarginTopAttr = 26;
  const unsigned long MarginTrailingAttr = 27;
  const unsigned long OutlineStylesAttr = 28;
  const unsigned long OverlineColorAttr = 29;
  const unsigned long OverlineStyleAttr = 30;
  const unsigned long SelectionActiveEndAttr = 31;
  const unsigned long StrikethroughColorAttr = 32;
  const unsigned long StrikethroughStyleAttr = 33;
  const unsigned long StyleIdAttr = 34;
  const unsigned long StyleNameAttr = 35;
  const unsigned long TabsAttr = 36;
  const unsigned long TextFlowDirectionsAttr = 37;
  const unsigned long UnderlineColorAttr = 38;
  const unsigned long UnderlineStyleAttr = 39;

  /**
   * Return range enslosing the text having requested attribute.
   */
  nsIAccessibleTextRange findAttr(in unsigned long aAttr, in nsIVariant aValue,
                                  in boolean aIsBackward);

  /**
   * Add/remove the text range from selection.
   */
  void addToSelection();
  void removeFromSelection();
  void select();

  const unsigned long AlignToTop = 0;
  const unsigned long AlignToBottom = 1;

  /**
   * Scroll the range into view.
   */
  void scrollIntoView(in unsigned long aHow);
};