Have org.freedesktop.atspi.Tree use droute
authorMike Gorse <mgorse@boston.site>
Thu, 12 Jun 2008 16:36:23 +0000 (12:36 -0400)
committerMike Gorse <mgorse@boston.site>
Thu, 12 Jun 2008 16:36:23 +0000 (12:36 -0400)
atk-adaptor/accessible.h
atk-adaptor/atk-dbus.c
atk-adaptor/bridge.c
atk-adaptor/tree.c

index dbcaf2a..d143ebd 100644 (file)
@@ -45,6 +45,7 @@ void spi_initialize_hypertext(DRouteData *data);
 void spi_initialize_image(DRouteData *data);
 void spi_initialize_selection(DRouteData *data);
 void spi_initialize_table(DRouteData *data);
+void spi_initialize_tree(DRouteData *data);
 void spi_initialize_text(DRouteData *data);
 void spi_initialize_value(DRouteData *data);
 void spi_initialize_introspectable(DRouteData *data, DRouteGetDatumFunction verify_object);
index 93605c1..14921dd 100644 (file)
@@ -142,6 +142,7 @@ spi_dbus_initialize (DRouteData * data)
   spi_initialize_image (data);
   spi_initialize_selection (data);
   spi_initialize_table (data);
+  spi_initialize_tree (data);
   spi_initialize_text (data);
   spi_initialize_value (data);
   spi_initialize_introspectable(data, (DRouteGetDatumFunction) spi_dbus_get_object);
index 1374b99..ff05140 100644 (file)
@@ -197,8 +197,7 @@ spi_app_init (AtkObject *root)
   //dbus_connection_set_exit_on_disconnect(ad->droute.bus, FALSE);
   dbus_bus_register(ad->droute.bus, &error);
   spi_dbus_initialize (&ad->droute);
-  spi_register_tree_object(ad->droute.bus, &ad->droute, "/org/freedesktop/atspi/tree");
-  if (!dbus_connection_try_register_fallback (ad->droute.bus, "/org/freedesktop/atspi/accessible", &droute_vtable, &ad->droute, &error))
+  if (!dbus_connection_try_register_fallback (ad->droute.bus, "/org/freedesktop/atspi", &droute_vtable, &ad->droute, &error))
   {
     g_warning("Couldn't register droute.\n");
   }
index 5c12747..d52b519 100644 (file)
@@ -197,63 +197,18 @@ impl_introspect (DBusConnection *bus, DBusMessage *message, void *user_data)
   return reply;
 }
 
-static DBusHandlerResult
-message_handler (DBusConnection *bus, DBusMessage *message, void *user_data)
-{
-  const char *iface = dbus_message_get_interface (message);
-  const char *member = dbus_message_get_member (message);
-
-  DBusMessage *reply = NULL;
-
-  g_return_val_if_fail(iface != NULL, DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
-  
-  if (!strcmp(iface, "org.freedesktop.atspi.Tree"))
-    {
-      if (!strcmp(member, "getRoot"))
-       {
-         reply = impl_getRoot(bus, message, user_data);
-       }
-
-      if (!strcmp(member, "getTree"))
-       {
-         reply = impl_getTree(bus, message, user_data);
-       }
-    }
-
-  if (!strcmp(iface, "org.freedesktop.DBus.Introspectable"))
-    {
-      if (!strcmp(member, "Introspect"))
-       {
-         reply = impl_introspect(bus, message, user_data);
-       }
-    }
-
-  if (reply)
-    {
-      dbus_connection_send (bus, reply, NULL);
-      dbus_message_unref (reply);
-    }
-
-  return DBUS_HANDLER_RESULT_HANDLED;
-}
-
-static DBusObjectPathVTable tree_vtable =
-{
-  NULL,
-  &message_handler,
-  NULL, NULL, NULL, NULL
+static DRouteMethod methods[] = {
+  {impl_getRoot, "getRoot"},
+  {impl_getTree, "getTree", TRUE},
+  {NULL, NULL}
 };
 
 void
-spi_register_tree_object(DBusConnection *bus,
-                        DRouteData *data,
-                        const char *path)
+spi_initialize_tree (DRouteData * data)
 {
-  dbus_bool_t mem = FALSE;
-  mem = dbus_connection_register_object_path(bus, path, &tree_vtable, data);
-  g_assert(mem == TRUE);
-}
-
+  droute_add_interface (data, "org.freedesktop.atspi.Tree", methods,
+                       NULL, NULL, NULL);
+};
 static GHashTable *cache_list;
 
 #define UPDATE_NEW     1