-#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 GList *
-event_list_remove_by_callback (GList *list, gpointer callback)
+event_list_remove_by_cb (GList *list, gpointer callback)
{
GList *l, *next;
klass->event = cspi_event;
}
-CSpiEventListener *
+CORBA_Object
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 CORBA_Object_duplicate (BONOBO_OBJREF (listener), cspi_ev ());
}
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 = bonobo_object (
+ ORBit_small_get_servant (CSPI_OBJREF (al)));
+
g_return_if_fail (CSPI_IS_EVENT_LISTENER (listener));
+
listener->callbacks = g_list_prepend (listener->callbacks,
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 = bonobo_object (
+ ORBit_small_get_servant (CSPI_OBJREF (al)));
+
g_return_if_fail (CSPI_IS_EVENT_LISTENER (listener));
- listener->callbacks = event_list_remove_by_callback (listener->callbacks, callback);
+
+ listener->callbacks = event_list_remove_by_cb (listener->callbacks, callback);
}
/*
spi_keystroke_listener_get_type (),
cspi_keystroke_listener);
-CSpiKeystrokeListener *
+CORBA_Object
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 CORBA_Object_duplicate (BONOBO_OBJREF (listener), cspi_ev ());
}
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 = bonobo_object (
+ ORBit_small_get_servant (CSPI_OBJREF (al)));
+
g_return_if_fail (CSPI_IS_KEYSTROKE_LISTENER (listener));
+
listener->callbacks = g_list_prepend (listener->callbacks,
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 = bonobo_object (
+ ORBit_small_get_servant (CSPI_OBJREF (al)));
+
g_return_if_fail (CSPI_IS_KEYSTROKE_LISTENER (listener));
- listener->callbacks = event_list_remove_by_callback (listener->callbacks, callback);
+
+ listener->callbacks = event_list_remove_by_cb (listener->callbacks, callback);
}
#define CSPI_IS_EVENT_LISTENER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CSPI_EVENT_LISTENER_TYPE))
#define CSPI_IS_EVENT_LISTENER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CSPI_EVENT_LISTENER_TYPE))
-struct _CSpiEventListener {
+typedef struct {
SpiEventListener parent;
GList *callbacks;
-};
+} CSpiEventListener;
typedef SpiEventListenerClass CSpiEventListenerClass;
GType cspi_event_listener_get_type (void);
#define CSPI_IS_KEYSTROKE_LISTENER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CSPI_KEYSTROKE_LISTENER_TYPE))
#define CSPI_IS_KEYSTROKE_LISTENER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CSPI_KEYSTROKE_LISTENER_TYPE))
-struct _CSpiKeystrokeListener {
+typedef struct {
SpiKeystrokeListener parent;
GList *callbacks;
-};
+} CSpiKeystrokeListener;
typedef SpiKeystrokeListenerClass CSpiKeystrokeListenerClass;
GType cspi_keystroke_listener_get_type (void);
--- /dev/null
+#include "../cspi-lowlevel.h"
+
+#include <libbonobo.h>
+
+void
+cspi_dup_ref (CORBA_Object object)
+{
+ bonobo_object_dup_ref (object, NULL);
+}
+
+void
+cspi_release_unref (CORBA_Object object)
+{
+ bonobo_object_release_unref (object, NULL);
+}
+
+SPIBoolean
+cspi_check_ev (const char *error_string)
+{
+ CORBA_Environment *ev = cspi_ev ();
+
+ if (ev->_major != CORBA_NO_EXCEPTION)
+ {
+ char *err;
+
+ err = bonobo_exception_get_text (ev);
+
+ fprintf (stderr, "Warning: AT-SPI error: %s: %s\n",
+ error_string, err);
+
+ g_free (err);
+
+ CORBA_exception_free (ev);
+
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+