2002-09-13 Michael Meeks <michael@ximian.com>
[platform/upstream/at-spi2-core.git] / cspi / spi-roletypes.h
1 /*
2  * AT-SPI - Assistive Technology Service Provider Interface
3  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
4  *
5  * Copyright 2001, 2002 Sun Microsystems Inc.,
6  * Copyright 2001, 2002 Ximian, Inc.
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public
19  * License along with this library; if not, write to the
20  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  */
23
24 #ifndef _SPI_ROLETYPES_H_
25 #define _SPI_ROLETYPES_H_
26
27 #ifdef  __cplusplus
28 extern "C" {
29 #endif
30
31 /**
32  * AccessibleRole:
33  * @SPI_ROLE_INVALID: role is not legal, something is wrong with this object
34  * @SPI_ROLE_ACCEL_LABEL: object is a label indicating keyboard
35  *                              accelerators for the parent
36  * @SPI_ROLE_ALERT: Object is used to alert the user about something
37  * @SPI_ROLE_ANIMATION: Object contains a dynamic or moving image
38  * @SPI_ROLE_ARROW: Object is a 2d directional indicator
39  * @SPI_ROLE_CALENDAR: Object contains one or more dates, usually arranged into
40  *                     a 2d list
41  * @SPI_ROLE_CANVAS: Object that can be drawn into and is used to trap events
42  * @SPI_ROLE_CHECK_BOX: Object representd a choice that can be checked or unchecked
43  *                    and provides a separate indicator for the current state.
44  * @SPI_ROLE_CHECK_MENU_ITEM: Object is a menu item that behaves like a CHECK_BOX
45  * @SPI_ROLE_COLOR_CHOOSER: A specialized dialog that lets the user choose a color.
46  * @SPI_ROLE_COLUMN_HEADER: The header for a column of data 
47  * @SPI_ROLE_COMBO_BOX: A list of choices the user can select from
48  * @SPI_ROLE_DATE_EDITOR: Allows entry of a date
49  * @SPI_ROLE_DESKTOP_ICON: An inconifed internal frame within a DESKTOP_PANE
50  * @SPI_ROLE_DESKTOP_FRAME: A pane that supports internal frames and
51  *              iconified versions of those internal frames.
52  * @SPI_ROLE_DIAL: A rotating/rotatable valuator
53  * @SPI_ROLE_DIALOG: A top level window with title bar and a border
54  * @SPI_ROLE_DIRECTORY_PANE: A pane that allows the user to navigate
55  *              through and select the contents of a directory.
56  * @SPI_ROLE_DRAWING_AREA: An object used for drawing custom user interface elements
57  * @SPI_ROLE_FILE_CHOOSER: A specialized dialog that displays the files in the
58  *               directory and lets the user select a file, browse a different
59  *               directory, or specify a filename.
60  * @SPI_ROLE_FILLER: A object that fills up space in a user interface
61  * @SPI_ROLE_FONT_CHOOSER: Allows selection of a display font
62  * @SPI_ROLE_FRAME: A top level window with a title bar, border, menubar, etc.
63  * @SPI_ROLE_GLASS_PANE: A pane that is guaranteed to be painted on top of all
64  *               panes beneath it
65  * @SPI_ROLE_HTML_CONTAINER: A document container for HTML, whose children
66  *               represent the document content.
67  * @SPI_ROLE_ICON: A small fixed size picture, typically used to decorate components.
68  * @SPI_ROLE_IMAGE: An image, typically static
69  * @SPI_ROLE_INTERNAL_FRAME: A frame-like object that is clipped by a desktop pane.
70  * @SPI_ROLE_LABEL: An object used to present an icon or short string in an interface
71  * @SPI_ROLE_LAYERED_PANE: A specialized pane that allows its children to be drawn in layers
72  *                         providing a  form of stacking order.
73  * @SPI_ROLE_LIST: An object that presents a list of objects to the user and allows the
74  *                         user to select one or more of them.
75  * @SPI_ROLE_LIST_ITEM: An object that represents an element of a list.
76  * @SPI_ROLE_MENU: An object usually found inside a menu bar that contains a list of
77  *                 actions the user can choose from.
78  * @SPI_ROLE_MENU_BAR: An object usually drawn at the top of the primary dialog box of an
79  *                 application that contains a list of menus the user can choose from.
80  * @SPI_ROLE_MENU_ITEM: An object usually contained in a menu that presents an
81  *                 action the user can choose.
82  * @SPI_ROLE_OPTION_PANE: A specialized pane whose primary use is inside a DIALOG 
83  * @SPI_ROLE_PAGE_TAB: An object that is a child of a page tab list
84  * @SPI_ROLE_PAGE_TAB_LIST: An object that presents a series of panels (or page tabs),
85  *        one at a time, through some mechanism provided by the object.
86  * @SPI_ROLE_PANEL: A generic container that is often used to group objects.
87  * @SPI_ROLE_PASSWORD_TEXT: A text object uses for passwords, or other places where
88  *        the text content is not shown visibly to the user.
89  * @SPI_ROLE_POPUP_MENU: A temporary window that is usually used to offer the user a
90  *        list of choices, and then hides when the user selects one of those choices.
91  * @SPI_ROLE_PROGRESS_BAR: An object used to indicate how much of a task has been completed.
92  * @SPI_ROLE_PUSH_BUTTON: A specialized object which the user can interact with to tell
93  *        the application to do something.
94  * @SPI_ROLE_RADIO_BUTTON: A specialized check box that will cause other radio buttons in the
95  *        same group to become uncghecked when this one is checked.
96  * @SPI_ROLE_RADIO_MENU_ITEM: A specialized menu item that behaves like a 
97  *        radio button.
98  * @SPI_ROLE_ROOT_PANE: A specialized pane that has a glass pane and a layered pane as its
99  *        children.
100  * @SPI_ROLE_ROW_HEADER: The header for a row of data
101  * @SPI_ROLE_SCROLL_BAR: An object usually used to allow a user to incrementally
102  *        view a large amount of data.
103  * @SPI_ROLE_SCROLL_PANE: An object that allows a user to incrementally view a large amount
104  *         of information.
105  * @SPI_ROLE_SEPARATOR: An object usually contained in a menu to provide a visible and
106  *        logical separation of the contents in a menu.
107  * @SPI_ROLE_SLIDER: An object that allows the user to select from a bounded range.
108  * @SPI_ROLE_SPIN_BUTTON: An object which allows selection from a set of choices and
109  *                        displays the current choice.
110  * @SPI_ROLE_SPLIT_PANE: A specialized panel that presents two other panels at the same time.
111  * @SPI_ROLE_STATUS_BAR: An object the display qualitative status information. c.f. PROGRESS_BAR
112  * @SPI_ROLE_TABLE: An object used to rpesent information in terms of rows and columns.
113  * @SPI_ROLE_TABLE_CELL: An object which is a descendant of a table,
114  *        with a row/column location.  A cell may span multiple rows and columns.
115  * @SPI_ROLE_TABLE_COLUMN_HEADER: An object which serves to describe a column in a table.
116  * @SPI_ROLE_TABLE_ROW_HEADER: An object which serves to label or describe a row in a table.
117  * @SPI_ROLE_TEAROFF_MENU_ITEM: A menu item which allows the menu to be removed from
118  *                              a menubar and placed in its own window
119  * @SPI_ROLE_TERMINAL: An object that emulates a teletype or terminal
120  * @SPI_ROLE_TEXT: An object that presents text to the user
121  * @SPI_ROLE_TOGGLE_BUTTON: A specialized push button that can be checked or unchecked,
122  *        but does not provide a separate indicator for the current state.
123  * @SPI_ROLE_TOOL_BAR: A bar or palette usually composed of push buttons or toggle buttons
124  * @SPI_ROLE_TOOL_TIP: An object that provides information about another object
125  * @SPI_ROLE_TREE: An object used to represent hierarchical information to the user
126  * @SPI_ROLE_TREE_TABLE: An object which represents both hierarchical and tabular information
127  * @SPI_ROLE_UNKNOWN: The object contains some SpiAccessible information, but its role is
128  *                    not known.
129  * @SPI_ROLE_VIEWPORT: An object usually used in a scroll pane, which restricts the visual
130  *                    area into which its contents are presented.
131  * @SPI_ROLE_WINDOW: A top level window with no title or border.
132  * @SPI_ROLE_EXTENDED: This object's role is not included in the standard role list and
133  *                     should be queried by name.
134  * @SPI_ROLE_LAST_DEFINED: Used to determine the end of the role enumeration.
135  **/
136 typedef enum
137 {
138   SPI_ROLE_INVALID,
139   SPI_ROLE_ACCEL_LABEL,
140   SPI_ROLE_ALERT,
141   SPI_ROLE_ANIMATION,
142   SPI_ROLE_ARROW,
143   SPI_ROLE_CALENDAR,
144   SPI_ROLE_CANVAS,
145   SPI_ROLE_CHECK_BOX,
146   SPI_ROLE_CHECK_MENU_ITEM,
147   SPI_ROLE_COLOR_CHOOSER,
148   SPI_ROLE_COLUMN_HEADER,
149   SPI_ROLE_COMBO_BOX,
150   SPI_ROLE_DATE_EDITOR,
151   SPI_ROLE_DESKTOP_ICON,
152   SPI_ROLE_DESKTOP_FRAME,
153   SPI_ROLE_DIAL,
154   SPI_ROLE_DIALOG,
155   SPI_ROLE_DIRECTORY_PANE,
156   SPI_ROLE_DRAWING_AREA,
157   SPI_ROLE_FILE_CHOOSER,
158   SPI_ROLE_FILLER,
159   SPI_ROLE_FONT_CHOOSER,
160   SPI_ROLE_FRAME,
161   SPI_ROLE_GLASS_PANE,
162   SPI_ROLE_HTML_CONTAINER,
163   SPI_ROLE_ICON,
164   SPI_ROLE_IMAGE,
165   SPI_ROLE_INTERNAL_FRAME,
166   SPI_ROLE_LABEL,
167   SPI_ROLE_LAYERED_PANE,
168   SPI_ROLE_LIST,
169   SPI_ROLE_LIST_ITEM,
170   SPI_ROLE_MENU,
171   SPI_ROLE_MENU_BAR,
172   SPI_ROLE_MENU_ITEM,
173   SPI_ROLE_OPTION_PANE,
174   SPI_ROLE_PAGE_TAB,
175   SPI_ROLE_PAGE_TAB_LIST,
176   SPI_ROLE_PANEL,
177   SPI_ROLE_PASSWORD_TEXT,
178   SPI_ROLE_POPUP_MENU,
179   SPI_ROLE_PROGRESS_BAR,
180   SPI_ROLE_PUSH_BUTTON,
181   SPI_ROLE_RADIO_BUTTON,
182   SPI_ROLE_RADIO_MENU_ITEM,
183   SPI_ROLE_ROOT_PANE,
184   SPI_ROLE_ROW_HEADER,
185   SPI_ROLE_SCROLL_BAR,
186   SPI_ROLE_SCROLL_PANE,
187   SPI_ROLE_SEPARATOR,
188   SPI_ROLE_SLIDER,
189   SPI_ROLE_SPIN_BUTTON,
190   SPI_ROLE_SPLIT_PANE,
191   SPI_ROLE_STATUS_BAR,
192   SPI_ROLE_TABLE,
193   SPI_ROLE_TABLE_CELL,
194   SPI_ROLE_TABLE_COLUMN_HEADER,
195   SPI_ROLE_TABLE_ROW_HEADER,
196   SPI_ROLE_TEAROFF_MENU_ITEM,
197   SPI_ROLE_TERMINAL,
198   SPI_ROLE_TEXT,
199   SPI_ROLE_TOGGLE_BUTTON,
200   SPI_ROLE_TOOL_BAR,
201   SPI_ROLE_TOOL_TIP,
202   SPI_ROLE_TREE,
203   SPI_ROLE_TREE_TABLE,
204   SPI_ROLE_UNKNOWN,
205   SPI_ROLE_VIEWPORT,
206   SPI_ROLE_WINDOW,
207   SPI_ROLE_EXTENDED,
208   SPI_ROLE_LAST_DEFINED
209 } AccessibleRole;
210
211 char* AccessibleRole_getName (AccessibleRole role);
212
213 #ifdef  __cplusplus
214 }
215 #endif
216
217 #endif