Exemplo n.º 1
0
static DBusMessage *
impl_GetAccessibleAtPoint (DBusConnection * bus, DBusMessage * message,
                           void *user_data)
{
  AtkComponent *component = (AtkComponent *) user_data;
  dbus_int32_t x, y;
  dbus_uint32_t coord_type;
  DBusMessage *reply;
  DBusError error;
  AtkObject *child;

  g_return_val_if_fail (ATK_IS_COMPONENT (user_data),
                        droute_not_yet_handled_error (message));

  dbus_error_init (&error);
  if (!dbus_message_get_args
      (message, &error, DBUS_TYPE_INT32, &x, DBUS_TYPE_INT32, &y,
       DBUS_TYPE_UINT32, &coord_type, DBUS_TYPE_INVALID))
    {
      return droute_invalid_arguments_error (message);
    }
  child =
    atk_component_ref_accessible_at_point (component, x, y,
                                           (AtkCoordType) coord_type);
  reply = spi_object_return_reference (message, child);
  g_object_unref (child);

  return reply;
}
Exemplo n.º 2
0
static DBusMessage *
impl_GetAccessibleAt (DBusConnection * bus, DBusMessage * message,
                      void *user_data)
{
  AtkTable *table = (AtkTable *) user_data;
  dbus_int32_t row, column;
  DBusMessage *reply;
  DBusError error;
  AtkObject *obj;

  g_return_val_if_fail (ATK_IS_TABLE (user_data),
                        droute_not_yet_handled_error (message));
  dbus_error_init (&error);
  if (!dbus_message_get_args
      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
       DBUS_TYPE_INVALID))
    {
      return droute_invalid_arguments_error (message);
    }
  obj = atk_table_ref_at (table, row, column);
  reply = spi_object_return_reference (message, obj);
  g_object_unref (obj);

  return reply;
}
Exemplo n.º 3
0
static DBusMessage *
impl_GetChildAtIndex (DBusConnection * bus,
                      DBusMessage * message, void *user_data)
{
  AtkObject *object = (AtkObject *) user_data;
  DBusMessage *reply;
  dbus_int32_t i;
  AtkObject *child;

  g_return_val_if_fail (ATK_IS_OBJECT (user_data),
                        droute_not_yet_handled_error (message));
  if (!dbus_message_get_args 
       (message, NULL, DBUS_TYPE_INT32, &i, DBUS_TYPE_INVALID))
    {
      return droute_invalid_arguments_error (message);
    }

  if (ATK_IS_SOCKET (object) && atk_socket_is_occupied (ATK_SOCKET (object)) && i == 0)
    {
      AtkSocket *socket = ATK_SOCKET (object);
      gchar *child_name, *child_path;
      child_name = g_strdup (socket->embedded_plug_id);
      child_path = g_utf8_strchr (child_name + 1, -1, ':');
      if (child_path)
        {
          DBusMessageIter iter, iter_socket;
          *(child_path++) = '\0';
          reply = dbus_message_new_method_return (message);
          if (!reply)
            return NULL;
          dbus_message_iter_init_append (reply, &iter);
          dbus_message_iter_open_container (&iter, DBUS_TYPE_STRUCT, NULL,
                                            &iter_socket);
          dbus_message_iter_append_basic (&iter_socket, DBUS_TYPE_STRING, &child_name);
          dbus_message_iter_append_basic (&iter_socket, DBUS_TYPE_OBJECT_PATH, &child_path);
          dbus_message_iter_close_container (&iter, &iter_socket);
          return reply;
        }
      g_free (child_name);
    }
  child = atk_object_ref_accessible_child (object, i);
  reply = spi_object_return_reference (message, child);
  if (child)
    g_object_unref (child);

  return reply;
}
Exemplo n.º 4
0
static DBusMessage *
impl_GetColumnHeader (DBusConnection * bus, DBusMessage * message,
                      void *user_data)
{
  AtkTable *table = (AtkTable *) user_data;
  dbus_int32_t column;
  AtkObject *obj;

  g_return_val_if_fail (ATK_IS_TABLE (user_data),
                        droute_not_yet_handled_error (message));
  if (!dbus_message_get_args
      (message, NULL, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
    {
      return droute_invalid_arguments_error (message);
    }
  obj = atk_table_get_column_header (table, column);
  return spi_object_return_reference (message, obj);
}
Exemplo n.º 5
0
static DBusMessage *
impl_GetRowHeader (DBusConnection * bus, DBusMessage * message,
                   void *user_data)
{
  AtkTable *table = (AtkTable *) user_data;
  dbus_int32_t row;
  DBusError error;
  AtkObject *obj = NULL;

  g_return_val_if_fail (ATK_IS_TABLE (user_data),
                        droute_not_yet_handled_error (message));
  dbus_error_init (&error);
  if (!dbus_message_get_args
      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
    {
      return droute_invalid_arguments_error (message);
    }
  obj = atk_table_get_row_header (table, row);
  return spi_object_return_reference (message, obj);
}
Exemplo n.º 6
0
static DBusMessage *
impl_GetApplication (DBusConnection * bus,
                     DBusMessage * message, void *user_data)
{
  return spi_object_return_reference (message, atk_get_root ());
}