const char *rv;
AtkTable *table = get_table_from_servant (servant);
- g_return_val_if_fail (table != NULL, 0);
+ g_return_val_if_fail (table != NULL, NULL);
rv = atk_table_get_row_description (table, row);
g_return_val_if_fail (table != NULL, CORBA_string_dup (""));
- rv = atk_table_get_row_description (table, column);
+ rv = atk_table_get_column_description (table, column);
if (rv)
{
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,
CORBA_Environment *ev)
{
- gint *selectedRows;
+ gint *selectedRows = NULL;
gint length;
Accessibility_LongSeq *retval;
AtkTable *table = get_table_from_servant (servant);
length = atk_table_get_selected_rows (table, &selectedRows);
- bonobo_return_val_if_fail (length > 0, NULL, ev);
+ bonobo_return_val_if_fail (length >= 0, NULL, ev);
retval = Accessibility_LongSeq__alloc ();
retval->_maximum = retval->_length = length;
retval->_buffer[length] = selectedRows[length];
}
- g_free (selectedRows);
+ if (selectedRows) g_free (selectedRows);
return retval;
}
impl_getSelectedColumns (PortableServer_Servant servant,
CORBA_Environment *ev)
{
- gint *selectedColumns;
+ gint *selectedColumns = NULL;
gint length;
Accessibility_LongSeq *retval;
AtkTable *table = get_table_from_servant (servant);
retval->_buffer[length] = (CORBA_long) selectedColumns[length];
}
- g_free (selectedColumns);
+ if (selectedColumns) g_free (selectedColumns);
return retval;
}
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;
BONOBO_TYPE_FUNC_FULL (SpiTable,
Accessibility_Table,
SPI_TYPE_BASE,
- spi_table);
+ spi_table)