## atspi-types atspi-types — Type definitions needed by multiple interfaces. |

## Synopsis

                        AtspiAccessible;
                        AtspiAction;
                        AtspiCollection;
                        AtspiComponent;
                        AtspiDocument;
                        AtspiEditableText;
                        AtspiHyperlink;
                        AtspiHypertext;
                        AtspiImage;
                        AtspiSelection;
                        AtspiTable;
                        AtspiText;
                        AtspiValue;
    typedef             AtspiControllerEventMask;
    typedef             AtspiKeyMaskType;
    typedef             AtspiKeyEventMask;
    typedef             AtspiDeviceEventMask;
    struct              AtspiDeviceEvent;
    struct              AtspiEventListenerMode;
    struct              AtspiKeyDefinition;
    struct              AtspiEvent;
    #define             ATSPI_TYPE_EVENT
    typedef             AtspiKeystrokeListener;
    enum                AtspiKeyListenerSyncType;

## Object Hierarchy

      GObject
       +----AtspiObject
             +----AtspiAccessible

      GInterface
       +----AtspiAction

      GInterface
       +----AtspiCollection

      GInterface
       +----AtspiComponent

      GInterface
       +----AtspiDocument

      GInterface
       +----AtspiEditableText

      GObject
       +----AtspiObject
             +----AtspiHyperlink

      GInterface
       +----AtspiHypertext

      GInterface
       +----AtspiImage

      GInterface
       +----AtspiSelection

      GInterface
       +----AtspiTable

      GInterface
       +----AtspiText

      GInterface
       +----AtspiValue

      GBoxed
       +----AtspiKeyDefinition

      GBoxed
       +----AtspiEvent

## Implemented Interfaces

AtspiAccessible implements AtspiAction, AtspiCollection, AtspiComponent, AtspiDocument, AtspiEditableText, AtspiHypertext, AtspiImage, AtspiSelection, AtspiTable, AtspiText and AtspiValue.

## Known Implementations

AtspiAction is implemented by AtspiAccessible.

AtspiCollection is implemented by AtspiAccessible.

AtspiComponent is implemented by AtspiAccessible.

AtspiDocument is implemented by AtspiAccessible.

AtspiEditableText is implemented by AtspiAccessible.

AtspiHypertext is implemented by AtspiAccessible.

AtspiImage is implemented by AtspiAccessible.

AtspiSelection is implemented by AtspiAccessible.

AtspiTable is implemented by AtspiAccessible.

AtspiText is implemented by AtspiAccessible.

AtspiValue is implemented by AtspiAccessible.

## Description

Type definitions needed by multiple interfaces.

## Details

### AtspiAccessible

    typedef struct _AtspiAccessible AtspiAccessible;

### AtspiAction

    typedef struct _AtspiAction AtspiAction;

### AtspiCollection

    typedef struct _AtspiCollection AtspiCollection;

### AtspiComponent

    typedef struct _AtspiComponent AtspiComponent;

### AtspiDocument

    typedef struct _AtspiDocument AtspiDocument;

### AtspiEditableText

    typedef struct _AtspiEditableText AtspiEditableText;

### AtspiHyperlink

    typedef struct _AtspiHyperlink AtspiHyperlink;

### AtspiHypertext

    typedef struct _AtspiHypertext AtspiHypertext;

### AtspiImage

    typedef struct _AtspiImage AtspiImage;

### AtspiSelection

    typedef struct _AtspiSelection AtspiSelection;

### AtspiTable

    typedef struct _AtspiTable AtspiTable;

### AtspiText

    typedef struct _AtspiText AtspiText;

### AtspiValue

    typedef struct _AtspiValue AtspiValue;

### AtspiControllerEventMask

    typedef guint AtspiControllerEventMask;

### AtspiKeyMaskType

    typedef guint AtspiKeyMaskType;

### AtspiKeyEventMask

    typedef guint AtspiKeyEventMask;

### AtspiDeviceEventMask

    typedef guint AtspiDeviceEventMask;

### struct AtspiDeviceEvent

    struct AtspiDeviceEvent {
      AtspiEventType type;
      guint id;
      gushort hw_code;
      gushort modifiers;
      guint timestamp;
      gchar * event_string;
      gboolean is_text;
    };

### struct AtspiEventListenerMode

    struct AtspiEventListenerMode {
      gboolean synchronous;
      gboolean preemptive;
      gboolean global;
    };

### struct AtspiKeyDefinition

    struct AtspiKeyDefinition {
      gint keycode;
      gint keysym;
      gchar *keystring;
      gint unused;
    };

### struct AtspiEvent

    struct AtspiEvent {
      gchar  *type;
      AtspiAccessible  *source;
      gint         detail1;
      gint         detail2;
      GValue any_data;
    };

### ATSPI_TYPE_EVENT

    #define ATSPI_TYPE_EVENT (atspi_event_get_type ())

The GType for a boxed type holding a AtspiEvent.

### AtspiKeystrokeListener

    typedef void AtspiKeystrokeListener;

### enum AtspiKeyListenerSyncType

    typedef enum {
      ATSPI_KEYLISTENER_NOSYNC = 0,
      ATSPI_KEYLISTENER_SYNCHRONOUS = 1 << 0,
      ATSPI_KEYLISTENER_CANCONSUME = 1 << 1,
      ATSPI_KEYLISTENER_ALL_WINDOWS = 1 << 2
    } AtspiKeyListenerSyncType;

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.

`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.