tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

IA2CommonTypes.idl (9042B)


      1 /*************************************************************************
      2 *
      3 *  File Name (IA2CommonTypes.idl)
      4 * 
      5 *  IAccessible2 IDL Specification 
      6 * 
      7 *  Copyright (c) 2007, 2010 Linux Foundation 
      8 *  Copyright (c) 2006 IBM Corporation 
      9 *  Copyright (c) 2000, 2006 Sun Microsystems, Inc. 
     10 *  All rights reserved. 
     11 *   
     12 *   
     13 *  Redistribution and use in source and binary forms, with or without 
     14 *  modification, are permitted provided that the following conditions 
     15 *  are met: 
     16 *   
     17 *   1. Redistributions of source code must retain the above copyright 
     18 *      notice, this list of conditions and the following disclaimer. 
     19 *   
     20 *   2. Redistributions in binary form must reproduce the above 
     21 *      copyright notice, this list of conditions and the following 
     22 *      disclaimer in the documentation and/or other materials 
     23 *      provided with the distribution. 
     24 *
     25 *   3. Neither the name of the Linux Foundation nor the names of its 
     26 *      contributors may be used to endorse or promote products 
     27 *      derived from this software without specific prior written 
     28 *      permission. 
     29 *   
     30 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
     31 *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
     32 *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
     33 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
     34 *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
     35 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     36 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
     37 *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
     38 *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
     39 *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
     40 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
     41 *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
     42 *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     43 *   
     44 *  This BSD License conforms to the Open Source Initiative "Simplified 
     45 *  BSD License" as published at: 
     46 *  http://www.opensource.org/licenses/bsd-license.php 
     47 *   
     48 *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 
     49 *  mark may be used in accordance with the Linux Foundation Trademark 
     50 *  Policy to indicate compliance with the IAccessible2 specification. 
     51 * 
     52 ************************************************************************/ 
     53 
     54 /** These constants control the scrolling of an object or substring into a window.
     55 
     56 This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
     57 */
     58 enum IA2ScrollType {
     59 
     60  /** Scroll the top left corner of the object or substring such that the top left
     61   corner (and as much as possible of the rest of the object or substring) is within
     62   the top level window.  In cases where the entire object or substring fits within 
     63   the top level window, the placement of the object or substring is dependent on 
     64   the application.  For example, the object or substring may be scrolled to the 
     65   closest edge, the furthest edge, or midway between those two edges.  In cases
     66   where there is a hierarchy of nested scrollable controls, more than one control
     67   may have to be scrolled.
     68  */
     69  IA2_SCROLL_TYPE_TOP_LEFT, 		
     70 
     71  /** Scroll the bottom right corner of the object or substring such that the bottom right
     72   corner (and as much as possible of the rest of the object or substring) is within
     73   the top level window.  In cases where the entire object or substring fits within 
     74   the top level window, the placement of the object or substring is dependent on 
     75   the application.  For example, the object or substring may be scrolled to the 
     76   closest edge, the furthest edge, or midway between those two edges.  In cases
     77   where there is a hierarchy of nested scrollable controls, more than one control
     78   may have to be scrolled.
     79  */
     80  IA2_SCROLL_TYPE_BOTTOM_RIGHT,
     81 
     82  /** Scroll the top edge of the object or substring such that the top edge 
     83   (and as much as possible of the rest of the object or substring) is within the
     84   top level window.  In cases where the entire object or substring fits within 
     85   the top level window, the placement of the object or substring is dependent on 
     86   the application.  For example, the object or substring may be scrolled to the 
     87   closest edge, the furthest edge, or midway between those two edges.  In cases
     88   where there is a hierarchy of nested scrollable controls, more than one control
     89   may have to be scrolled.
     90  */
     91  IA2_SCROLL_TYPE_TOP_EDGE,
     92 
     93  /** Scroll the bottom edge of the object or substring such that the bottom edge 
     94   (and as much as possible of the rest of the object or substring) is within the
     95   top level window.  In cases where the entire object or substring fits within 
     96   the top level window, the placement of the object or substring is dependent on 
     97   the application.  For example, the object or substring may be scrolled to the 
     98   closest edge, the furthest edge, or midway between those two edges.  In cases
     99   where there is a hierarchy of nested scrollable controls, more than one control
    100   may have to be scrolled.
    101  */
    102  IA2_SCROLL_TYPE_BOTTOM_EDGE, 
    103 
    104  /** Scroll the left edge of the object or substring such that the left edge 
    105   (and as much as possible of the rest of the object or substring) is within the
    106   top level window.  In cases where the entire object or substring fits within 
    107   the top level window, the placement of the object or substring is dependent on 
    108   the application.  For example, the object or substring may be scrolled to the 
    109   closest edge, the furthest edge, or midway between those two edges.  In cases
    110   where there is a hierarchy of nested scrollable controls, more than one control
    111   may have to be scrolled.
    112  */
    113  IA2_SCROLL_TYPE_LEFT_EDGE, 
    114 
    115  /** Scroll the right edge of the object or substring such that the right edge 
    116   (and as much as possible of the rest of the object or substring) is within the
    117   top level window.  In cases where the entire object or substring fits within 
    118   the top level window, the placement of the object or substring is dependent on 
    119   the application.  For example, the object or substring may be scrolled to the 
    120   closest edge, the furthest edge, or midway between those two edges.  In cases
    121   where there is a hierarchy of nested scrollable controls, more than one control
    122   may have to be scrolled.
    123  */
    124  IA2_SCROLL_TYPE_RIGHT_EDGE,
    125 
    126  /** Scroll the object or substring such that as much as possible of the 
    127   object or substring is within the top level window.  The placement of 
    128   the object is dependent on the application.  For example, the object or
    129   substring may be scrolled to to closest edge, the furthest edge, or midway
    130   between those two edges.
    131  */
    132  IA2_SCROLL_TYPE_ANYWHERE
    133 };
    134 
    135 /** These constants define which coordinate system a point is located in.
    136 
    137 This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
    138 IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and 
    139 IAccessibleText::scrollSubstringToPoint.
    140 */
    141 enum IA2CoordinateType {
    142 
    143  /// The coordinates are relative to the screen.
    144  IA2_COORDTYPE_SCREEN_RELATIVE, 
    145 
    146  /** The coordinates are relative to the upper left corner of the bounding box
    147   of the immediate parent.
    148  */
    149  IA2_COORDTYPE_PARENT_RELATIVE  
    150 
    151 };
    152 
    153 /** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
    154  
    155  Refer to @ref _specialOffsets 
    156  "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" 
    157  for more information.
    158 */
    159 enum IA2TextSpecialOffsets {
    160  IA2_TEXT_OFFSET_LENGTH = -1,	/**< This offset is equivalent to the length of the string.  It eliminates
    161 							 the need to call IAccessibleText::nCharacters. */
    162  IA2_TEXT_OFFSET_CARET = -2	/**< This offset signifies that the text related to the physical location
    163 							 of the caret should be used. */
    164 };
    165 
    166 /** These constants specify the kind of change made to a table.
    167 
    168   This enum is used in the IA2TableModelChange struct which in turn is used by
    169   IAccessibleTable::modelChange and IAccessibleTable2::modelChange.
    170 */
    171 enum IA2TableModelChangeType {
    172  IA2_TABLE_MODEL_CHANGE_INSERT,  // = 0;
    173  IA2_TABLE_MODEL_CHANGE_DELETE,
    174  IA2_TABLE_MODEL_CHANGE_UPDATE
    175 };
    176 
    177 /** A structure defining the type of and extents of changes made to a table
    178 
    179 IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct.
    180 In the case of an insertion or change the row and column offsets define the boundaries
    181 of the inserted or changed subtable after the operation.  In the case of a deletion
    182 the row and column offsets define the boundaries of the subtable being removed before
    183 the removal.
    184 */
    185 typedef struct IA2TableModelChange {
    186  enum IA2TableModelChangeType type;	// insert, delete, update
    187  long firstRow;		///< 0 based, inclusive
    188  long lastRow;			///< 0 based, inclusive
    189  long firstColumn;		///< 0 based, inclusive
    190  long lastColumn;		///< 0 based, inclusive
    191 } IA2TableModelChange;