Reduce action related IPC
[platform/upstream/at-spi2-core.git] / atspi / atspi-event-listener.h
index edc32da..ee52fac 100644 (file)
@@ -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
 
 #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_full (AtspiEventListener *listener,
+                                     const gchar              *event_type,
+                                      GArray *properties,
+                                     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_from_callback_full (AtspiEventListenerCB callback,
+                                                 void *user_data,
+                                                 GDestroyNotify callback_destroyed,
+                                                 const gchar              *event_type,
+                                                  GArray *properties,
+                                                 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_ */