Bug 850713 - Bump the required NDK version to 9. r=blassey.bugs,mh+mozilla
[gecko.git] / other-licenses / ia2 / AccessibleStates.idl
bloba186a7fc258c8095a1363e47ed97b84b6114dcec
1 /*************************************************************************
3 * File Name (AccessibleStates.idl)
5 * IAccessible2 IDL Specification
7 * Copyright (c) Linux Foundation 2007, 2008
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., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
25 ************************************************************************/
27 import "objidl.idl";
29 typedef long AccessibleStates;
31 /** %IAccessible2 specific state bit constants
33 This enum defines the state bits returned by IAccessible2::states. The
34 %IAccessible2 state bits are in addition to those returned by MSAA.
36 enum IA2States {
38 /** Indicates a window is currently the active window, or is an active subelement
39 within a container or table.
41 This state can be used to indicate the current active item in a container, even
42 if the container itself is not currently active. In other words this would indicate
43 the item that will get focus if you tab to the container.
45 This information is important for knowing what to report for trees and potentially
46 other containers in a virtual buffer.
48 Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
50 IA2_STATE_ACTIVE = 0x1,
52 /** Indicates that the object is armed.
54 Used to indicate that the control is "pressed" and will be invoked when the
55 actuator, e.g. a mouse button, is "released". An AT which either monitors the
56 mouse or synthesizes mouse events might need to know that, and possibly a talking
57 interface would even let the user know about it. It could also potentially be
58 useful to on screen keyboards or test tools since the information does indicate
59 something about the state of the interface, for example, code operating asynchronously
60 might need to wait for the armed state to change before doing something else.
63 IA2_STATE_ARMED = 0x2,
65 /** Indicates the user interface object corresponding to this object no longer exists. */
66 IA2_STATE_DEFUNCT = 0x4,
68 /** Indicates the user can change the contents of this object. */
69 IA2_STATE_EDITABLE = 0x8,
71 /** Indicates the orientation of this object is horizontal. */
72 IA2_STATE_HORIZONTAL = 0x10,
74 /** Indicates this object is minimized and is represented only by an icon. */
75 IA2_STATE_ICONIFIED = 0x20,
77 /** Indicates an input validation failure. */
78 IA2_STATE_INVALID_ENTRY = 0x40,
80 /** Indicates that this object manages its children.
82 Note: Due to the fact that MSAA's WinEvents don't allow the active child index
83 to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event, the manages
84 descendants scheme can't be used. Instead the active child object has to fire
85 MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
86 added to provide for event specific data to be passed with the event. At that
87 time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
88 IA2_STATE_MANAGES_DESCENDANTS state would be useful.
90 IA2_STATE_MANAGES_DESCENDANTS = 0x80,
92 /** Indicates that an object is modal.
94 Modal objects have the behavior that something must be done with the object
95 before the user can interact with an object in a different window.
97 IA2_STATE_MODAL = 0x100,
99 /** Indicates this text object can contain multiple lines of text. */
100 IA2_STATE_MULTI_LINE = 0x200,
102 /** Indicates this object paints every pixel within its rectangular region. */
103 IA2_STATE_OPAQUE = 0x400,
105 /** Indicates that user interaction is required.
107 An example of when this state is used is when a field in a form must be filled
108 before a form can be processed.
110 IA2_STATE_REQUIRED = 0x800,
112 /** Indicates an object which supports text selection.
114 Note: This is different than MSAA STATE_SYSTEM_SELECTABLE.
116 IA2_STATE_SELECTABLE_TEXT = 0x1000,
118 /** Indicates that this text object can contain only a single line of text. */
119 IA2_STATE_SINGLE_LINE = 0x2000,
121 /** Indicates that the accessible object is stale.
123 This state is used when the accessible object no longer accurately
124 represents the state of the object which it is representing such as when an
125 object is transient or when an object has been or is in the process of being
126 destroyed or when the object's index in its parent has changed.
128 IA2_STATE_STALE = 0x4000,
130 /** Indicates that the object implements autocompletion.
132 This state indicates that a text control will respond to the input of
133 one ore more characters and cause a sub-item to become selected. The
134 selection may also result in events fired on the parent object.
136 IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
138 /** Indicates this object is transient.
140 An object has this state when its parent object has the state ::IA2_STATE_MANAGES_DESCENDANTS.
141 For example, a list item object may be managed by its parent list object and may only
142 exist as long as the object is actually rendered. Similarly a table cell's accessible
143 object may exist only while the cell has focus. However, from the perspective of an
144 assistive technology a transient object behaves like a non-transient object. As a
145 result it is likely that this state is not of use to an assistive technology, but it
146 is provided in case an assistive technology determines that knowledge of the transient
147 nature of the object is useful and also for harmony with the Linux accessibility API.
149 Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
151 IA2_STATE_TRANSIENT = 0x10000,
153 /** Indicates the orientation of this object is vertical. */
154 IA2_STATE_VERTICAL = 0x20000