X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=cspi%2Fspi_table.c;h=a42f4bce2efdca39cc8c30ff3e3cf198eef88f0e;hb=74ba76b61acb398d6f10065e3166b5e6f50a3bc0;hp=62b4b53b4926d73702e3a05b3253f85760381c1a;hpb=603a2658423b90a55c27c24aaeb3fb0d68c9ca5d;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/cspi/spi_table.c b/cspi/spi_table.c index 62b4b53..a42f4bc 100644 --- a/cspi/spi_table.c +++ b/cspi/spi_table.c @@ -1,3 +1,26 @@ +/* + * AT-SPI - Assistive Technology Service Provider Interface + * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) + * + * Copyright 2001, 2002 Sun Microsystems Inc., + * Copyright 2001, 2002 Ximian, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + #include /* for malloc */ #include @@ -36,8 +59,14 @@ AccessibleTable_unref (AccessibleTable *obj) Accessible * AccessibleTable_getCaption (AccessibleTable *obj) { - return cspi_object_add ( - Accessibility_Table__get_caption (CSPI_OBJREF (obj), cspi_ev ())); + Accessible *retval; + + cspi_return_val_if_fail (obj != NULL, NULL); + + retval = cspi_object_add ( + Accessibility_Table__get_caption (CSPI_OBJREF (obj), cspi_ev ())); + cspi_return_val_if_ev ("getCaption", NULL); + return retval; } /** @@ -52,8 +81,14 @@ AccessibleTable_getCaption (AccessibleTable *obj) Accessible * AccessibleTable_getSummary (AccessibleTable *obj) { - return cspi_object_add ( - Accessibility_Table__get_summary (CSPI_OBJREF (obj), cspi_ev ())); + Accessible *retval; + + cspi_return_val_if_fail (obj != NULL, NULL); + +retval = cspi_object_add ( + Accessibility_Table__get_summary (CSPI_OBJREF (obj), cspi_ev ())); + cspi_return_val_if_ev ("getSummary", NULL); + return retval; } /** @@ -102,7 +137,7 @@ AccessibleTable_getNColumns (AccessibleTable *obj) retval = Accessibility_Table__get_nColumns (CSPI_OBJREF (obj), cspi_ev ()); - cspi_return_val_if_ev ("", -1); + cspi_return_val_if_ev ("getNColumns", -1); return retval; } @@ -124,10 +159,16 @@ AccessibleTable_getAccessibleAt (AccessibleTable *obj, long int row, long int column) { - return cspi_object_add ( - Accessibility_Table_getAccessibleAt ( - CSPI_OBJREF (obj), (CORBA_long) row, - (CORBA_long) column, cspi_ev ())); + Accessible *retval; + + cspi_return_val_if_fail (obj != NULL, NULL); + + retval = cspi_object_add ( + Accessibility_Table_getAccessibleAt ( + CSPI_OBJREF (obj), row, + column, cspi_ev ())); + cspi_return_val_if_ev ("getAccessibleAt", NULL); + return retval; } /** @@ -155,8 +196,8 @@ AccessibleTable_getIndexAt (AccessibleTable *obj, retval = Accessibility_Table_getIndexAt ( - CSPI_OBJREF (obj), (CORBA_long) row, - (CORBA_long) column, cspi_ev ()); + CSPI_OBJREF (obj), row, + column, cspi_ev ()); cspi_return_val_if_ev ("getIndexAt", -1); @@ -185,9 +226,9 @@ AccessibleTable_getRowAtIndex (AccessibleTable *obj, retval = Accessibility_Table_getRowAtIndex (CSPI_OBJREF (obj), - (CORBA_long) index, cspi_ev ()); + index, cspi_ev ()); - cspi_return_val_if_ev ("", -1); + cspi_return_val_if_ev ("getRowAtIndex", -1); return retval; } @@ -214,7 +255,7 @@ AccessibleTable_getColumnAtIndex (AccessibleTable *obj, retval = Accessibility_Table_getColumnAtIndex (CSPI_OBJREF (obj), - (CORBA_long) index, cspi_ev ()); + index, cspi_ev ()); cspi_return_val_if_ev ("getColumnAtIndex", -1); @@ -241,7 +282,7 @@ AccessibleTable_getRowDescription (AccessibleTable *obj, retval = Accessibility_Table_getRowDescription (CSPI_OBJREF (obj), - (CORBA_long) row, cspi_ev ()); + row, cspi_ev ()); cspi_return_val_if_ev ("getRowDescription", NULL); @@ -268,7 +309,7 @@ AccessibleTable_getColumnDescription (AccessibleTable *obj, retval = Accessibility_Table_getColumnDescription (CSPI_OBJREF (obj), - (CORBA_long) column, cspi_ev ()); + column, cspi_ev ()); cspi_return_val_if_ev ("getColumnDescription", NULL); @@ -297,8 +338,8 @@ AccessibleTable_getRowExtentAt (AccessibleTable *obj, retval = Accessibility_Table_getRowExtentAt ( - CSPI_OBJREF (obj), (CORBA_long) row, - (CORBA_long) column, cspi_ev ()); + CSPI_OBJREF (obj), row, + column, cspi_ev ()); cspi_return_val_if_ev ("getRowExtentAt", -1); @@ -327,8 +368,8 @@ AccessibleTable_getColumnExtentAt (AccessibleTable *obj, retval = Accessibility_Table_getColumnExtentAt ( - CSPI_OBJREF (obj), (CORBA_long) row, - (CORBA_long) column, cspi_ev ()); + CSPI_OBJREF (obj), row, + column, cspi_ev ()); cspi_return_val_if_ev ("getColumnExtentAt", -1); @@ -349,9 +390,16 @@ Accessible * AccessibleTable_getRowHeader (AccessibleTable *obj, long int row) { - return cspi_object_add ( - Accessibility_Table_getRowHeader (CSPI_OBJREF (obj), - (CORBA_long) row, cspi_ev ())); + Accessible *retval; + + cspi_return_val_if_fail (obj != NULL, NULL); + + retval = cspi_object_add ( + Accessibility_Table_getRowHeader (CSPI_OBJREF (obj), + row, cspi_ev ())); + cspi_return_val_if_ev ("getRowHeader", NULL); + + return retval; } /** @@ -368,9 +416,16 @@ Accessible * AccessibleTable_getColumnHeader (AccessibleTable *obj, long int column) { - return cspi_object_add ( - Accessibility_Table_getColumnHeader (CSPI_OBJREF (obj), - (CORBA_long) column, cspi_ev ())); + Accessible *retval; + + cspi_return_val_if_fail (obj != NULL, NULL); + + retval = cspi_object_add ( + Accessibility_Table_getColumnHeader (CSPI_OBJREF (obj), + column, cspi_ev ())); + cspi_return_val_if_ev ("getColumnHeader", NULL); + + return retval; } /** @@ -398,9 +453,10 @@ AccessibleTable_getNSelectedRows (AccessibleTable *obj) } static long -long_seq_to_array (Accessibility_LongSeq *seq, long int **array) +cspi_long_seq_to_array (Accessibility_LongSeq *seq, long int **array) { - long *j, length, i; + long *j; + long length, i; if (!cspi_check_ev ("getSelectionItems")) { @@ -444,14 +500,16 @@ AccessibleTable_getSelectedRows (AccessibleTable *obj, rows = Accessibility_Table_getSelectedRows (CSPI_OBJREF (obj), cspi_ev ()); - return long_seq_to_array (rows, selectedRows); + cspi_return_val_if_ev ("getSelectedRows", -1); + + return cspi_long_seq_to_array (rows, selectedRows); } /** * AccessibleTable_getNSelectedColumns: * @obj: a pointer to the #AccessibleTable implementor on which to operate. * - * Query a table to find out how many columnss are currently selected. Not all tables + * Query a table to find out how many columns are currently selected. Not all tables * support column selection. * * Returns: a long integer indicating the number of columns currently selected. @@ -494,13 +552,14 @@ AccessibleTable_getSelectedColumns (AccessibleTable *obj, columns = Accessibility_Table_getSelectedColumns (CSPI_OBJREF (obj), cspi_ev ()); - return long_seq_to_array (columns, selectedColumns); + cspi_return_val_if_ev ("getSelectedColumns", -1); + return cspi_long_seq_to_array (columns, selectedColumns); } /** * AccessibleTable_isRowSelected: * @obj: a pointer to the #AccessibleTable implementor on which to operate. - * @row: + * @row: the zero-indexed row number of the row being queried. * * Determine whether a table row is selected. Not all tables support row selection. * @@ -516,7 +575,7 @@ AccessibleTable_isRowSelected (AccessibleTable *obj, retval = Accessibility_Table_isRowSelected (CSPI_OBJREF (obj), - (CORBA_long) row, cspi_ev ()); + row, cspi_ev ()); cspi_return_val_if_ev ("isRowSelected", FALSE); @@ -526,7 +585,7 @@ AccessibleTable_isRowSelected (AccessibleTable *obj, /** * AccessibleTable_isColumnSelected: * @obj: a pointer to the #AccessibleTable implementor on which to operate. - * @column: + * @column: the zero-indexed column number of the column being queried. * * Determine whether specified table column is selected. * Not all tables support column selection. @@ -543,7 +602,7 @@ AccessibleTable_isColumnSelected (AccessibleTable *obj, retval = Accessibility_Table_isColumnSelected (CSPI_OBJREF (obj), - (CORBA_long) column, cspi_ev ()); + column, cspi_ev ()); cspi_return_val_if_ev ("isColumnSelected", FALSE); @@ -551,10 +610,159 @@ AccessibleTable_isColumnSelected (AccessibleTable *obj, } /** + * AccessibleTable_addRowSelection: + * @obj: a pointer to the #AccessibleTable implementor on which to operate. + * @row: the zero-indexed row number of the row being selected. + * + * Select the specified row, adding it to the current row selection. + * Not all tables support row selection. + * + * Returns: #TRUE if the specified row was successfully selected, #FALSE if not. + **/ +SPIBoolean +AccessibleTable_addRowSelection (AccessibleTable *obj, + long int row) +{ + SPIBoolean retval; + + cspi_return_val_if_fail (obj != NULL, FALSE); + + retval = + Accessibility_Table_addRowSelection (CSPI_OBJREF (obj), + row, cspi_ev ()); + + cspi_return_val_if_ev ("addRowSelection", FALSE); + + return retval; +} + +/** + * AccessibleTable_addColumnSelection: + * @obj: a pointer to the #AccessibleTable implementor on which to operate. + * @column: the zero-indexed column number of the column being selected. + * + * Select the specified column, adding it to the current column selection. + * Not all tables support column selection. + * + * Returns: #TRUE if the specified column was successfully selected, #FALSE if not. + **/ +SPIBoolean +AccessibleTable_addColumnSelection (AccessibleTable *obj, + long int column) +{ + SPIBoolean retval; + + cspi_return_val_if_fail (obj != NULL, FALSE); + + retval = + Accessibility_Table_addColumnSelection (CSPI_OBJREF (obj), + column, cspi_ev ()); + + cspi_return_val_if_ev ("addColumnSelection", FALSE); + + return retval; +} + +/** + * AccessibleTable_removeRowSelection: + * @obj: a pointer to the #AccessibleTable implementor on which to operate. + * @row: the zero-indexed number of the row being deselected. + * + * De-select the specified row, removing it to the current row selection. + * Not all tables support row selection. + * + * Returns: #TRUE if the specified row was successfully de-selected, #FALSE if not. + **/ +SPIBoolean +AccessibleTable_removeRowSelection (AccessibleTable *obj, + long int row) +{ + SPIBoolean retval; + + cspi_return_val_if_fail (obj != NULL, FALSE); + + retval = + Accessibility_Table_removeRowSelection (CSPI_OBJREF (obj), + row, cspi_ev ()); + + cspi_return_val_if_ev ("removeRowSelection", FALSE); + + return retval; +} + +/** + * AccessibleTable_removeColumnSelection: + * @obj: a pointer to the #AccessibleTable implementor on which to operate. + * @column: the zero-indexed column number of the column being de-selected. + * + * De-select the specified column, removing it to the current column selection. + * Not all tables support column selection. + * + * Returns: #TRUE if the specified column was successfully de-selected, #FALSE if not. + **/ +SPIBoolean +AccessibleTable_removeColumnSelection (AccessibleTable *obj, + long int column) +{ + SPIBoolean retval; + + cspi_return_val_if_fail (obj != NULL, FALSE); + + retval = + Accessibility_Table_removeColumnSelection (CSPI_OBJREF (obj), + column, cspi_ev ()); + + cspi_return_val_if_ev ("removeColumnSelection", FALSE); + + return retval; +} + + +SPIBoolean +AccessibleTable_getRowColumnExtentsAtIndex (AccessibleTable *obj, + long int index, long int *row, long int *col, + long int *row_extents, long int *col_extents, + long int *is_selected){ + SPIBoolean retval; + CORBA_long cRow, cCol, cRow_extents, cCol_extents; + CORBA_boolean cIs_selected; + + cspi_return_val_if_fail (obj != NULL, FALSE); + + retval = Accessibility_Table_getRowColumnExtentsAtIndex (CSPI_OBJREF (obj), + index, &cRow, &cCol, + &cRow_extents, &cCol_extents, + &cIs_selected, + cspi_ev ()); + + if (!cspi_check_ev ("getRowColumnExtentsAtIndex")){ + + *row = 0; + *col = 0; + *row_extents = 0; + *col_extents = 0; + *is_selected = FALSE; + retval = FALSE; + } + + else { + *row = cRow; + *col = cCol; + *row_extents = cRow_extents;; + *col_extents = cCol_extents; + *is_selected = cIs_selected;; + } + + return retval; + +} + + +/** * AccessibleTable_isSelected: * @obj: a pointer to the #AccessibleTable implementor on which to operate. - * @row: - * @column: + * @row: the zero-indexed row of the cell being queried. + * @column: the zero-indexed column of the cell being queried. * * Determine whether the cell at a specific row and column is selected. * @@ -571,8 +779,8 @@ AccessibleTable_isSelected (AccessibleTable *obj, retval = Accessibility_Table_isSelected (CSPI_OBJREF (obj), - (CORBA_long) row, - (CORBA_long) column, cspi_ev ()); + row, + column, cspi_ev ()); cspi_return_val_if_ev ("isSelected", FALSE);