Added initial implementations of SpiRelation and, for the C bindings
[platform/core/uifw/at-spi2-atk.git] / atk-bridge / bridge.c
index 6e08153..2d988ee 100644 (file)
@@ -30,6 +30,8 @@
 #include "accessible.h"
 #include "application.h"
 
+#define SPI_BRIDGE_DEBUG 1
+
 #define APP_STATIC_BUFF_SZ 64
 
 typedef struct _ArgStruct ArgStruct;
@@ -40,7 +42,7 @@ struct _ArgStruct {
 };
 
 static CORBA_Environment ev;
-static Accessibility_SpiRegistry registry;
+static Accessibility_Registry registry;
 static SpiApplication *this_app;
 
 static gboolean bridge_register_app (gpointer p);
@@ -57,6 +59,10 @@ static gboolean bridge_signal_listener (GSignalInvocationHint *signal_hint,
                                        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[])
 {
@@ -85,7 +91,7 @@ bridge_register_app (gpointer gp)
   /* Create the accesssible application server object */
   this_app = spi_application_new(atk_get_root ());
 
-  obj_id = "OAFIID:Accessibility_SpiRegistry:proto0.1";
+  obj_id = "OAFIID:Accessibility_Registry:proto0.1";
 
   oclient = bonobo_activation_activate_from_id (obj_id, 0, NULL, &ev);
   if (ev._major != CORBA_NO_EXCEPTION) {
@@ -101,13 +107,13 @@ bridge_register_app (gpointer gp)
       g_error ("Could not locate registry");
     }
 
-  registry = (Accessibility_SpiRegistry) oclient;
+  registry = (Accessibility_Registry) oclient;
 
   fprintf(stderr, "About to register application\n");
 
   bonobo_activate ();
 
-  Accessibility_SpiRegistry_registerSpiApplication (registry,
+  Accessibility_Registry_registerApplication (registry,
                                               CORBA_Object_duplicate (BONOBO_OBJREF (this_app), &ev),
                                               &ev);
 
@@ -128,15 +134,25 @@ register_atk_event_listeners ()
 
   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()
 {
   fprintf (stderr, "exiting bridge\n");
-  Accessibility_SpiRegistry_deregisterSpiApplication (registry,
+  Accessibility_Registry_deregisterApplication (registry,
                                                CORBA_Object_duplicate (BONOBO_OBJREF (this_app), &ev),
                                                &ev);
   fprintf (stderr, "bridge exit func complete.\n");
@@ -149,7 +165,7 @@ static void bridge_focus_tracker (AtkObject *object)
   e->source = CORBA_Object_duplicate (BONOBO_OBJREF (spi_accessible_new (object)), &ev);
   e->detail1 = 0;
   e->detail2 = 0;
-  Accessibility_SpiRegistry_notifyEvent (registry, e, &ev);
+  Accessibility_Registry_notifyEvent (registry, e, &ev);
 }
 
 static gboolean
@@ -199,10 +215,16 @@ bridge_property_event_listener (GSignalInvocationHint *signal_hint,
   e->detail1 = 0;
   e->detail2 = 0;
   if (source)
-    Accessibility_SpiRegistry_notifyEvent (registry, e, &ev);
+    Accessibility_Registry_notifyEvent (registry, e, &ev);
   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,
@@ -247,12 +269,12 @@ bridge_signal_listener (GSignalInvocationHint *signal_hint,
   e->source = source;
   e->detail1 = 0;
   e->detail2 = 0;
-  Accessibility_SpiRegistry_notifyEvent (registry, e, &ev);
+  Accessibility_Registry_notifyEvent (registry, e, &ev);
   g_object_unref (aobject);
   return TRUE;
 }
 
-static Accessibility_SpiRegistry bridge_get_registry ()
+static Accessibility_Registry bridge_get_registry ()
 {
   return registry;
 }