static gint table_get_selected_rows (AtkTable *table, gint **rows_selected) { ETableItem *item; gint n_selected, row, index_selected; GalA11yETableItemPrivate *priv = GET_PRIVATE (table); if (atk_state_set_contains_state (priv->state_set, ATK_STATE_DEFUNCT)) return 0; item = E_TABLE_ITEM (eti_a11y_get_gobject (ATK_OBJECT (table))); if (!item) return 0; n_selected = e_selection_model_selected_count (item->selection); if (rows_selected) { *rows_selected = (gint *) g_malloc (n_selected * sizeof (gint)); index_selected = 0; for (row = 0; row < item->rows && index_selected < n_selected; ++row) { if (atk_table_is_row_selected (table, row)) { (*rows_selected)[index_selected] = row; ++index_selected; } } } return n_selected; }
static DBusMessage * impl_isRowSelected (DBusConnection * bus, DBusMessage * message, void *user_data) { AtkTable *table = (AtkTable *) user_data; dbus_int32_t row; DBusError error; DBusMessage *reply; dbus_bool_t ret; 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); } ret = atk_table_is_row_selected (table, row); reply = dbus_message_new_method_return (message); if (reply) { dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &ret, DBUS_TYPE_INVALID); } return reply; }
static void _test_gengrid_object(AtkObject *obj) { int child_count = atk_object_get_n_accessible_children(obj); int rows, cols, row_at_index, column_at_index, index_at; gboolean success; AtkTable *table; AtkObject *table_child; for (int i = 0; i < child_count; i++) { AtkObject *child = atk_object_ref_accessible_child(obj, i); _print_object_info(child); g_object_unref(child); } g_assert(ATK_IS_TABLE(obj)); table = ATK_TABLE(obj); rows = atk_table_get_n_rows(table); g_assert(rows == 3); cols = atk_table_get_n_columns(table); g_assert(cols == 3); row_at_index = atk_table_get_row_at_index(table, 4); g_assert(row_at_index == 1); column_at_index = atk_table_get_column_at_index(table, 2); g_assert(column_at_index == 0); index_at = atk_table_get_index_at(table, 2, 2); g_assert(index_at == 8); table_child = atk_table_ref_at(table, 1, 1); g_assert(ATK_IS_OBJECT(table_child)); _print_object_info(table_child); success = atk_table_add_column_selection(table, 1); g_assert(success); success = atk_table_is_column_selected(table, 1); g_assert(success); success = atk_table_remove_column_selection(table, 1); g_assert(success); success = atk_table_add_row_selection(table, 1); g_assert(success); success = atk_table_is_row_selected(table, 1); g_assert(success); success = atk_table_remove_row_selection(table, 0); g_assert(success); }
static gboolean table_remove_row_selection (AtkTable *table, gint row) { ETableItem *item; GalA11yETableItemPrivate *priv = GET_PRIVATE (table); if (atk_state_set_contains_state (priv->state_set, ATK_STATE_DEFUNCT)) return FALSE; item = E_TABLE_ITEM (eti_a11y_get_gobject (ATK_OBJECT (table))); if (!item) return FALSE; if (!atk_table_is_row_selected (table, row)) return TRUE; e_selection_model_toggle_single_row ( item->selection, view_to_model_row (item, row)); return TRUE; }
static VALUE rg_row_selected_p(VALUE self, VALUE row) { return CBOOL2RVAL(atk_table_is_row_selected(_SELF(self), NUM2INT(row))); }