Add function atk_object_real_set_role() and use it to implement
[platform/upstream/atk.git] / atk / atkstate.h
1 /* ATK -  Accessibility Toolkit
2  * Copyright 2001 Sun Microsystems Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 #ifndef __ATK_STATE_H__
21 #define __ATK_STATE_H__
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif /* __cplusplus */
26
27 #include <glib-object.h>
28
29 typedef enum
30 {
31   ATK_STATE_INVALID,
32   /* Indicates a window is currently the active window */
33   ATK_STATE_ACTIVE,
34   /* Indicates that the object is armed */
35   ATK_STATE_ARMED,
36   /* Indicates the current object is busy */
37   ATK_STATE_BUSY,
38   /* Indicates this object is currently checked */
39   ATK_STATE_CHECKED,
40   /* Indicates this object is collapsed */
41   ATK_STATE_COLLAPSED,
42   /*
43    * Indicates the user interface object corresponding to this object
44    * no longer exists.
45    */
46   ATK_STATE_DEFUNCT,
47   /* Indicates the user can change the contents of this object */
48   ATK_STATE_EDITABLE,
49   /* Indicates this object allows progressive disclosure of its children */
50   ATK_STATE_EXPANDABLE,
51   /* Indicates this object its expanded */
52   ATK_STATE_EXPANDED,
53   /*
54    * Indicates this object can accept keyboard focus, which means all
55    * events resulting from typing on the keyboard will normally be passed
56    * to it when it has focus
57    */
58   ATK_STATE_FOCUSABLE,
59   /* Indicates this object currently has the keyboard focus */
60   ATK_STATE_FOCUSED,
61   /* Indicates the orientation of this object is horizontal */
62   ATK_STATE_HORIZONTAL,
63   /* Indicates this object is minimized and is represented only by an icon */
64   ATK_STATE_ICONIFIED,
65   /*
66    * Indicates something must be done with this object before the user can
67    * interact with an object in a different window.
68    */
69   ATK_STATE_MODAL,
70   /* Indicates this (text) object can contain multiple lines of text */
71   ATK_STATE_MULTI_LINE,
72   /*
73    * Indicates this object allows more than one of its children to be
74    * selected at the same time
75    */
76   ATK_STATE_MULTISELECTABLE,
77   /* Indicates this object paints every pixel within its rectangular region. */
78   ATK_STATE_OPAQUE,
79   /* Indicates this object is currently pressed */
80   ATK_STATE_PRESSED,
81   /* Indicates the size of this object is not fixed */
82   ATK_STATE_RESIZABLE,
83   /*
84    * Indicates this object is the child of an object that allows its
85    * children to be selected and that this child is one of those children
86    * that can be selected.
87    */
88   ATK_STATE_SELECTABLE,
89   /*
90    * Indicates this object is the child of an object that allows its
91    * children to be selected and that this child is one of those children
92    * that has been selected.
93    */
94   ATK_STATE_SELECTED,
95   /* Indicates this object is sensitive */
96   ATK_STATE_SENSITIVE,
97   /*
98    * Indicates this object, the object's parent, the object's parent's
99    * parent, and so on, are all visible
100    */
101   ATK_STATE_SHOWING,
102   /* Indicates this (text) object can contain only a single line of text */
103   ATK_STATE_SINGLE_LINE,
104   /* Indicates this object is transient */
105   ATK_STATE_TRANSIENT,
106   /* Indicates the orientation of this object is vertical */
107   ATK_STATE_VERTICAL,
108   /* Indicates this object is visible */
109   ATK_STATE_VISIBLE,
110   ATK_STATE_LAST_DEFINED
111 } AtkStateType;
112
113 typedef guint64      AtkState;
114
115 AtkStateType atk_state_type_register            (const gchar *name);
116
117 G_CONST_RETURN gchar* atk_state_type_get_name   (AtkStateType type);
118 AtkStateType          atk_state_type_for_name   (const gchar  *name);
119
120 #ifdef __cplusplus
121 }
122 #endif /* __cplusplus */
123
124 #endif /* __ATK_STATE_H__ */