other-licenses/ia2/IA2CommonTypes.idl

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     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  ************************************************************************/ 
    54  /** These constants control the scrolling of an object or substring into a window.
    56  This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
    57 */
    58 enum IA2ScrollType {
    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, 		
    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,
    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,
    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, 
   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, 
   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,
   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 };
   135 /** These constants define which coordinate system a point is located in.
   137  This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
   138  IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and 
   139  IAccessibleText::scrollSubstringToPoint.
   140 */
   141 enum IA2CoordinateType {
   143   /// The coordinates are relative to the screen.
   144   IA2_COORDTYPE_SCREEN_RELATIVE, 
   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  
   151 };
   153 /** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
   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 };
   166 /** These constants specify the kind of change made to a table.
   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 };
   177 /** A structure defining the type of and extents of changes made to a table
   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;

mercurial