#include "common/spi-dbus.h"
#include "introspection.h"
+/* for spi_global_app_data is there a better way? */
+#include "../bridge.h"
+
static dbus_bool_t
impl_get_ToolkitName (DBusMessageIter * iter, void *user_data)
{
return droute_return_v_string (iter, atk_get_toolkit_version ());
}
+static dbus_bool_t
+impl_get_AtspiVersion (DBusMessageIter * iter, void *user_data)
+{
+ return droute_return_v_string (iter, "2.0");
+}
+
static dbus_int32_t id;
static dbus_bool_t
return NULL;
}
+static DBusMessage *
+impl_get_app_bus(DBusConnection *bus, DBusMessage *msg, void *data)
+{
+DBusMessage *reply;
+
+ if (bus == spi_global_app_data->bus)
+ spi_atk_add_client (dbus_message_get_sender (msg));
+
+reply = dbus_message_new_method_return(msg);
+if (reply)
+ {
+ const char *retval = (g_getenv ("AT_SPI_CLIENT") ?
+ "":
+ spi_global_app_data->app_bus_addr);
+ dbus_message_append_args(reply, DBUS_TYPE_STRING, &retval, DBUS_TYPE_INVALID);
+ }
+
+return reply;
+}
+
static DRouteMethod methods[] = {
{impl_registerToolkitEventListener, "registerToolkitEventListener"},
{impl_registerObjectEventListener, "registerObjectEventListener"},
{impl_pause, "pause"},
{impl_resume, "resume"},
{impl_GetLocale, "GetLocale"},
+ {impl_get_app_bus, "GetApplicationBusAddress"},
{NULL, NULL}
};
static DRouteProperty properties[] = {
{impl_get_ToolkitName, NULL, "ToolkitName"},
{impl_get_Version, NULL, "Version"},
+ {impl_get_AtspiVersion, NULL, "AtspiVersion"},
{impl_get_Id, impl_set_Id, "Id"},
{NULL, NULL, NULL}
};