-#include <cspi/spi-private.h>
-#include <cspi/spi-listener-impl.h>
+#include <libbonobo.h>
+#include "../spi-private.h"
+#include "cspi-bonobo-listener.h"
typedef struct
{
*/
static EventHandler *
-event_handler_new (gpointer method, gpointer user_data)
+cspi_event_handler_new (gpointer method, gpointer user_data)
{
EventHandler *eh = g_new0 (EventHandler, 1);
}
static void
-event_handler_free (EventHandler *handler)
+cspi_event_handler_free (EventHandler *handler)
{
g_free (handler);
}
static GList *
-event_list_remove_by_callback (GList *list, gpointer callback)
+cspi_event_list_remove_by_cb (GList *list, gpointer callback)
{
GList *l, *next;
list = g_list_delete_link (list, l);
- event_handler_free (eh);
+ cspi_event_handler_free (eh);
}
return list;
{
GList *l;
CSpiEventListener *clistener = (CSpiEventListener *) listener;
- AccessibleEvent aevent;
+ AccessibleEvent aevent;
+ Accessible *source;
+
+ source = cspi_object_add (bonobo_object_dup_ref (event->source, cspi_ev ()));
aevent.type = event->type;
- aevent.source = cspi_object_add_check (bonobo_object_dup_ref (event->source, cspi_ev ()));
+ aevent.source = source;
aevent.detail1 = event->detail1;
aevent.detail2 = event->detail2;
eh->cb.event (&aevent, eh->user_data);
}
- cspi_object_unref (aevent.source);
+ cspi_object_unref (source);
}
static void
for (l = listener->callbacks; l; l = l->next)
{
- event_handler_free (l->data);
+ cspi_event_handler_free (l->data);
}
g_list_free (listener->callbacks);
klass->event = cspi_event;
}
-CSpiEventListener *
+gpointer
cspi_event_listener_new (void)
{
- return g_object_new (cspi_event_listener_get_type (), NULL);
+ CSpiEventListener *listener;
+
+ listener = g_object_new (cspi_event_listener_get_type (), NULL);
+
+ return listener;
}
void
-cspi_event_listener_add_callback (CSpiEventListener *listener,
- AccessibleEventListenerCB callback,
- void *user_data)
+cspi_event_listener_add_cb (AccessibleEventListener *al,
+ AccessibleEventListenerCB callback,
+ void *user_data)
{
+ CSpiEventListener *listener = al;
+
g_return_if_fail (CSPI_IS_EVENT_LISTENER (listener));
+
listener->callbacks = g_list_prepend (listener->callbacks,
- event_handler_new (callback, user_data));
+ cspi_event_handler_new (callback, user_data));
}
void
-cspi_event_listener_remove_callback (CSpiEventListener *listener,
- AccessibleEventListenerCB callback)
+cspi_event_listener_remove_cb (AccessibleEventListener *al,
+ AccessibleEventListenerCB callback)
{
+ CSpiEventListener *listener = al;
+
g_return_if_fail (CSPI_IS_EVENT_LISTENER (listener));
- listener->callbacks = event_list_remove_by_callback (listener->callbacks, callback);
+
+ listener->callbacks = cspi_event_list_remove_by_cb (listener->callbacks, callback);
}
/*
* Key event dispatcher
*/
-
static gboolean
cspi_key_event (SpiKeystrokeListener *listener,
const Accessibility_KeyStroke *keystroke)
for (l = listener->callbacks; l; l = l->next)
{
- event_handler_free (l->data);
+ cspi_event_handler_free (l->data);
}
g_list_free (listener->callbacks);
spi_keystroke_listener_get_type (),
cspi_keystroke_listener);
-CSpiKeystrokeListener *
+gpointer
cspi_keystroke_listener_new (void)
{
- return g_object_new (cspi_keystroke_listener_get_type (), NULL);
+ CSpiEventListener *listener;
+
+ listener = g_object_new (cspi_keystroke_listener_get_type (), NULL);
+
+ return listener;
}
void
-cspi_keystroke_listener_add_callback (CSpiKeystrokeListener *listener,
- AccessibleKeystrokeListenerCB callback,
- void *user_data)
+cspi_keystroke_listener_add_cb (AccessibleKeystrokeListener *al,
+ AccessibleKeystrokeListenerCB callback,
+ void *user_data)
{
+ CSpiKeystrokeListener *listener = al;
+
g_return_if_fail (CSPI_IS_KEYSTROKE_LISTENER (listener));
+
listener->callbacks = g_list_prepend (listener->callbacks,
- event_handler_new (callback, user_data));
+ cspi_event_handler_new (callback, user_data));
}
void
-cspi_keystroke_listener_remove_callback (CSpiKeystrokeListener *listener,
- AccessibleKeystrokeListenerCB callback)
+cspi_keystroke_listener_remove_cb (AccessibleKeystrokeListener *al,
+ AccessibleKeystrokeListenerCB callback)
{
+ CSpiKeystrokeListener *listener = al;
+
g_return_if_fail (CSPI_IS_KEYSTROKE_LISTENER (listener));
- listener->callbacks = event_list_remove_by_callback (listener->callbacks, callback);
+
+ listener->callbacks = cspi_event_list_remove_by_cb (listener->callbacks, callback);
+}
+
+void
+cspi_event_listener_unref (AccessibleEventListener *listener)
+{
+ bonobo_object_unref (BONOBO_OBJECT (listener));
+}
+
+void
+cspi_keystroke_listener_unref (AccessibleKeystrokeListener *listener)
+{
+ bonobo_object_unref (BONOBO_OBJECT (listener));
}
+
+
+CORBA_Object
+cspi_event_listener_get_corba (AccessibleEventListener *listener)
+{
+ return BONOBO_OBJREF (listener);
+}
+
+CORBA_Object
+cspi_keystroke_listener_get_corba (AccessibleKeystrokeListener *listener)
+{
+ return BONOBO_OBJREF (listener);
+}
+