+typedef enum {
+ SPI_KEY_PRESS,
+ SPI_KEY_RELEASE,
+ SPI_KEY_PRESSRELEASE,
+ SPI_KEY_SYM
+} AccessibleKeySynthType;
+
+typedef enum {
+ SPI_KEYLISTENER_NOSYNC = 0,
+ SPI_KEYLISTENER_SYNCHRONOUS = 1,
+ SPI_KEYLISTENER_CANCONSUME = 2,
+ SPI_KEYLISTENER_ALL_WINDOWS = 4
+} AccessibleKeyListenerSyncType;
+
+typedef unsigned long AccessibleKeyEventMask;
+
+/**
+ * AccessibleComponentLayer:
+ * @SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
+ * @SPI_LAYER_BACKGROUND: Component belongs to the destop background.
+ * @SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
+ * @SPI_LAYER_WIDGET: Component is a 'normal' widget.
+ * @SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
+ * Z-information relative to other MDI-layer components.
+ * @SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
+ * MDI components.
+ * @SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
+ * for future use.
+ * @SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
+ * should not be encountered.
+ **/
+typedef enum {
+ SPI_LAYER_INVALID,
+ SPI_LAYER_BACKGROUND,
+ SPI_LAYER_CANVAS,
+ SPI_LAYER_WIDGET,
+ SPI_LAYER_MDI,
+ SPI_LAYER_POPUP,
+ SPI_LAYER_OVERLAY,
+ SPI_LAYER_LAST_DEFINED
+} AccessibleComponentLayer;
+
+
+/**
+ * AccessibleKeySet:
+ * @keysyms:
+ * @keycodes:
+ * @len:
+ *
+ * Structure containing identifying information about a set of keycode or
+ * keysyms.
+ **/
+typedef struct _AccessibleKeySet
+{
+ unsigned long *keysyms;
+ unsigned short *keycodes;
+ short len;
+} AccessibleKeySet;
+
+/**
+ * SPI_KEYSET_ALL_KEYS:
+ * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
+ * includes all keycodes and keyvals for the specified modifier set.
+ **/
+#define SPI_KEYSET_ALL_KEYS NULL
+
+typedef unsigned long AccessibleKeyMaskType;