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 | * |
8 | * |
9 | * This library is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU Lesser General Public |
11 | * License as published by the Free Software Foundation; either |
12 | * version 2.1 of the License, or (at your option) any later version. |
13 | * |
14 | * This library is distributed in the hope that it will be useful, |
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 | * Lesser General Public License for more details. |
18 | * |
19 | * You should have received a copy of the GNU Lesser General Public |
20 | * License along with this library; if not, write to the |
21 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
22 | * Boston, MA 02110-1301, USA. |
23 | */ |
24 | |
25 | #ifndef _ATSPI_TYPES_H_ |
26 | #define _ATSPI_TYPES_H_ |
27 | |
28 | #include "glib-object.h" |
29 | |
30 | #include "atspi-constants.h" |
31 | |
32 | typedef struct _AtspiAccessible AtspiAccessible; |
33 | typedef struct _AtspiAction AtspiAction; |
34 | typedef struct _AtspiCollection AtspiCollection; |
35 | typedef struct _AtspiComponent AtspiComponent; |
36 | typedef struct _AtspiDocument AtspiDocument; |
37 | typedef struct _AtspiEditableText AtspiEditableText; |
38 | typedef struct _AtspiHyperlink AtspiHyperlink; |
39 | typedef struct _AtspiHypertext AtspiHypertext; |
40 | typedef struct _AtspiImage AtspiImage; |
41 | typedef struct _AtspiSelection AtspiSelection; |
42 | typedef struct _AtspiTable AtspiTable; |
43 | typedef struct _AtspiTableCell AtspiTableCell; |
44 | typedef struct _AtspiText AtspiText; |
45 | typedef struct _AtspiValue AtspiValue; |
46 | |
47 | typedef guint AtspiControllerEventMask; |
48 | |
49 | typedef guint AtspiKeyMaskType; |
50 | |
51 | typedef guint AtspiKeyEventMask; |
52 | typedef guint AtspiDeviceEventMask; |
53 | |
54 | // TODO: auto-generate the below structs |
55 | typedef struct _AtspiDeviceEvent AtspiDeviceEvent; |
56 | struct _AtspiDeviceEvent |
57 | { |
58 | AtspiEventType type; |
59 | guint id; |
60 | gushort hw_code; |
61 | gushort modifiers; |
62 | guint timestamp; |
63 | gchar * event_string; |
64 | gboolean is_text; |
65 | }; |
66 | |
67 | typedef struct _AtspiEventListenerMode AtspiEventListenerMode; |
68 | struct _AtspiEventListenerMode |
69 | { |
70 | gboolean synchronous; |
71 | gboolean preemptive; |
72 | gboolean global; |
73 | }; |
74 | |
75 | typedef struct _AtspiKeyDefinition AtspiKeyDefinition; |
76 | struct _AtspiKeyDefinition |
77 | { |
78 | gint keycode; |
79 | gint keysym; |
80 | gchar *keystring; |
81 | guint modifiers; |
82 | }; |
83 | |
84 | /** |
85 | * ATSPI_TYPE_KEY_DEFINITION: |
86 | * |
87 | * The #GType for a boxed type holding a #AtspiKeyDefinition. |
88 | */ |
89 | #define ATSPI_TYPE_KEY_DEFINITION (atspi_key_definition_get_type ()) |
90 | |
91 | typedef struct _AtspiEvent AtspiEvent; |
92 | struct _AtspiEvent |
93 | { |
94 | gchar *type; |
95 | AtspiAccessible *source; |
96 | gint detail1; |
97 | gint detail2; |
98 | GValue any_data; |
99 | AtspiAccessible *sender; |
100 | }; |
101 | |
102 | /** |
103 | * ATSPI_TYPE_DEVICE_EVENT: |
104 | * |
105 | * The #GType for a boxed type holding a #AtspiDeviceEvent. |
106 | */ |
107 | #define ATSPI_TYPE_DEVICE_EVENT (atspi_device_event_get_type ()) |
108 | |
109 | /** |
110 | * ATSPI_TYPE_EVENT: |
111 | * |
112 | * The #GType for a boxed type holding a #AtspiEvent. |
113 | */ |
114 | #define ATSPI_TYPE_EVENT (atspi_event_get_type ()) |
115 | |
116 | typedef void AtspiKeystrokeListener; |
117 | |
118 | /** |
119 | * AtspiKeySet: |
120 | * @keysyms: |
121 | * @keycodes: |
122 | * @len: |
123 | * |
124 | * Structure containing identifying information about a set of keycode or |
125 | * keysyms. |
126 | **/ |
127 | typedef struct _AtspiKeySet |
128 | { |
129 | guint *keysyms; |
130 | gushort *keycodes; |
131 | gchar **keystrings; |
132 | gshort len; |
133 | } AtspiKeySet; |
134 | |
135 | /** |
136 | *AtspiKeyListenerSyncType: |
137 | * @ATSPI_KEYLISTENER_NOSYNC: Events may be delivered asynchronously, |
138 | * which means in some cases they may already have been delivered to the |
139 | * application before the AT client receives the notification. |
140 | * @ATSPI_KEYLISTENER_SYNCHRONOUS: Events are delivered synchronously, before the |
141 | * currently focussed application sees them. |
142 | * @ATSPI_KEYLISTENER_CANCONSUME: Events may be consumed by the AT client. Presumes and |
143 | * requires #ATSPI_KEYLISTENER_SYNCHRONOUS, incompatible with #ATSPI_KEYLISTENER_NOSYNC. |
144 | * @ATSPI_KEYLISTENER_ALL_WINDOWS: Events are received not from the application toolkit layer, but |
145 | * from the device driver or windowing system subsystem; such notifications are 'global' in the |
146 | * sense that they are not broken or defeated by applications that participate poorly |
147 | * in the accessibility APIs, or not at all; however because of the intrusive nature of |
148 | * such snooping, it can have side-effects on certain older platforms. If unconditional |
149 | * event notifications, even when inaccessible or "broken" applications have focus, are not |
150 | * required, it may be best to avoid this enum value/flag. |
151 | * |
152 | * Specifies the type of a key listener event. |
153 | * The values above can and should be bitwise-'OR'-ed |
154 | * together, observing the compatibility limitations specified in the description of |
155 | * each value. For instance, #ATSPI_KEYLISTENER_ALL_WINDOWS | #ATSPI_KEYLISTENER_CANCONSUME is |
156 | * a commonly used combination which gives the AT complete control over the delivery of matching |
157 | * events. However, such filters should be used sparingly as they may have a negative impact on |
158 | * system performance. |
159 | **/ |
160 | typedef enum { |
161 | ATSPI_KEYLISTENER_NOSYNC = 0, |
162 | ATSPI_KEYLISTENER_SYNCHRONOUS = 1 << 0, |
163 | ATSPI_KEYLISTENER_CANCONSUME = 1 << 1, |
164 | ATSPI_KEYLISTENER_ALL_WINDOWS = 1 << 2 |
165 | } AtspiKeyListenerSyncType; |
166 | #endif /* _ATSPI_TYPES_H_ */ |
167 | |