other-licenses/ia2/IA2CommonTypes.idl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

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

mercurial