Added new functions to AtkUtil.
[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_EXPANDABLE: Indicates this object allows progressive disclosure of its children
40  *@ATK_STATE_EXPANDED: Indicates this object its expanded
41  *@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
42  *@ATK_STATE_FOCUSED: Indicates this object currently has the keyboard focus
43  *@ATK_STATE_HORIZONTAL: Indicates the orientation of this object is horizontal
44  *@ATK_STATE_ICONIFIED: Indicates this object is minimized and is represented only by an icon
45  *@ATK_STATE_MODAL: Indicates something must be done with this object before the user can interact with an object in a different window
46  *@ATK_STATE_MULTI_LINE: Indicates this (text) object can contain multiple lines of text
47  *@ATK_STATE_MULTISELECTABLE: Indicates this object allows more than one of its children to be selected at the same time
48  *@ATK_STATE_OPAQUE: Indicates this object paints every pixel within its rectangular region
49  *@ATK_STATE_PRESSED: Indicates this object is currently pressed
50  *@ATK_STATE_RESIZABLE: Indicates the size of this object is not fixed
51  *@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
52  *@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
53  *@ATK_STATE_SENSITIVE: Indicates this object is sensitive
54  *@ATK_STATE_SHOWING: Indicates this object, the object's parent, the object's parent's parent, and so on, are all visible
55  *@ATK_STATE_SINGLE_LINE: Indicates this (text) object can contain only a single line of text
56  *@ATK_STATE_STALE: Indicates that the index associated with this object has changed since the user accessed the object.
57  *@ATK_STATE_TRANSIENT: Indicates this object is transient
58  *@ATK_STATE_VERTICAL: Indicates the orientation of this object is vertical
59  *@ATK_STATE_VISIBLE: Indicates this object is visible
60  *@ATK_STATE_LAST_DEFINED: Not a valid role, used for finding end of enumeration
61  *
62  *The possible types of states of an object
63  **/ 
64 typedef enum
65 {
66   ATK_STATE_INVALID,
67   ATK_STATE_ACTIVE,
68   ATK_STATE_ARMED,
69   ATK_STATE_BUSY,
70   ATK_STATE_CHECKED,
71   ATK_STATE_COLLAPSED,
72   ATK_STATE_DEFUNCT,
73   ATK_STATE_EDITABLE,
74   ATK_STATE_EXPANDABLE,
75   ATK_STATE_EXPANDED,
76   ATK_STATE_FOCUSABLE,
77   ATK_STATE_FOCUSED,
78   ATK_STATE_HORIZONTAL,
79   ATK_STATE_ICONIFIED,
80   ATK_STATE_MODAL,
81   ATK_STATE_MULTI_LINE,
82   ATK_STATE_MULTISELECTABLE,
83   ATK_STATE_OPAQUE,
84   ATK_STATE_PRESSED,
85   ATK_STATE_RESIZABLE,
86   ATK_STATE_SELECTABLE,
87   ATK_STATE_SELECTED,
88   ATK_STATE_SENSITIVE,
89   ATK_STATE_SHOWING,
90   ATK_STATE_SINGLE_LINE,
91   ATK_STATE_STALE,
92   ATK_STATE_TRANSIENT,
93   ATK_STATE_VERTICAL,
94   ATK_STATE_VISIBLE,
95   ATK_STATE_LAST_DEFINED
96 } AtkStateType;
97
98 typedef guint64      AtkState;
99
100 AtkStateType atk_state_type_register            (const gchar *name);
101
102 G_CONST_RETURN gchar* atk_state_type_get_name   (AtkStateType type);
103 AtkStateType          atk_state_type_for_name   (const gchar  *name);
104
105 #ifdef __cplusplus
106 }
107 #endif /* __cplusplus */
108
109 #endif /* __ATK_STATE_H__ */