static gboolean gal_a11y_e_cell_grab_focus (AtkComponent *component) { GalA11yECell *a11y; gint index; GtkWidget *toplevel; GalA11yETableItem *a11yTableItem; a11y = GAL_A11Y_E_CELL (component); /* for e_cell_vbox's children, we just grab the e_cell_vbox */ if (GAL_A11Y_IS_E_CELL_VBOX (a11y->parent)) { return atk_component_grab_focus (ATK_COMPONENT (a11y->parent)); } a11yTableItem = GAL_A11Y_E_TABLE_ITEM (a11y->parent); index = atk_object_get_index_in_parent (ATK_OBJECT (a11y)); atk_selection_clear_selection (ATK_SELECTION (a11yTableItem)); atk_selection_add_selection (ATK_SELECTION (a11yTableItem), index); gtk_widget_grab_focus ( GTK_WIDGET (GNOME_CANVAS_ITEM (a11y->item)->canvas)); toplevel = gtk_widget_get_toplevel ( GTK_WIDGET (GNOME_CANVAS_ITEM (a11y->item)->canvas)); if (toplevel && gtk_widget_is_toplevel (toplevel)) gtk_window_present (GTK_WINDOW (toplevel)); return TRUE; }
static void _check_children (AtkObject *obj) { gint n_children, i, j; AtkObject *child; AtkObject *grand_child; n_children = atk_object_get_n_accessible_children (obj); if (n_children > 1) { g_print ("*** Unexpected number of children for combo box: %d\n", n_children); return; } if (n_children == 2) { child = atk_object_ref_accessible_child (obj, 1); g_return_if_fail (atk_object_get_role (child) == ATK_ROLE_TEXT); j = atk_object_get_index_in_parent (child); if (j != 1) g_print ("*** inconsistency between parent and children %d %d ***\n", 1, j); g_object_unref (G_OBJECT (child)); } child = atk_object_ref_accessible_child (obj, 0); g_return_if_fail (atk_object_get_role (child) == ATK_ROLE_LIST); j = atk_object_get_index_in_parent (child); if (j != 0) g_print ("*** inconsistency between parent and children %d %d ***\n", 0, j); n_children = atk_object_get_n_accessible_children (child); for (i = 0; i < n_children; i++) { G_CONST_RETURN gchar *name; grand_child = atk_object_ref_accessible_child (child, i); name = atk_object_get_name (grand_child); g_print ("Index: %d Name: %s\n", i, name ? name : "<NULL>"); g_object_unref (G_OBJECT (grand_child)); } g_object_unref (G_OBJECT (child)); }
/* * CORBA Accessibility::Accessible::get_IndexInParent method implementation */ static CORBA_long impl_accessibility_accessible_get_index_in_parent (PortableServer_Servant servant, CORBA_Environment *ev) { AtkObject *object = get_atkobject_from_servant (servant); g_return_val_if_fail (object != NULL, -1); return atk_object_get_index_in_parent (object); }
static DBusMessage * impl_GetIndexInParent (DBusConnection * bus, DBusMessage * message, void *user_data) { AtkObject *object = (AtkObject *) user_data; dbus_int32_t rv; DBusMessage *reply; g_return_val_if_fail (ATK_IS_OBJECT (user_data), droute_not_yet_handled_error (message)); rv = atk_object_get_index_in_parent (object); reply = dbus_message_new_method_return (message); dbus_message_append_args (reply, DBUS_TYPE_INT32, &rv, DBUS_TYPE_INVALID); return reply; }
static JSStringRef indexRangeInTable(PlatformUIElement element, bool isRowRange) { GOwnPtr<gchar> rangeString(g_strdup("{0, 0}")); if (!element) return JSStringCreateWithUTF8CString(rangeString.get()); ASSERT(ATK_IS_OBJECT(element)); AtkObject* axTable = atk_object_get_parent(ATK_OBJECT(element)); if (!axTable || !ATK_IS_TABLE(axTable)) return JSStringCreateWithUTF8CString(rangeString.get()); // Look for the cell in the table. gint indexInParent = atk_object_get_index_in_parent(ATK_OBJECT(element)); if (indexInParent == -1) return JSStringCreateWithUTF8CString(rangeString.get()); int row = -1; int column = -1; row = atk_table_get_row_at_index(ATK_TABLE(axTable), indexInParent); column = atk_table_get_column_at_index(ATK_TABLE(axTable), indexInParent); // Get the actual values, if row and columns are valid values. if (row != -1 && column != -1) { int base = 0; int length = 0; if (isRowRange) { base = row; length = atk_table_get_row_extent_at(ATK_TABLE(axTable), row, column); } else { base = column; length = atk_table_get_column_extent_at(ATK_TABLE(axTable), row, column); } rangeString.set(g_strdup_printf("{%d, %d}", base, length)); } return JSStringCreateWithUTF8CString(rangeString.get()); }
static VALUE rbatkobj_get_index_in_parent(VALUE self) { return INT2NUM(atk_object_get_index_in_parent(_SELF(self))); }