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);
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);
//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");
}
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