Add atspi_accessible_get_reading_material
[platform/upstream/at-spi2-core.git] / atspi / atspi-accessible.h
1 /*
2  * AT-SPI - Assistive Technology Service Provider Interface
3  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
4  *
5  * Copyright 2002 Ximian, Inc.
6  *           2002 Sun Microsystems Inc.
7  * Copyright 2010, 2011 Novell, Inc.
8  *
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Library General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * Library General Public License for more details.
19  *
20  * You should have received a copy of the GNU Library General Public
21  * License along with this library; if not, write to the
22  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23  * Boston, MA 02111-1307, USA.
24  */
25
26 #ifndef _ATSPI_ACCESSIBLE_H_
27 #define _ATSPI_ACCESSIBLE_H_
28
29 G_BEGIN_DECLS
30
31 #include "glib-object.h"
32
33 #include "atspi-application.h"
34 #include "atspi-constants.h"
35 #include "atspi-object.h"
36 #include "atspi-stateset.h"
37 #include "atspi-types.h"
38
39 #define ATSPI_TYPE_ACCESSIBLE                        (atspi_accessible_get_type ())
40 #define ATSPI_ACCESSIBLE(obj)                        (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_ACCESSIBLE, AtspiAccessible))
41 #define ATSPI_ACCESSIBLE_CLASS(klass)                (G_TYPE_CHECK_CLASS_CAST ((klass), ATSPI_TYPE_ACCESSIBLE, AtspiAccessibleClass))
42 #define ATSPI_IS_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_ACCESSIBLE))
43 #define ATSPI_IS_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), ATSPI_TYPE_ACCESSIBLE))
44 #define ATSPI_ACCESSIBLE_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), ATSPI_TYPE_ACCESSIBLE, AtspiAccessibleClass))
45
46 typedef struct _AtspiAccessiblePrivate AtspiAccessiblePrivate;
47
48 struct _AtspiAccessibleReadingMaterial
49 {
50   AtspiAccessible *parent;
51   AtspiAccessible *described_by_accessible;
52   GHashTable *attributes;
53   AtspiRole role;
54   AtspiRole parent_role;
55   char *name;
56   char *labeled_by_name;
57   char *text_interface_name;
58   char *localized_role_name;
59   char *description;
60   gdouble value;
61   gdouble increment;
62   gdouble lower;
63   gdouble upper;
64   gint64 states;
65   gint64 parent_states;
66   gint child_count;
67   gint index_in_parent;
68   gint list_children_count;
69   gint first_selected_child_index;
70   gint parent_child_count;
71   gint parent_selected_child_count;
72   gboolean is_selected_in_parent;
73   gboolean has_checkbox_child;
74 };
75
76 struct _AtspiAccessible
77 {
78   AtspiObject parent;
79   AtspiAccessible *accessible_parent;
80   GList *children;
81   AtspiRole role;
82   gint interfaces;
83   char *name;
84   char *description;
85   AtspiStateSet *states;
86   GHashTable *attributes;
87   guint cached_properties;
88   AtspiAccessiblePrivate *priv;
89 };
90
91 typedef struct _AtspiAccessibleClass AtspiAccessibleClass;
92 struct _AtspiAccessibleClass
93 {
94   AtspiObjectClass parent_class;
95 };
96
97 GType atspi_accessible_get_type (void);
98
99 AtspiAccessible *
100 _atspi_accessible_new (AtspiApplication *app, const gchar *path);
101
102 gchar * atspi_accessible_get_name (AtspiAccessible *obj, GError **error);
103
104 gchar * atspi_accessible_get_description (AtspiAccessible *obj, GError **error);
105
106 gchar * atspi_accessible_get_path (AtspiAccessible *obj, GError **error);
107
108 gchar * atspi_accessible_get_bus_name (AtspiAccessible *obj, GError **error);
109
110 gchar * atspi_accessible_get_unique_id (AtspiAccessible *obj, GError **error);
111
112 AtspiAccessible *atspi_accessible_get_navigable_at_point (AtspiAccessible *root, gint x, gint y, AtspiCoordType ctype, GError **error);
113
114 AtspiAccessible *atspi_accessible_get_neighbor (AtspiAccessible *root, AtspiAccessible *start, AtspiNeighborSearchDirection direction, GError **error);
115
116 AtspiAccessibleReadingMaterial *atspi_accessible_get_reading_material (AtspiAccessible *obj, GError **error);
117
118 AtspiAccessible * atspi_accessible_get_parent (AtspiAccessible *obj, GError **error);
119
120 gint atspi_accessible_get_child_count (AtspiAccessible *obj, GError **error);
121
122 AtspiAccessible * atspi_accessible_get_child_at_index (AtspiAccessible *obj, gint    child_index, GError **error);
123
124 gint atspi_accessible_get_index_in_parent (AtspiAccessible *obj, GError **error);
125
126 GArray * atspi_accessible_get_relation_set (AtspiAccessible *obj, GError **error);
127
128 AtspiRole atspi_accessible_get_role (AtspiAccessible *obj, GError **error);
129
130 gchar * atspi_accessible_get_role_name (AtspiAccessible *obj, GError **error);
131
132 gchar * atspi_accessible_get_localized_role_name (AtspiAccessible *obj, GError **error);
133
134 AtspiStateSet * atspi_accessible_get_state_set (AtspiAccessible *obj);
135
136 GHashTable * atspi_accessible_get_attributes (AtspiAccessible *obj, GError **error);
137
138 GArray * atspi_accessible_get_attributes_as_array (AtspiAccessible *obj, GError **error);
139
140 gchar * atspi_accessible_get_toolkit_name (AtspiAccessible *obj, GError **error);
141
142 gchar * atspi_accessible_get_toolkit_version (AtspiAccessible *obj, GError **error);
143
144 gchar * atspi_accessible_get_atspi_version (AtspiAccessible *obj, GError **error);
145
146 gint atspi_accessible_get_id (AtspiAccessible *obj, GError **error);
147
148 AtspiAccessible * atspi_accessible_get_application (AtspiAccessible *obj, GError **error);
149
150 #ifndef ATSPI_DISABLE_DEPRECATED
151 AtspiAction * atspi_accessible_get_action (AtspiAccessible *obj);
152
153 AtspiCollection * atspi_accessible_get_collection (AtspiAccessible *obj);
154
155 AtspiComponent * atspi_accessible_get_component (AtspiAccessible *obj);
156
157 AtspiDocument * atspi_accessible_get_document (AtspiAccessible *obj);
158
159 AtspiEditableText * atspi_accessible_get_editable_text (AtspiAccessible *obj);
160
161 AtspiHyperlink * atspi_accessible_get_hyperlink (AtspiAccessible *obj);
162
163 AtspiHypertext * atspi_accessible_get_hypertext (AtspiAccessible *obj);
164
165 AtspiImage * atspi_accessible_get_image (AtspiAccessible *obj);
166
167 AtspiSelection * atspi_accessible_get_selection (AtspiAccessible *obj);
168
169 AtspiTable * atspi_accessible_get_table (AtspiAccessible *obj);
170
171 AtspiTableCell * atspi_accessible_get_table_cell (AtspiAccessible *obj);
172
173 AtspiText * atspi_accessible_get_text (AtspiAccessible *obj);
174
175 AtspiValue * atspi_accessible_get_value (AtspiAccessible *obj);
176 #endif
177
178 AtspiAction * atspi_accessible_get_action_iface (AtspiAccessible *obj);
179
180 AtspiCollection * atspi_accessible_get_collection_iface (AtspiAccessible *obj);
181
182 AtspiComponent * atspi_accessible_get_component_iface (AtspiAccessible *obj);
183
184 AtspiDocument * atspi_accessible_get_document_iface (AtspiAccessible *obj);
185
186 AtspiEditableText * atspi_accessible_get_editable_text_iface (AtspiAccessible *obj);
187
188 AtspiHypertext * atspi_accessible_get_hypertext_iface (AtspiAccessible *obj);
189
190 AtspiImage * atspi_accessible_get_image_iface (AtspiAccessible *obj);
191
192 AtspiSelection * atspi_accessible_get_selection_iface (AtspiAccessible *obj);
193
194 AtspiTable * atspi_accessible_get_table_iface (AtspiAccessible *obj);
195
196 AtspiText * atspi_accessible_get_text_iface (AtspiAccessible *obj);
197
198 AtspiValue * atspi_accessible_get_value_iface (AtspiAccessible *obj);
199
200 GArray * atspi_accessible_get_interfaces (AtspiAccessible *obj);
201
202 const gchar* atspi_accessible_get_object_locale (AtspiAccessible *accessible, GError **error);
203
204 void atspi_accessible_set_cache_mask (AtspiAccessible *accessible, AtspiCache mask);
205
206 void atspi_accessible_clear_cache (AtspiAccessible *accessible);
207
208 guint atspi_accessible_get_process_id (AtspiAccessible *accessible, GError **error);
209
210 /* private */
211 void _atspi_accessible_add_cache (AtspiAccessible *accessible, AtspiCache flag);
212 AtspiCache _atspi_accessible_get_cache_mask (AtspiAccessible *accessible);
213 gboolean _atspi_accessible_test_cache (AtspiAccessible *accessible, AtspiCache flag);
214
215 G_END_DECLS
216
217 #endif  /* _ATSPI_ACCESSIBLE_H_ */