|
||||
File indexing completed on 2025-01-30 09:32:47
0001 /* 0002 * AT-SPI - Assistive Technology Service Provider Interface 0003 * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) 0004 * 0005 * Copyright 2002 Ximian, Inc. 0006 * 2002 Sun Microsystems Inc. 0007 * 0008 * 0009 * This library is free software; you can redistribute it and/or 0010 * modify it under the terms of the GNU Lesser General Public 0011 * License as published by the Free Software Foundation; either 0012 * version 2.1 of the License, or (at your option) any later version. 0013 * 0014 * This library is distributed in the hope that it will be useful, 0015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0017 * Lesser General Public License for more details. 0018 * 0019 * You should have received a copy of the GNU Lesser General Public 0020 * License along with this library; if not, write to the 0021 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0022 * Boston, MA 02110-1301, USA. 0023 */ 0024 0025 #ifndef _ATSPI_TYPES_H_ 0026 #define _ATSPI_TYPES_H_ 0027 0028 #include "glib-object.h" 0029 0030 #include "atspi-constants.h" 0031 0032 /** 0033 * AtspiTypes: 0034 * 0035 * Type definitions needed by multiple interfaces. 0036 */ 0037 0038 typedef struct _AtspiAccessible AtspiAccessible; 0039 typedef struct _AtspiAction AtspiAction; 0040 typedef struct _AtspiCollection AtspiCollection; 0041 typedef struct _AtspiComponent AtspiComponent; 0042 typedef struct _AtspiDocument AtspiDocument; 0043 typedef struct _AtspiEditableText AtspiEditableText; 0044 typedef struct _AtspiHyperlink AtspiHyperlink; 0045 typedef struct _AtspiHypertext AtspiHypertext; 0046 typedef struct _AtspiImage AtspiImage; 0047 typedef struct _AtspiSelection AtspiSelection; 0048 typedef struct _AtspiTable AtspiTable; 0049 typedef struct _AtspiTableCell AtspiTableCell; 0050 typedef struct _AtspiText AtspiText; 0051 typedef struct _AtspiValue AtspiValue; 0052 0053 typedef guint AtspiControllerEventMask; 0054 0055 typedef guint AtspiKeyMaskType; 0056 0057 typedef guint AtspiKeyEventMask; 0058 typedef guint AtspiDeviceEventMask; 0059 0060 // TODO: auto-generate the below structs 0061 typedef struct _AtspiDeviceEvent AtspiDeviceEvent; 0062 struct _AtspiDeviceEvent 0063 { 0064 AtspiEventType type; 0065 guint id; 0066 gushort hw_code; 0067 gushort modifiers; 0068 guint timestamp; 0069 gchar *event_string; 0070 gboolean is_text; 0071 }; 0072 0073 typedef struct _AtspiEventListenerMode AtspiEventListenerMode; 0074 struct _AtspiEventListenerMode 0075 { 0076 gboolean synchronous; 0077 gboolean preemptive; 0078 gboolean global; 0079 }; 0080 0081 typedef struct _AtspiKeyDefinition AtspiKeyDefinition; 0082 struct _AtspiKeyDefinition 0083 { 0084 gint keycode; 0085 gint keysym; 0086 gchar *keystring; 0087 guint modifiers; 0088 }; 0089 0090 /** 0091 * ATSPI_TYPE_KEY_DEFINITION: 0092 * 0093 * The #GType for a boxed type holding a #AtspiKeyDefinition. 0094 */ 0095 #define ATSPI_TYPE_KEY_DEFINITION (atspi_key_definition_get_type ()) 0096 0097 typedef struct _AtspiEvent AtspiEvent; 0098 struct _AtspiEvent 0099 { 0100 gchar *type; 0101 AtspiAccessible *source; 0102 gint detail1; 0103 gint detail2; 0104 GValue any_data; 0105 AtspiAccessible *sender; 0106 }; 0107 0108 /** 0109 * ATSPI_TYPE_DEVICE_EVENT: 0110 * 0111 * The #GType for a boxed type holding a #AtspiDeviceEvent. 0112 */ 0113 #define ATSPI_TYPE_DEVICE_EVENT (atspi_device_event_get_type ()) 0114 0115 /** 0116 * ATSPI_TYPE_EVENT: 0117 * 0118 * The #GType for a boxed type holding a #AtspiEvent. 0119 */ 0120 #define ATSPI_TYPE_EVENT (atspi_event_get_type ()) 0121 0122 typedef void AtspiKeystrokeListener; 0123 0124 /** 0125 * AtspiKeySet: 0126 * @keysyms: 0127 * @keycodes: 0128 * @len: 0129 * 0130 * Structure containing identifying information about a set of keycode or 0131 * keysyms. 0132 **/ 0133 typedef struct _AtspiKeySet 0134 { 0135 guint *keysyms; 0136 gushort *keycodes; 0137 gchar **keystrings; 0138 gshort len; 0139 } AtspiKeySet; 0140 0141 /** 0142 * AtspiKeyListenerSyncType: 0143 * @ATSPI_KEYLISTENER_NOSYNC: Events may be delivered asynchronously, 0144 * which means in some cases they may already have been delivered to the 0145 * application before the AT client receives the notification. 0146 * @ATSPI_KEYLISTENER_SYNCHRONOUS: Events are delivered synchronously, before the 0147 * currently focused application sees them. 0148 * @ATSPI_KEYLISTENER_CANCONSUME: Events may be consumed by the AT client. Presumes and 0149 * requires #ATSPI_KEYLISTENER_SYNCHRONOUS, incompatible with #ATSPI_KEYLISTENER_NOSYNC. 0150 * @ATSPI_KEYLISTENER_ALL_WINDOWS: Events are received not from the application toolkit layer, but 0151 * from the device driver or windowing system subsystem; such notifications are 'global' in the 0152 * sense that they are not broken or defeated by applications that participate poorly 0153 * in the accessibility APIs, or not at all; however because of the intrusive nature of 0154 * such snooping, it can have side-effects on certain older platforms. If unconditional 0155 * event notifications, even when inaccessible or "broken" applications have focus, are not 0156 * required, it may be best to avoid this enum value/flag. 0157 * 0158 * Specifies the type of a key listener event. 0159 * The values above can and should be bitwise-'OR'-ed 0160 * together, observing the compatibility limitations specified in the description of 0161 * each value. For instance, #ATSPI_KEYLISTENER_ALL_WINDOWS | #ATSPI_KEYLISTENER_CANCONSUME is 0162 * a commonly used combination which gives the AT complete control over the delivery of matching 0163 * events. However, such filters should be used sparingly as they may have a negative impact on 0164 * system performance. 0165 **/ 0166 typedef enum 0167 { 0168 ATSPI_KEYLISTENER_NOSYNC = 0, 0169 ATSPI_KEYLISTENER_SYNCHRONOUS = 1 << 0, 0170 ATSPI_KEYLISTENER_CANCONSUME = 1 << 1, 0171 ATSPI_KEYLISTENER_ALL_WINDOWS = 1 << 2 0172 } AtspiKeyListenerSyncType; 0173 #endif /* _ATSPI_TYPES_H_ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |