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;