atk/atkstate.[c|h] Add ATK_STATE_ENABLED so we can distinguish between a
[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 /**
30  *AtkStateType:
31  *@ATK_STATE_INVALID: Indicates an invalid state
32  *@ATK_STATE_ACTIVE: Indicates a window is currently the active window
33  *@ATK_STATE_ARMED: Indicates that the object is armed
34  *@ATK_STATE_BUSY: Indicates the current object is busy
35  *@ATK_STATE_CHECKED: Indicates this object is currently checked
36  *@ATK_STATE_COLLAPSED: Indicates this object is collapsed
37  *@ATK_STATE_DEFUNCT: Indicates the user interface object corresponding to this object no longer exists
38  *@ATK_STATE_EDITABLE: Indicates the user can change the contents of this object
39  *@ATK_STATE_ENABLED: Indicates that this object is enabled
40  *@ATK_STATE_EXPANDABLE: Indicates this object allows progressive disclosure of its children
41  *@ATK_STATE_EXPANDED: Indicates this object its expanded
42  *@ATK_STATE_FOCUSABLE: Indicates this object can accept keyboard focus, which means all events resulting from typing on the keyboard will normally be passed to it when it has focus
43  *@ATK_STATE_FOCUSED: Indicates this object currently has the keyboard focus
44  *@ATK_STATE_HORIZONTAL: Indicates the orientation of this object is horizontal
45  *@ATK_STATE_ICONIFIED: Indicates this object is minimized and is represented only by an icon
46  *@ATK_STATE_MODAL: Indicates something must be done with this object before the user can interact with an object in a different window
47  *@ATK_STATE_MULTI_LINE: Indicates this (text) object can contain multiple lines of text
48  *@ATK_STATE_MULTISELECTABLE: Indicates this object allows more than one of its children to be selected at the same time
49  *@ATK_STATE_OPAQUE: Indicates this object paints every pixel within its rectangular region
50  *@ATK_STATE_PRESSED: Indicates this object is currently pressed
51  *@ATK_STATE_RESIZABLE: Indicates the size of this object is not fixed
52  *@ATK_STATE_SELECTABLE: Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that can be selected
53  *@ATK_STATE_SELECTED: Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that has been selected
54  *@ATK_STATE_SENSITIVE: Indicates this object is sensitive
55  *@ATK_STATE_SHOWING: Indicates this object, the object's parent, the object's parent's parent, and so on, are all visible
56  *@ATK_STATE_SINGLE_LINE: Indicates this (text) object can contain only a single line of text
57  *@ATK_STATE_STALE: Indicates that the index associated with this object has changed since the user accessed the object.
58  *@ATK_STATE_TRANSIENT: Indicates this object is transient
59  *@ATK_STATE_VERTICAL: Indicates the orientation of this object is vertical
60  *@ATK_STATE_VISIBLE: Indicates this object is visible
61  *@ATK_STATE_LAST_DEFINED: Not a valid role, used for finding end of enumeration
62  *
63  *The possible types of states of an object
64  **/ 
65 typedef enum
66 {
67   ATK_STATE_INVALID,
68   ATK_STATE_ACTIVE,
69   ATK_STATE_ARMED,
70   ATK_STATE_BUSY,
71   ATK_STATE_CHECKED,
72   ATK_STATE_COLLAPSED,
73   ATK_STATE_DEFUNCT,
74   ATK_STATE_EDITABLE,
75   ATK_STATE_ENABLED,
76   ATK_STATE_EXPANDABLE,
77   ATK_STATE_EXPANDED,
78   ATK_STATE_FOCUSABLE,
79   ATK_STATE_FOCUSED,
80   ATK_STATE_HORIZONTAL,
81   ATK_STATE_ICONIFIED,
82   ATK_STATE_MODAL,
83   ATK_STATE_MULTI_LINE,
84   ATK_STATE_MULTISELECTABLE,
85   ATK_STATE_OPAQUE,
86   ATK_STATE_PRESSED,
87   ATK_STATE_RESIZABLE,
88   ATK_STATE_SELECTABLE,
89   ATK_STATE_SELECTED,
90   ATK_STATE_SENSITIVE,
91   ATK_STATE_SHOWING,
92   ATK_STATE_SINGLE_LINE,
93   ATK_STATE_STALE,
94   ATK_STATE_TRANSIENT,
95   ATK_STATE_VERTICAL,
96   ATK_STATE_VISIBLE,
97   ATK_STATE_LAST_DEFINED
98 } AtkStateType;
99
100 typedef guint64      AtkState;
101
102 AtkStateType atk_state_type_register            (const gchar *name);
103
104 G_CONST_RETURN gchar* atk_state_type_get_name   (AtkStateType type);
105 AtkStateType          atk_state_type_for_name   (const gchar  *name);
106
107 #ifdef __cplusplus
108 }
109 #endif /* __cplusplus */
110
111 #endif /* __ATK_STATE_H__ */