#include "accessible.h"
#include "application.h"
+#define SPI_BRIDGE_DEBUG 1
+
#define APP_STATIC_BUFF_SZ 64
typedef struct _ArgStruct ArgStruct;
static CORBA_Environment ev;
static Accessibility_Registry registry;
-static Application *this_app;
+static SpiApplication *this_app;
static gboolean bridge_register_app (gpointer p);
static void bridge_focus_tracker (AtkObject *object);
const GValue *param_values,
gpointer data);
+static gint bridge_key_listener (AtkImplementor *atk_impl,
+ AtkKeyEventStruct *event,
+ gpointer data);
+
int
gtk_module_init(gint *argc, gchar **argv[])
{
}
/* Create the accesssible application server object */
- this_app = application_new(atk_get_root ());
+ this_app = spi_application_new(atk_get_root ());
obj_id = "OAFIID:Accessibility_Registry:proto0.1";
atk_add_focus_tracker (bridge_focus_tracker);
atk_add_global_event_listener (bridge_property_event_listener, "Gtk:AtkObject:property-change");
-/* atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkObject:children-changed");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkObject:children-changed");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkObject:model-changed");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkObject:selection-changed");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkObject:visible-data-changed");
atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkText:text-changed");
- atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkText:text-caret-moved");*/
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkText:text-caret-moved");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkTable:row-inserted");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkTable:row-reordered");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkTable:row-deleted");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkTable:column-inserted");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkTable:column-reordered");
+ atk_add_global_event_listener (bridge_signal_listener, "Gtk:AtkTable:column-deleted");
+ atk_add_key_event_listener (bridge_key_listener, NULL);
}
static void bridge_exit_func()
{
Accessibility_Event *e = Accessibility_Event__alloc();
e->type = CORBA_string_dup ("focus:");
- e->source = CORBA_Object_duplicate (BONOBO_OBJREF (accessible_new (object)), &ev);
+ e->source = CORBA_Object_duplicate (BONOBO_OBJREF (spi_accessible_new (object)), &ev);
e->detail1 = 0;
e->detail2 = 0;
Accessibility_Registry_notifyEvent (registry, e, &ev);
if (ATK_IS_IMPLEMENTOR (gobject))
{
aobject = atk_implementor_ref_accessible (ATK_IMPLEMENTOR (gobject));
- source = CORBA_Object_duplicate (BONOBO_OBJREF (accessible_new (aobject)), &ev);
+ source = CORBA_Object_duplicate (BONOBO_OBJREF (spi_accessible_new (aobject)), &ev);
g_object_unref (G_OBJECT(aobject));
}
else if (ATK_IS_OBJECT (gobject))
{
aobject = ATK_OBJECT (gobject);
- source = CORBA_Object_duplicate (BONOBO_OBJREF (accessible_new (aobject)), &ev);
+ source = CORBA_Object_duplicate (BONOBO_OBJREF (spi_accessible_new (aobject)), &ev);
}
else
{
return TRUE;
}
+static gint
+bridge_key_listener (AtkImplementor *atk_impl, AtkKeyEventStruct *event, gpointer data)
+{
+ g_print ("bridge key listener!\n");
+}
+
static gboolean
bridge_signal_listener (GSignalInvocationHint *signal_hint,
guint n_param_values,
}
snprintf(sbuf, APP_STATIC_BUFF_SZ, "%s:%s", name, g_type_name (signal_query.itype));
- source = CORBA_Object_duplicate (BONOBO_OBJREF (accessible_new (aobject)), &ev);
+ source = CORBA_Object_duplicate (BONOBO_OBJREF (spi_accessible_new (aobject)), &ev);
e->type = CORBA_string_dup (sbuf);
e->source = source;
e->detail1 = 0;