*
* Copyright 2002 Ximian, Inc.
* 2002 Sun Microsystems Inc.
+ * Copyright 2010, 2011 Novell, Inc.
*
*
* This library is free software; you can redistribute it and/or
#include "atspi-types.h"
+G_BEGIN_DECLS
+
+GType atspi_device_event_get_type (void);
+
/**
* AtspiDeviceListenerCB:
- * @stroke: The #AtspiDeviceEvent for which notification is being received.
+ * @stroke: (transfer full): The #AtspiDeviceEvent for which notification is
+ * being received.
* @user_data: Data which is passed to the client each time this callback is notified.
*
* A callback function prototype via which clients receive device event notifications.
*
- * 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.
+ * 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.
**/
typedef gboolean (*AtspiDeviceListenerCB) (const AtspiDeviceEvent *stroke,
void *user_data);
+/**
+ * AtspiDeviceListenerSimpleCB:
+ * @stroke: (transfer full): The #AtspiDeviceEvent for which notification is
+ * being received.
+ *
+ * Similar to #AtspiDeviceListenerCB, but with no user data.
+ *
+ * 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.
+ **/
+typedef gboolean (*AtspiDeviceListenerSimpleCB) (const AtspiDeviceEvent *stroke);
+
#define ATSPI_TYPE_DEVICE_LISTENER (atspi_device_listener_get_type ())
#define ATSPI_DEVICE_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_DEVICE_LISTENER, AtspiDeviceListener))
#define ATSPI_DEVICE_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ATSPI_TYPE_DEVICE_LISTENER, AtspiDeviceListenerClass))
struct _AtspiDeviceListenerClass
{
GObjectClass parent_class;
- gboolean (*device_event) (AtspiDeviceListener *, const AtspiDeviceEvent *);
+ gboolean (*device_event) (AtspiDeviceListener *listener, const AtspiDeviceEvent *event);
};
GType atspi_device_listener_get_type (void);
-AtspiDeviceListener *atspi_device_listener_new (AtspiDeviceListenerCB callback);
+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, void *user_data);
+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);
+
+G_END_DECLS
+
#endif /* _ATSPI_DEVICE_LISTENER_H_ */