Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
Archivo: testcombo.c Proyecto: BYC/gtk
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));
}
Ejemplo n.º 3
0
/*
 * 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);
}
Ejemplo n.º 4
0
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());
}
Ejemplo n.º 6
0
static VALUE
rbatkobj_get_index_in_parent(VALUE self)
{
    return INT2NUM(atk_object_get_index_in_parent(_SELF(self)));
}