return spi_accessible_new_return (header, FALSE, ev);
}
+static CORBA_long
+impl__get_nSelectedRows (PortableServer_Servant servant,
+ CORBA_Environment *ev)
+{
+ gint *selectedRows = NULL;
+ gint retval = 0;
+ AtkTable *table = get_table_from_servant (servant);
+
+ bonobo_return_val_if_fail (table != NULL, 0, ev);
+
+ retval = atk_table_get_selected_rows (table, &selectedRows);
+ if (selectedRows) g_free (selectedRows);
+ return retval;
+}
+
+
+static CORBA_long
+impl__get_nSelectedColumns (PortableServer_Servant servant,
+ CORBA_Environment *ev)
+{
+ gint *selectedColumns = NULL;
+ gint retval = 0;
+ AtkTable *table = get_table_from_servant (servant);
+
+ bonobo_return_val_if_fail (table != NULL, 0, ev);
+
+ retval = atk_table_get_selected_columns (table, &selectedColumns);
+ if (selectedColumns) g_free (selectedColumns);
+ return retval;
+}
static Accessibility_LongSeq *
impl_getSelectedRows (PortableServer_Servant servant,
static CORBA_boolean
+impl_getRowColumnExtentsAtIndex (PortableServer_Servant servant,
+ const CORBA_long index,
+ CORBA_long *row,
+ CORBA_long *column,
+ CORBA_long *row_extents,
+ CORBA_long *col_extents,
+ CORBA_boolean *is_selected,
+ CORBA_Environment *ev)
+{
+
+ AtkObject *cell;
+ AtkRole role;
+ AtkTable *table = get_table_from_servant (servant);
+ gint intColumn, intRow, intRow_extents, intCol_extents;
+ gboolean boolIs_selected;
+
+ g_return_val_if_fail (table != NULL, FALSE);
+
+ intColumn = atk_table_get_column_at_index (table, index);
+ intRow = atk_table_get_row_at_index (table, index);
+ intRow_extents = atk_table_get_row_extent_at (table, intRow, intColumn);
+ intCol_extents = atk_table_get_column_extent_at (table, intRow, intColumn);
+ boolIs_selected = atk_table_is_selected (table, intRow, intColumn);
+
+ *column = intColumn;
+ *row = intRow;
+ *row_extents = intRow_extents;
+ *col_extents = intCol_extents;
+ *is_selected = boolIs_selected;
+
+ cell = atk_table_ref_at (table, intRow, intColumn);
+ role = atk_object_get_role (cell);
+
+ if (role == ATK_ROLE_TABLE_CELL)
+ return TRUE;
+
+ return FALSE;
+
+}
+
+static CORBA_boolean
impl_isSelected (PortableServer_Servant servant,
const CORBA_long row,
const CORBA_long column,
epv->_get_summary = impl__get_summary;
epv->_get_nRows = impl__get_nRows;
epv->_get_nColumns = impl__get_nColumns;
+ epv->_get_nSelectedRows = impl__get_nSelectedRows;
+ epv->_get_nSelectedColumns = impl__get_nSelectedColumns;
epv->getAccessibleAt = impl_getAccessibleAt;
epv->getIndexAt = impl_getIndexAt;
epv->getRowAtIndex = impl_getRowAtIndex;
epv->removeRowSelection = impl_removeRowSelection;
epv->removeColumnSelection = impl_removeColumnSelection;
epv->isSelected = impl_isSelected;
+ epv->getRowColumnExtentsAtIndex = impl_getRowColumnExtentsAtIndex;
}
static void