#include <atk/atk.h>
#include <droute/droute.h>
+#include "bridge.h"
#include "atspi/atspi.h"
#include "spi-dbus.h"
#include "accessible-stateset.h"
#include "object.h"
#include "introspection.h"
+#include <string.h>
static dbus_bool_t
impl_get_Name (DBusMessageIter * iter, void *user_data)
}
static dbus_bool_t
+impl_get_Locale (DBusMessageIter * iter, void *user_data)
+{
+ AtkObject *object = (AtkObject *) user_data;
+
+ g_return_val_if_fail (ATK_IS_OBJECT (user_data), FALSE);
+
+ return droute_return_v_string (iter, atk_object_get_object_locale (object));
+}
+
+static dbus_bool_t
impl_get_Parent (DBusMessageIter * iter, void *user_data)
{
AtkObject *obj = (AtkObject *) user_data;
{
AtkObject *object = (AtkObject *) user_data;
DBusMessage *reply;
- DBusError error;
dbus_int32_t i;
AtkObject *child;
- dbus_error_init (&error);
g_return_val_if_fail (ATK_IS_OBJECT (user_data),
droute_not_yet_handled_error (message));
if (!dbus_message_get_args
- (message, &error, DBUS_TYPE_INT32, &i, DBUS_TYPE_INVALID))
+ (message, NULL, DBUS_TYPE_INT32, &i, DBUS_TYPE_INVALID))
{
return droute_invalid_arguments_error (message);
}
DBusMessage * message, void *user_data)
{
AtkObject *object = (AtkObject *) user_data;
- dbus_uint32_t rv;
+ dbus_int32_t rv;
DBusMessage *reply;
g_return_val_if_fail (ATK_IS_OBJECT (user_data),
rv = atk_object_get_index_in_parent (object);
reply = dbus_message_new_method_return (message);
- dbus_message_append_args (reply, DBUS_TYPE_UINT32, &rv, DBUS_TYPE_INVALID);
+ dbus_message_append_args (reply, DBUS_TYPE_INT32, &rv, DBUS_TYPE_INVALID);
return reply;
}
for (j = 0; j < target->len; j++)
{
AtkObject *obj = target->pdata[j];
- char *path;
if (!obj)
continue;
spi_object_append_reference (&iter_targets, obj);
}
dbus_message_iter_close_container (&iter, &iter_array);
oom:
+ if (set)
+ g_object_unref (set);
// TODO: handle out of memory */
return reply;
}
return reply;
}
-static char *
-impl_get_role_str (void *datum)
-{
- g_return_val_if_fail (ATK_IS_OBJECT (datum), g_strdup (""));
- return g_strdup_printf ("%d",
- spi_accessible_role_from_atk_role
- (atk_object_get_role ((AtkObject *) datum)));
-}
-
static DBusMessage *
impl_GetRoleName (DBusConnection * bus,
DBusMessage * message, void *user_data)
return reply;
}
+static dbus_bool_t
+impl_get_Attributes (DBusMessageIter * iter, void *user_data)
+{
+ DBusMessageIter iter_variant;
+ AtkObject *object = (AtkObject *) user_data;
+ AtkAttributeSet *attributes;
+
+ g_return_val_if_fail (ATK_IS_OBJECT (user_data), FALSE);
+
+ attributes = atk_object_get_attributes (object);
+
+ dbus_message_iter_open_container (iter, DBUS_TYPE_VARIANT, "a{ss}", &iter_variant);
+ spi_object_append_attribute_set (&iter_variant, attributes);
+ dbus_message_iter_close_container (iter, &iter_variant);
+
+ atk_attribute_set_free (attributes);
+
+ return TRUE;
+}
+
static DBusMessage *
impl_GetApplication (DBusConnection * bus,
DBusMessage * message, void *user_data)
static DRouteProperty properties[] = {
{impl_get_Name, NULL, "Name"},
{impl_get_Description, NULL, "Description"},
+ {impl_get_Locale, NULL, "Locale"},
{impl_get_Parent, NULL, "Parent"},
{impl_get_ChildCount, NULL, "ChildCount"},
+ {impl_get_Attributes, NULL, "Attributes"},
{NULL, NULL, NULL}
};
void
spi_initialize_accessible (DRoutePath * path)
{
- droute_path_add_interface (path,
- ATSPI_DBUS_INTERFACE_ACCESSIBLE,
- spi_org_a11y_atspi_Accessible,
- methods, properties);
+ spi_atk_add_interface (path,
+ ATSPI_DBUS_INTERFACE_ACCESSIBLE,
+ spi_org_a11y_atspi_Accessible,
+ methods, properties);
};