Bug 850713 - Bump the required NDK version to 9. r=blassey.bugs,mh+mozilla
[gecko.git] / other-licenses / ia2 / IA2CommonTypes.idl
blobfb4d097eb1fb6cb296eea90da7a0a8808cf7d9aa
1 /*************************************************************************
3 * File Name (IA2CommonTypes.idl)
5 * IAccessible2 IDL Specification
7 * Copyright (c) Linux Foundation 2007, 2009
8 * Copyright (c) IBM Corp. 2006
9 * Copyright (c) Sun Microsystems, Inc. 2000, 2006
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Lesser General Public
13 * License version 2.1, as published by the Free Software Foundation; either
14 * version 2.1 of the License, or (at your option) any later version.
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Lesser General Public License for more details.
21 * You should have received a copy of the GNU Lesser General Public
22 * License along with this library; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 ************************************************************************/
27 /** These constants control the scrolling of an object or substring into a window.
29 This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
31 enum IA2ScrollType {
33 /** Scroll the top left corner of the object or substring such that the top left
34 corner (and as much as possible of the rest of the object or substring) is within
35 the top level window. In cases where the entire object or substring fits within
36 the top level window, the placement of the object or substring is dependent on
37 the application. For example, the object or substring may be scrolled to the
38 closest edge, the furthest edge, or midway between those two edges. In cases
39 where there is a hierarchy of nested scrollable controls, more than one control
40 may have to be scrolled.
42 IA2_SCROLL_TYPE_TOP_LEFT,
44 /** Scroll the bottom right corner of the object or substring such that the bottom right
45 corner (and as much as possible of the rest of the object or substring) is within
46 the top level window. In cases where the entire object or substring fits within
47 the top level window, the placement of the object or substring is dependent on
48 the application. For example, the object or substring may be scrolled to the
49 closest edge, the furthest edge, or midway between those two edges. In cases
50 where there is a hierarchy of nested scrollable controls, more than one control
51 may have to be scrolled.
53 IA2_SCROLL_TYPE_BOTTOM_RIGHT,
55 /** Scroll the top edge of the object or substring such that the top edge
56 (and as much as possible of the rest of the object or substring) is within the
57 top level window. In cases where the entire object or substring fits within
58 the top level window, the placement of the object or substring is dependent on
59 the application. For example, the object or substring may be scrolled to the
60 closest edge, the furthest edge, or midway between those two edges. In cases
61 where there is a hierarchy of nested scrollable controls, more than one control
62 may have to be scrolled.
64 IA2_SCROLL_TYPE_TOP_EDGE,
66 /** Scroll the bottom edge of the object or substring such that the bottom edge
67 (and as much as possible of the rest of the object or substring) is within the
68 top level window. In cases where the entire object or substring fits within
69 the top level window, the placement of the object or substring is dependent on
70 the application. For example, the object or substring may be scrolled to the
71 closest edge, the furthest edge, or midway between those two edges. In cases
72 where there is a hierarchy of nested scrollable controls, more than one control
73 may have to be scrolled.
75 IA2_SCROLL_TYPE_BOTTOM_EDGE,
77 /** Scroll the left edge of the object or substring such that the left edge
78 (and as much as possible of the rest of the object or substring) is within the
79 top level window. In cases where the entire object or substring fits within
80 the top level window, the placement of the object or substring is dependent on
81 the application. For example, the object or substring may be scrolled to the
82 closest edge, the furthest edge, or midway between those two edges. In cases
83 where there is a hierarchy of nested scrollable controls, more than one control
84 may have to be scrolled.
86 IA2_SCROLL_TYPE_LEFT_EDGE,
88 /** Scroll the right edge of the object or substring such that the right edge
89 (and as much as possible of the rest of the object or substring) is within the
90 top level window. In cases where the entire object or substring fits within
91 the top level window, the placement of the object or substring is dependent on
92 the application. For example, the object or substring may be scrolled to the
93 closest edge, the furthest edge, or midway between those two edges. In cases
94 where there is a hierarchy of nested scrollable controls, more than one control
95 may have to be scrolled.
97 IA2_SCROLL_TYPE_RIGHT_EDGE,
99 /** Scroll the object or substring such that as much as possible of the
100 object or substring is within the top level window. The placement of
101 the object is dependent on the application. For example, the object or
102 substring may be scrolled to to closest edge, the furthest edge, or midway
103 between those two edges.
105 IA2_SCROLL_TYPE_ANYWHERE
108 /** These constants define which coordinate system a point is located in.
110 This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
111 IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and
112 IAccessibleText::scrollSubstringToPoint.
114 enum IA2CoordinateType {
116 /// The coordinates are relative to the screen.
117 IA2_COORDTYPE_SCREEN_RELATIVE,
119 /** The coordinates are relative to the upper left corner of the bounding box
120 of the immediate parent.
122 IA2_COORDTYPE_PARENT_RELATIVE
126 /** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
128 Refer to @ref _specialOffsets
129 "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
130 for more information.
132 enum IA2TextSpecialOffsets {
133 IA2_TEXT_OFFSET_LENGTH = -1, /**< This offset is equivalent to the length of the string. It eliminates
134 the need to call IAccessibleText::nCharacters. */
135 IA2_TEXT_OFFSET_CARET = -2 /**< This offset signifies that the text related to the physical location
136 of the caret should be used. */
139 /** These constants specify the kind of change made to a table.
141 This enum is used in the IA2TableModelChange struct which in turn is used by
142 IAccessibleTable::modelChange and IAccessibleTable2::modelChange.
144 enum IA2TableModelChangeType {
145 IA2_TABLE_MODEL_CHANGE_INSERT, // = 0;
146 IA2_TABLE_MODEL_CHANGE_DELETE,
147 IA2_TABLE_MODEL_CHANGE_UPDATE
150 /** A structure defining the type of and extents of changes made to a table
152 IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct.
153 In the case of an insertion or change the row and column offsets define the boundaries
154 of the inserted or changed subtable after the operation. In the case of a deletion
155 the row and column offsets define the boundaries of the subtable being removed before
156 the removal.
158 typedef struct IA2TableModelChange {
159 enum IA2TableModelChangeType type; // insert, delete, update
160 long firstRow; ///< 0 based, inclusive
161 long lastRow; ///< 0 based, inclusive
162 long firstColumn; ///< 0 based, inclusive
163 long lastColumn; ///< 0 based, inclusive
164 } IA2TableModelChange;