1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_accessibility_AccessibleStateType_idl__
25#define __com_sun_star_accessibility_AccessibleStateType_idl__
26
27module com { module sun { module star { module accessibility {
28
29/** Collection of state types.
30
31    <p>This list of constants defines the available set of states that an
32    object that implements <type>XAccessibleContext</type> can be in.</p>
33
34    <p>The comments describing the states is taken verbatim from the Java
35    Accessibility API 1.4 documentation.</p>
36
37    <p>We are using constants instead of a more typesafe enum.  The reason
38    for this is that IDL enums may not be extended.  Therefore, in order to
39    include future extensions to the set of roles we have to use constants
40    here.</p>
41
42    @since OpenOffice 1.1.2
43*/
44published constants AccessibleStateType
45{
46    /** Indicates an invalid state.
47    */
48	const short INVALID = 0;
49
50    /** Indicates a window is currently the active window.
51    */
52    const short ACTIVE = 1;
53
54    /** Indicates that the object is armed.
55    */
56    const short ARMED = 2;
57
58    /** Indicates the current object is busy.
59    */
60    const short BUSY = 3;
61
62    /** Indicates this object is currently checked.
63    */
64    const short CHECKED = 4;
65
66    /** User interface object corresponding to this object no longer exists.
67
68        <p>Indicates the user interface object corresponding to this object
69        no longer exists.</p>
70    */
71	const short DEFUNC = 5;
72
73    /** Indicates the user can change the contents of this object.
74    */
75    const short EDITABLE = 6;
76
77    /** Indicates this object is enabled.
78    */
79    const short ENABLED = 7;
80
81    /** Indicates this object allows progressive disclosure of its children.
82    */
83    const short EXPANDABLE = 8;
84
85    /** Indicates this object is expanded.
86    */
87    const short EXPANDED = 9;
88
89    /** Object can accept the keyboard focus.
90
91        <p>Indicates this object can accept keyboard focus, which means all
92        events resulting from typing on the keyboard will normally be passed
93        to it when it has focus.</p>
94    */
95    const short FOCUSABLE = 10;
96
97    /** Indicates this object currently has the keyboard focus.
98    */
99    const short FOCUSED = 11;
100
101    /** Indicates the orientation of this object is horizontal.
102    */
103    const short HORIZONTAL = 12;
104
105    /** Indicates this object is minimized and is represented only by an
106        icon.
107    */
108    const short ICONIFIED = 13;
109
110    /** Sometimes UI elements can have a state indeterminate.
111        This can happen e.g. if a check box reflects the bold state of text in a text processor.
112        When the current selection contains text which is bold and also text which is not bold, the state is indeterminate.
113
114    */
115    const short INDETERMINATE = 14;
116
117    /** Indicates the most (all) children are transient and it is not
118        necessary to add listener to the children. Only the active descendant
119        (given by the event) should be not transient to make it possible
120        to add listener to this object and recognize changes in this object.
121
122        The state is added to make a performance improvment. Now it is no
123        longer necessary to iterate over all children to find out whether
124        they are transient or not to decide whether to add listener or not.
125        If there is a object with this state no one should iterate over the
126        children to add listener. Only the active descendant should get
127        listener if it is not transient.
128    */
129    const short MANAGES_DESCENDANTS = 15;
130
131    /** Object is modal.
132
133        <p>Indicates something must be done with this object before the user
134        can interact with an object in a different window.</p>
135    */
136    const short MODAL = 16;
137
138    /** Indicates this (text) object can contain multiple lines of text
139    */
140    const short MULTI_LINE = 17;
141
142    /** More than one child may be selected at the same time.
143
144        <p>Indicates this object allows more than one of its children to be
145        selected at the same time.</p>
146    */
147    const short MULTI_SELECTABLE = 18;
148
149    /** Indicates this object paints every pixel within its rectangular
150        region.
151    */
152    const short OPAQUE = 19;
153
154    /** Indicates this object is currently pressed.
155    */
156    const short PRESSED = 20;
157
158    /** Indicates the size of this object is not fixed.
159    */
160    const short RESIZABLE = 21;
161
162    /** Object is selectable.
163
164        <p>Indicates this object is the child of an object that allows its
165        children to be selected, and that this child is one of those
166        children that can be selected.</p>
167    */
168    const short SELECTABLE = 22;
169
170    /** Object is selected.
171
172        <p>Indicates this object is the child of an object that allows its
173        children to be selected, and that this child is one of those
174        children that has been selected.</p>
175    */
176    const short SELECTED = 23;
177
178	/** Indicates this object is sensitive.
179    */
180	const short SENSITIVE = 24;
181
182    /** Object is displayed on the screen.
183
184        <p>An object has set the <const>SHOWING</const> state if itself and
185        all of its parents have set the <const>VISIBLE</const> state and it
186        lies at least partly inside the visible area of its parent.  It is,
187        though, not necessarily visible on the screen because it may be
188        ocluded by other objects.</p>
189    */
190    const short SHOWING = 25;
191
192    /** Indicates this (text) object can contain only a single line of text
193    */
194    const short SINGLE_LINE = 26;
195
196	/** ???
197    */
198	const short STALE = 27;
199
200    /** Indicates this object is transient.
201    */
202    const short TRANSIENT= 28;
203
204    /** Indicates the orientation of this object is vertical.
205    */
206    const short VERTICAL = 29;
207
208    /** Object wants to be displayed on the screen.
209
210        <p>A set <const>VISIBLE</const> state indicates that an object wants
211        to be displayed on the screen.  It is displayed, as indicated by a
212        set <const>SHOWING</const> state, if all of its parents have also
213        set the <const>VISIBLE</const> state and the object lies at least
214        partly in the visible area of its parent.</p>
215    */
216    const short VISIBLE = 30;
217
218    // The following constants have been introduced with the IA2 CWS:
219
220	// MOVEABLE only exists in MSAA/IA2, but not in ATK/JAA/NSAccessibility.
221    /** Indicates the position of the object is not fixed.
222    */
223    const short MOVEABLE = 31;
224
225	// DEFAULT exists in MSAA/IA2, and now also in ATK and NSAccessibility.
226    /** Indicates the object is the default button in a window
227    */
228    const short DEFAULT = 32;
229
230	// OFFSCREEN only exists in MSAA/IA2, but not in ATK/JAA/NSAccessibility.
231    // MT: Shouldn't this be the same like !SHOWING in UAA/ATK?
232    const short OFFSCREEN = 33;
233
234	// COLLAPSED exists in MSAA/IA2, and now also in JAA, but not in ATK/NSAccessibility. In NSAccessibility, there is a notification for collapse.
235    // In opposite to MSAA, UAA has EXPANDABLE, so EXPANDABLE && !EXPANDED should be the same like COLLAPSED.
236    const short COLLAPSE = 34;
237
238};
239
240}; }; }; };
241
242#endif
243