## atspi-devicelistener atspi-devicelistener — An interface for creating and manipulating device listeners. |

## Synopsis

    gboolean            (*AtspiDeviceListenerCB)            (const AtspiDeviceEvent *stroke,
                                                             void *user_data);
    gboolean            (*AtspiDeviceListenerSimpleCB)      (const AtspiDeviceEvent *stroke);
    struct              AtspiDeviceListener;
    struct              AtspiDeviceListenerClass;
    AtspiDeviceListener * atspi_device_listener_new         (AtspiDeviceListenerCB callback,
                                                             void *user_data,
                                                             GDestroyNotify callback_destroyed);
    AtspiDeviceListener * atspi_device_listener_new_simple  (AtspiDeviceListenerSimpleCB callback,
                                                             GDestroyNotify callback_destroyed);
    void                atspi_device_listener_add_callback  (AtspiDeviceListener *listener,
                                                             AtspiDeviceListenerCB callback,
                                                             GDestroyNotify callback_destroyed,
                                                             void *user_data);
    void                atspi_device_listener_remove_callback
                                                            (AtspiDeviceListener *listener,
                                                             AtspiDeviceListenerCB callback);

## Object Hierarchy

      GObject
       +----AtspiDeviceListener

## Description

An interface for creating and manipulating device listeners with callback functions.

## Details

### AtspiDeviceListenerCB ()

    gboolean            (*AtspiDeviceListenerCB)            (const AtspiDeviceEvent *stroke,
                                                             void *user_data);

A callback function prototype via which clients receive device event notifications.

`stroke` : | The AtspiDeviceEvent for which notification is being received. [transfer full]
`user_data` : | Data which is passed to the client each time this callback is notified.
Returns : | TRUE if the client wishes to consume/preempt the event, preventing it from being relayed to the currently focussed application, FALSE if the event delivery should proceed as normal.

### AtspiDeviceListenerSimpleCB ()

    gboolean            (*AtspiDeviceListenerSimpleCB)      (const AtspiDeviceEvent *stroke);

Similar to AtspiDeviceListenerCB, but with no user data.

`stroke` : | The AtspiDeviceEvent for which notification is being received. [transfer full]
Returns : | TRUE if the client wishes to consume/preempt the event, preventing it from being relayed to the currently focussed application, FALSE if the event delivery should proceed as normal.

### struct AtspiDeviceListener

    struct AtspiDeviceListener;

### struct AtspiDeviceListenerClass

    struct AtspiDeviceListenerClass {
      GObjectClass parent_class;
      gboolean (*device_event) (AtspiDeviceListener *, const AtspiDeviceEvent *);
    };

### atspi_device_listener_new ()

    AtspiDeviceListener * atspi_device_listener_new         (AtspiDeviceListenerCB callback,
                                                             void *user_data,
                                                             GDestroyNotify callback_destroyed);

Creates a new AtspiDeviceListener with a specified callback function.

`callback` : | an AtspiDeviceListenerCB callback function, or NULL. [scope notified]
`user_data` : | a pointer to data which will be passed to the callback when invoked. [closure]
`callback_destroyed` : | A GDestroyNotify called when the listener is freed and data associated with the callback should be freed. It can be NULL.
Returns : | a pointer to a newly-created AtspiDeviceListener. [transfer full]

### atspi_device_listener_new_simple ()

    AtspiDeviceListener * atspi_device_listener_new_simple  (AtspiDeviceListenerSimpleCB callback,
                                                             GDestroyNotify callback_destroyed);

Creates a new AtspiDeviceListener with a specified callback function. This method is similar to atspi_device_listener_new, but callback takes no user data.

`callback` : | an AtspiDeviceListenerCB callback function, or NULL. [scope notified]
`callback_destroyed` : | A GDestroyNotify called when the listener is freed and data associated with the callback should be freed. It an be NULL.
Returns : | a pointer to a newly-created AtspiDeviceListener.

### atspi_device_listener_add_callback ()

    void                atspi_device_listener_add_callback  (AtspiDeviceListener *listener,
                                                             AtspiDeviceListenerCB callback,
                                                             GDestroyNotify callback_destroyed,
                                                             void *user_data);

Adds an in-process callback function to an existing AtspiDeviceListener.

`listener` : | the AtspiDeviceListener instance to modify.
`callback` : | an AtspiDeviceListenerCB function pointer. [scope notified]
`callback_destroyed` : | A GDestroyNotify called when the listener is freed and data associated with the callback should be freed. It can be NULL.
`user_data` : | a pointer to data which will be passed to the callback when invoked. [closure]

### atspi_device_listener_remove_callback ()

    void                atspi_device_listener_remove_callback
                                                            (AtspiDeviceListener *listener,
                                                             AtspiDeviceListenerCB callback);

Removes an in-process callback function from an existing AtspiDeviceListener.

`listener` : | the AtspiDeviceListener instance to modify.
`callback` : | an AtspiDeviceListenerCB function pointer. [scope call]