X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atspi%2Fatspi-types.h;h=e458a8eb91069eafab69abffa0a8d16d54146e79;hb=29f7a16080f961af341fb827646bf378d4448ec1;hp=338782453e3be3645a08b7d0907f3c8d3d62c862;hpb=46931677d227523bbaf5405e2b715bbf1f6cd776;p=platform%2Fupstream%2Fat-spi2-core.git diff --git a/atspi/atspi-types.h b/atspi/atspi-types.h index 3387824..e458a8e 100644 --- a/atspi/atspi-types.h +++ b/atspi/atspi-types.h @@ -27,16 +27,132 @@ #include "glib-object.h" -#include "atspi-event-types.h" - -typedef struct _AtspiAccessible AtspiAction; -typedef struct _AtspiAccessible AtspiCollection; -typedef struct _AtspiAccessible AtspiComponent; -typedef struct _AtspiAccessible AtspiDocument; -typedef struct _AtspiAccessible AtspiEditableText; -typedef struct _AtspiAccessible AtspiHypertext; -typedef struct _AtspiAccessible AtspiSelection; -typedef struct _AtspiAccessible AtspiTable; -typedef struct _AtspiAccessible AtspiText; -typedef struct _AtspiAccessible AtspiValue; +#include "atspi-constants.h" + +typedef struct _AtspiAccessible AtspiAccessible; +typedef struct _AtspiAction AtspiAction; +typedef struct _AtspiCollection AtspiCollection; +typedef struct _AtspiComponent AtspiComponent; +typedef struct _AtspiDocument AtspiDocument; +typedef struct _AtspiEditableText AtspiEditableText; +typedef struct _AtspiHyperlink AtspiHyperlink; +typedef struct _AtspiHypertext AtspiHypertext; +typedef struct _AtspiImage AtspiImage; +typedef struct _AtspiSelection AtspiSelection; +typedef struct _AtspiTable AtspiTable; +typedef struct _AtspiTableCell AtspiTableCell; +typedef struct _AtspiText AtspiText; +typedef struct _AtspiValue AtspiValue; + +typedef guint AtspiControllerEventMask; + +typedef guint AtspiKeyMaskType; + +typedef guint AtspiKeyEventMask; +typedef guint AtspiDeviceEventMask; + +// TODO: auto-generate the below structs +typedef struct _AtspiDeviceEvent AtspiDeviceEvent; +struct _AtspiDeviceEvent +{ + AtspiEventType type; + guint id; + gushort hw_code; + gushort modifiers; + guint timestamp; + gchar * event_string; + gboolean is_text; +}; + +typedef struct _AtspiEventListenerMode AtspiEventListenerMode; +struct _AtspiEventListenerMode +{ + gboolean synchronous; + gboolean preemptive; + gboolean global; +}; + +typedef struct _AtspiKeyDefinition AtspiKeyDefinition; +struct _AtspiKeyDefinition +{ + gint keycode; + gint keysym; + gchar *keystring; + gint unused; +}; + +typedef struct _AtspiEvent AtspiEvent; +struct _AtspiEvent +{ + gchar *type; + AtspiAccessible *source; + gint detail1; + gint detail2; + GValue any_data; +}; + +/** + * ATSPI_TYPE_DEVICE_EVENT: + * + * The #GType for a boxed type holding a #AtspiDeviceEvent. + */ +#define ATSPI_TYPE_DEVICE_EVENT (atspi_device_event_get_type ()) + +/** + * ATSPI_TYPE_EVENT: + * + * The #GType for a boxed type holding a #AtspiEvent. + */ +#define ATSPI_TYPE_EVENT (atspi_event_get_type ()) + +typedef void AtspiKeystrokeListener; + +/** + * AtspiKeySet: + * @keysyms: + * @keycodes: + * @len: + * + * Structure containing identifying information about a set of keycode or + * keysyms. + **/ +typedef struct _AtspiKeySet +{ + guint *keysyms; + gushort *keycodes; + gchar **keystrings; + gshort len; +} AtspiKeySet; + +/** + *AtspiKeyListenerSyncType: + * @ATSPI_KEYLISTENER_NOSYNC: Events may be delivered asynchronously, + * which means in some cases they may already have been delivered to the + * application before the AT client receives the notification. + * @ATSPI_KEYLISTENER_SYNCHRONOUS: Events are delivered synchronously, before the + * currently focussed application sees them. + * @ATSPI_KEYLISTENER_CANCONSUME: Events may be consumed by the AT client. Presumes and + * requires #ATSPI_KEYLISTENER_SYNCHRONOUS, incompatible with #ATSPI_KEYLISTENER_NOSYNC. + * @ATSPI_KEYLISTENER_ALL_WINDOWS: Events are received not from the application toolkit layer, but + * from the device driver or windowing system subsystem; such notifications are 'global' in the + * sense that they are not broken or defeated by applications that participate poorly + * in the accessibility APIs, or not at all; however because of the intrusive nature of + * such snooping, it can have side-effects on certain older platforms. If unconditional + * event notifications, even when inaccessible or "broken" applications have focus, are not + * required, it may be best to avoid this enum value/flag. + * + * Specifies the type of a key listener event. + * The values above can and should be bitwise-'OR'-ed + * together, observing the compatibility limitations specified in the description of + * each value. For instance, #ATSPI_KEYLISTENER_ALL_WINDOWS | #ATSPI_KEYLISTENER_CANCONSUME is + * a commonly used combination which gives the AT complete control over the delivery of matching + * events. However, such filters should be used sparingly as they may have a negative impact on + * system performance. + **/ +typedef enum { + ATSPI_KEYLISTENER_NOSYNC = 0, + ATSPI_KEYLISTENER_SYNCHRONOUS = 1 << 0, + ATSPI_KEYLISTENER_CANCONSUME = 1 << 1, + ATSPI_KEYLISTENER_ALL_WINDOWS = 1 << 2 +} AtspiKeyListenerSyncType; #endif /* _ATSPI_TYPES_H_ */