X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atspi%2Fatspi-event-listener.h;h=12d3c5856c3ea4542d3f8c71b179acd4f50bb326;hb=7655e875bade67f5cf3e8ab2e9776e66d9517658;hp=edc32daf4226dd2429ed6baa15dc63b68b1f81e5;hpb=f5ad78008ea864a19ca48e610c3b38c2de9fc06e;p=platform%2Fupstream%2Fat-spi2-core.git diff --git a/atspi/atspi-event-listener.h b/atspi/atspi-event-listener.h index edc32da..12d3c58 100644 --- a/atspi/atspi-event-listener.h +++ b/atspi/atspi-event-listener.h @@ -4,6 +4,7 @@ * * Copyright 2002 Ximian, Inc. * 2002 Sun Microsystems Inc. + * Copyright 2010, 2011 Novell, Inc. * * * This library is free software; you can redistribute it and/or @@ -27,45 +28,99 @@ #include "glib-object.h" -#include "atspi-event-types.h" +#include "atspi-types.h" + +G_BEGIN_DECLS + +GType atspi_event_get_type (void); /** * AtspiEventListenerCB: - * @event: The event for which notification is sent. + * @event: (transfer full): The event for which notification is sent. * @user_data: User data which is passed to the callback each time a notification takes place. * * A function prototype for callbacks via which clients are notified of AT-SPI events. * **/ -typedef void (*AtspiEventListenerCB) (const AtspiEvent *event, +typedef void (*AtspiEventListenerCB) (AtspiEvent *event, void *user_data); /** * AtspiEventListenerSimpleCB: - * @event: The event for which notification is sent. + * @event: (transfer full): The event for which notification is sent. * * Like #AtspiEventlistenerCB, but with no user_data. * **/ typedef void (*AtspiEventListenerSimpleCB) (const AtspiEvent *event); +#define ATSPI_TYPE_EVENT_LISTENER (atspi_event_listener_get_type ()) +#define ATSPI_EVENT_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_EVENT_LISTENER, AtspiEventListener)) +#define ATSPI_EVENT_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ATSPI_TYPE_EVENT_LISTENER, AtspiEventListenerClass)) +#define ATSPI_IS_EVENT_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_EVENT_LISTENER)) +#define ATSPI_IS_EVENT_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ATSPI_TYPE_EVENT_LISTENER)) +#define ATSPI_EVENT_LISTENER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ATSPI_TYPE_EVENT_LISTENER, AtspiEventListenerClass)) + +typedef struct _AtspiEventListener AtspiEventListener; +struct _AtspiEventListener +{ + GObject parent; + AtspiEventListenerCB callback; + void *user_data; + GDestroyNotify cb_destroyed; +}; + +typedef struct _AtspiEventListenerClass AtspiEventListenerClass; +struct _AtspiEventListenerClass +{ + GObjectClass parent_class; +}; + +GType atspi_event_listener_get_type (void); + +AtspiEventListener * +atspi_event_listener_new (AtspiEventListenerCB callback, + gpointer user_data, + GDestroyNotify callback_destroyed); + +AtspiEventListener * +atspi_event_listener_new_simple (AtspiEventListenerSimpleCB callback, + GDestroyNotify callback_destroyed); + gboolean -atspi_event_listener_register (AtspiEventListenerCB callback, - void *user_data, - GDestroyNotify callback_destroyed, - const gchar *event_type); +atspi_event_listener_register (AtspiEventListener *listener, + const gchar *event_type, + GError **error); + +gboolean +atspi_event_listener_register_from_callback (AtspiEventListenerCB callback, + void *user_data, + GDestroyNotify callback_destroyed, + const gchar *event_type, + GError **error); gboolean atspi_event_listener_register_no_data (AtspiEventListenerSimpleCB callback, GDestroyNotify callback_destroyed, - const gchar *event_type); + const gchar *event_type, + GError **error); gboolean -atspi_event_listener_deregister (AtspiEventListenerCB callback, - void *user_data, - const gchar *event_type); +atspi_event_listener_deregister (AtspiEventListener *listener, + const gchar *event_type, + GError **error); + +gboolean +atspi_event_listener_deregister_from_callback (AtspiEventListenerCB callback, + void *user_data, + const gchar *event_type, + GError **error); gboolean atspi_event_listener_deregister_no_data (AtspiEventListenerSimpleCB callback, - const gchar *event_type); + const gchar *event_type, + GError **error); + +G_END_DECLS + #endif /* _ATSPI_EVENT_LISTENER_H_ */