2008-11-28 Mike Gorse <mgorse@novell.com>
authorMike Gorse <mgorse@boston.site>
Fri, 28 Nov 2008 15:31:30 +0000 (09:31 -0600)
committerMike Gorse <mgorse@boston.site>
Fri, 28 Nov 2008 15:31:30 +0000 (09:31 -0600)
* atk-adaptor/accessible.c, xml/org.freedesktop.atspi.Accessible.xml:
  Add getChildAtIndex.

atk-adaptor/accessible.c
xml/org.freedesktop.atspi.Accessible.xml

index 499e0ef..220167e 100644 (file)
@@ -95,6 +95,22 @@ impl_get_childCount (const char *path, DBusMessageIter * iter,
 }
 
 static DBusMessage *
+impl_getChildAtIndex (DBusConnection * bus, DBusMessage * message,
+                 void *user_data)
+{
+  AtkObject *object = get_object (message);
+  dbus_int32_t i;
+  AtkObject *child;
+
+  if (!object)
+    return spi_dbus_general_error (message);
+  if (!dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &i, DBUS_TYPE_INVALID))
+    return spi_dbus_general_error (message);
+  child = atk_object_ref_accessible_child (object, i);
+  return spi_dbus_return_object (message, child, FALSE);
+}
+
+static DBusMessage *
 impl_getChildren (DBusConnection * bus, DBusMessage * message,
                  void *user_data)
 {
@@ -530,7 +546,7 @@ impl_getApplication (DBusConnection * bus, DBusMessage * message,
 }
 
 static DRouteMethod methods[] = {
-  //{impl_isEqual, "isEqual"},
+  {impl_getChildAtIndex, "getChildAtIndex"},
   {impl_getChildren, "getChildren"},
   {impl_getIndexInParent, "getIndexInParent"},
   {impl_getRelationSet, "getRelationSet"},
@@ -547,8 +563,7 @@ static DRouteProperty properties[] = {
   {impl_get_name, impl_set_name, "name"},
   {impl_get_description, impl_set_description, "description"},
   {impl_get_parent, NULL, "parent"},
-  //{impl_get_childCount, NULL, "childCount"},
-  //{NULL, NULL, NULL, "role"},
+  {impl_get_childCount, NULL, "childCount"},
   {NULL, NULL, NULL}
 };
 
index a59d303..4a40d41 100644 (file)
     </tp:docstring>
     </arg>
   </method>
+  <method name="getChildAtIndex">
+    <tp:docstring>
+      Get the accessible child of this object at \c index.
+    </tp:docstring>
+    <arg direction="in" name="index" type="i">
+    <tp:docstring>
+      an in parameter indicating which child is requested (zero-indexed).
+    </tp:docstring>
+    </arg>
+    <arg direction="out" type="o" tp:type="Accessible">
+    <tp:docstring>
+      the 'nth' ::Accessible child of this object.
+    </tp:docstring>
+    </arg>
+  </method>
   <method name="getIndexInParent">
     <tp:docstring>
       Get the index of this object in its parent's child list.