[prevent][42870] Fix for null pointer dereference
[platform/upstream/at-spi2-core.git] / idl / accessible.didl
1
2 /*
3   The base interface which is implemented by all accessible objects.
4  */
5
6 interface org.freestandards.atspi.Accessible {
7
8         enum <uint32> Role {
9                 ROLE_INVALID = 0,
10                 ROLE_ACCELERATOR_LABEL,
11                 ROLE_ALERT,
12                 ROLE_ANIMATION,
13                 ROLE_ARROW,
14                 ROLE_CALENDAR,
15                 ROLE_CANVAS,
16                 ROLE_CHECK_BOX,
17                 ROLE_CHECK_MENU_ITEM,
18                 ROLE_COLOR_CHOOSER,
19                 ROLE_COLUMN_HEADER,
20                 ROLE_COMBO_BOX,
21                 ROLE_DATE_EDITOR,
22                 ROLE_DESKTOP_ICON,
23                 ROLE_DESKTOP_FRAME,
24                 ROLE_DIAL,
25                 ROLE_DIALOG,
26                 ROLE_DIRECTORY_PANE,
27                 ROLE_DRAWING_AREA,
28                 ROLE_FILE_CHOOSER,
29                 ROLE_FILLER,
30                 ROLE_FOCUS_TRAVERSABLE,
31                 ROLE_FONT_CHOOSER,
32                 ROLE_FRAME,
33                 ROLE_GLASS_PANE,
34                 ROLE_HTML_CONTAINER,
35                 ROLE_ICON,
36                 ROLE_IMAGE,
37                 ROLE_INTERNAL_FRAME,
38                 ROLE_LABEL,
39                 ROLE_LAYERED_PANE,
40                 ROLE_LIST,
41                 ROLE_LIST_ITEM,
42                 ROLE_MENU,
43                 ROLE_MENU_BAR,
44                 ROLE_MENU_ITEM,
45                 ROLE_OPTION_PANE,
46                 ROLE_PAGE_TAB,
47                 ROLE_PAGE_TAB_LIST,
48                 ROLE_PANEL,
49                 ROLE_PASSWORD_TEXT,
50                 ROLE_POPUP_MENU,
51                 ROLE_PROGRESS_BAR,
52                 ROLE_PUSH_BUTTON,
53                 ROLE_RADIO_BUTTON,
54                 ROLE_RADIO_MENU_ITEM,
55                 ROLE_ROOT_PANE,
56                 ROLE_ROW_HEADER,
57                 ROLE_SCROLL_BAR,
58                 ROLE_SCROLL_PANE,
59                 ROLE_SEPARATOR,
60                 ROLE_SLIDER,
61                 ROLE_SPIN_BUTTON,
62                 ROLE_SPLIT_PANE,
63                 ROLE_STATUS_BAR,
64                 ROLE_TABLE,
65                 ROLE_TABLE_CELL,
66                 ROLE_TABLE_COLUMN_HEADER,
67                 ROLE_TABLE_ROW_HEADER,
68                 ROLE_TEAROFF_MENU_ITEM,
69                 ROLE_TERMINAL,
70                 ROLE_TEXT,
71                 ROLE_TOGGLE_BUTTON,
72                 ROLE_TOOL_BAR,
73                 ROLE_TOOL_TIP,
74                 ROLE_TREE,
75                 ROLE_TREE_TABLE,
76                 ROLE_UNKNOWN
77         }
78
79         /*
80           RelationType specifies a relationship between objects outside of the normal
81           parent/child hierarchical relationship. It allows better semantic
82           identification of how objects are associated with one another.
83          */
84         enum <uint32> RelationType {
85                 RELATION_NULL = 0,
86                 RELATION_LABEL_FOR,
87                 RELATION_LABELLED_BY,
88                 RELATION_CONTROLLER_FOR,
89                 RELATION_CONTROLLED_BY,
90                 RELATION_MEMBER_OF,
91                 RELATION_TOOLTIP_FOR,
92                 RELATION_NODE_CHILD_OF,
93                 RELATION_NODE_PARENT_OF,
94                 RELATION_EXTENDED,
95                 RELATION_FLOWS_TO,
96                 RELATION_FLOWS_FROM,
97                 RELATION_SUBWINDOW_OF,
98                 RELATION_EMBEDS,
99                 RELATION_EMBEDDED_BY,
100                 RELATION_POPUP_FOR,
101                 RELATION_PARENT_WINDOW_OF,
102                 RELATION_DESCRIPTION_FOR,
103                 RELATION_DESCRIBED_BY,
104                 RELATION_LAST_DEFINED
105         }
106
107         /*
108           Describes a one-to-many relationship between accessible objects.
109          */
110         struct Relation {
111                 RelationType type;
112                 Reference    objects [];        
113         }
114
115         enum uint32 StateType {
116                 STATE_INVALID = 0,
117                 STATE_ACTIVE,
118                 STATE_ARMED,
119                 STATE_BUSY,
120                 STATE_CHECKED,
121                 STATE_COLLAPSED,
122                 STATE_DEFUNCT,
123                 STATE_EDITABLE,
124                 STATE_ENABLED,
125                 STATE_EXPANDABLE,
126                 STATE_EXPANDED,
127                 STATE_FOCUSABLE,
128                 STATE_FOCUSED,
129                 STATE_HAS_TOOLTIP,
130                 STATE_HORIZONTAL,
131                 STATE_ICONIFIED,
132                 STATE_MODAL,
133                 STATE_MULTI_LINE,
134                 STATE_MULTISELECTABLE,
135                 STATE_OPAQUE,
136                 STATE_PRESSED,
137                 STATE_RESIZABLE,
138                 STATE_SELECTABLE,
139                 STATE_SELECTED,
140                 STATE_SENSITIVE,
141                 STATE_SHOWING,
142                 STATE_SINGLE_LINE,
143                 STATE_STALE,
144                 STATE_TRANSIENT,
145                 STATE_VERTICAL,
146                 STATE_VISIBLE,
147                 STATE_MANAGES_DESCENDANTS,
148                 STATE_INDETERMINATE,
149                 STATE_REQUIRED,
150                 STATE_TRUNCATED,
151                 STATE_ANIMATED,
152                 STATE_INVALID_ENTRY,
153                 STATE_SUPPORTS_AUTOCOMPLETION,
154                 STATE_SELECTABLE_TEXT,
155                 STATE_IS_DEFAULT,
156                 STATE_VISITED,
157                 STATE_LAST_DEFINED
158         } 
159
160         /* 
161           A two integer array representing a bit-field of currently held states.
162          */
163         typedef State uint32 [];
164
165         /* A short string representing the object's name. */
166         read property string Name;
167
168         /* A string describing the object in more detail. */
169         read property string Description;
170
171         /* The accessible object which is this objects containing parent */
172         read property Reference Parent;
173
174         /* The number of children contained by this object */
175         read property int32 ChildCount;
176
177         /* Get the accessible child of this object at the given index */
178         method GetChildAtIndex {
179                 int32 index;
180         } reply {
181                 Reference child;
182         }
183
184         /* Get the index of this accessible object within its containing objects child list. */ 
185         method GetIndexInParent reply {
186                 int32 index;
187         }
188
189         /* Access this objects non-hierarchical relationships to other accessible objects */
190         method GetRelationSet reply {
191                 RelationSet relations;
192         }
193
194         /* Get the Role indicating the type of UI role played by this object. */
195         method GetRole reply {
196                 Role role;
197         }
198
199         /* Get a string indicating the type of UI role played by this object */ 
200         method GetRoleName reply {
201                 string role;
202         }
203
204         /* 
205           Get a string indicating the type of UI role played by this object,
206           transalted to the current locale.
207          */
208         method GetLocalizedRoleName {
209                 string role;
210         }
211
212         /* Access the states currently held by this object. */
213         method GetState reply {
214                 State state;
215         }
216
217         /*
218           Get a properties applied to this object as a whole, as an
219           set name-value pairs. As such these attributes may be considered
220           weakly-typed properties or annotations, as distinct
221           from the strongly-typed interface instance data.
222         */
223         method GetAttributes reply {
224                 Attributes attributes;
225         }
226
227         /*
228           Get the containing Application for this object.
229          */
230         method GetApplication reply {
231                 Reference application;
232         }
233 }
234