1 /* ATK - Accessibility Toolkit 2 * Copyright 2001 Sun Microsystems Inc. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 #ifndef __ATK_TABLE_H__ 21 #define __ATK_TABLE_H__ 22 23 #include <atk/atkobject.h> 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif /* __cplusplus */ 28 29 /* 30 * AtkTable describes a user-interface component that presents data in 31 * two-dimensional table format. 32 */ 33 34 35 #define ATK_TYPE_TABLE (atk_table_get_type ()) 36 #define ATK_IS_TABLE(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATK_TYPE_TABLE) 37 #define ATK_TABLE(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_TABLE, AtkTable) 38 #define ATK_TABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATK_TYPE_TABLE, AtkTableIface)) 39 40 #ifndef _TYPEDEF_ATK_TABLE_ 41 #define _TYPEDEF_ATK_TABLE_ 42 typedef struct _AtkTable AtkTable; 43 #endif 44 typedef struct _AtkTableIface AtkTableIface; 45 46 struct _AtkTableIface 47 { 48 GTypeInterface parent; 49 50 AtkObject* (* ref_at) (AtkTable *table, 51 gint row, 52 gint column); 53 gint (* get_index_at) (AtkTable *table, 54 gint row, 55 gint column); 56 gint (* get_column_at_index) (AtkTable *table, 57 gint index_); 58 gint (* get_row_at_index) (AtkTable *table, 59 gint index_); 60 gint (* get_n_columns) (AtkTable *table); 61 gint (* get_n_rows) (AtkTable *table); 62 gint (* get_column_extent_at) (AtkTable *table, 63 gint row, 64 gint column); 65 gint (* get_row_extent_at) (AtkTable *table, 66 gint row, 67 gint column); 68 AtkObject* 69 (* get_caption) (AtkTable *table); 70 G_CONST_RETURN gchar* 71 (* get_column_description) (AtkTable *table, 72 gint column); 73 AtkObject* (* get_column_header) (AtkTable *table, 74 gint column); 75 G_CONST_RETURN gchar* 76 (* get_row_description) (AtkTable *table, 77 gint row); 78 AtkObject* (* get_row_header) (AtkTable *table, 79 gint row); 80 AtkObject* (* get_summary) (AtkTable *table); 81 void (* set_caption) (AtkTable *table, 82 AtkObject *caption); 83 void (* set_column_description) (AtkTable *table, 84 gint column, 85 const gchar *description); 86 void (* set_column_header) (AtkTable *table, 87 gint column, 88 AtkObject *header); 89 void (* set_row_description) (AtkTable *table, 90 gint row, 91 const gchar *description); 92 void (* set_row_header) (AtkTable *table, 93 gint row, 94 AtkObject *header); 95 void (* set_summary) (AtkTable *table, 96 AtkObject *accessible); 97 gint (* get_selected_columns) (AtkTable *table, 98 gint **selected); 99 gint (* get_selected_rows) (AtkTable *table, 100 gint **selected); 101 gboolean (* is_column_selected) (AtkTable *table, 102 gint column); 103 gboolean (* is_row_selected) (AtkTable *table, 104 gint row); 105 gboolean (* is_selected) (AtkTable *table, 106 gint row, 107 gint column); 108 gboolean (* add_row_selection) (AtkTable *table, 109 gint row); 110 gboolean (* remove_row_selection) (AtkTable *table, 111 gint row); 112 gboolean (* add_column_selection) (AtkTable *table, 113 gint column); 114 gboolean (* remove_column_selection) (AtkTable *table, 115 gint column); 116 117 /* 118 * signal handlers 119 */ 120 void (* row_inserted) (AtkTable *table, 121 gint row, 122 gint num_inserted); 123 void (* column_inserted) (AtkTable *table, 124 gint column, 125 gint num_inserted); 126 void (* row_deleted) (AtkTable *table, 127 gint row, 128 gint num_deleted); 129 void (* column_deleted) (AtkTable *table, 130 gint column, 131 gint num_deleted); 132 void (* row_reordered) (AtkTable *table); 133 void (* column_reordered) (AtkTable *table); 134 void (* model_changed) (AtkTable *table); 135 136 AtkFunction pad1; 137 AtkFunction pad2; 138 AtkFunction pad3; 139 AtkFunction pad4; 140 }; 141 142 GType atk_table_get_type (void); 143 144 AtkObject* atk_table_ref_at (AtkTable *table, 145 gint row, 146 gint column); 147 gint atk_table_get_index_at (AtkTable *table, 148 gint row, 149 gint column); 150 gint atk_table_get_column_at_index (AtkTable *table, 151 gint index_); 152 gint atk_table_get_row_at_index (AtkTable *table, 153 gint index_); 154 gint atk_table_get_n_columns (AtkTable *table); 155 gint atk_table_get_n_rows (AtkTable *table); 156 gint atk_table_get_column_extent_at (AtkTable *table, 157 gint row, 158 gint column); 159 gint atk_table_get_row_extent_at (AtkTable *table, 160 gint row, 161 gint column); 162 AtkObject* 163 atk_table_get_caption (AtkTable *table); 164 G_CONST_RETURN gchar* 165 atk_table_get_column_description (AtkTable *table, 166 gint column); 167 AtkObject* atk_table_get_column_header (AtkTable *table, 168 gint column); 169 G_CONST_RETURN gchar* 170 atk_table_get_row_description (AtkTable *table, 171 gint row); 172 AtkObject* atk_table_get_row_header (AtkTable *table, 173 gint row); 174 AtkObject* atk_table_get_summary (AtkTable *table); 175 void atk_table_set_caption (AtkTable *table, 176 AtkObject *caption); 177 void atk_table_set_column_description 178 (AtkTable *table, 179 gint column, 180 const gchar *description); 181 void atk_table_set_column_header (AtkTable *table, 182 gint column, 183 AtkObject *header); 184 void atk_table_set_row_description (AtkTable *table, 185 gint row, 186 const gchar *description); 187 void atk_table_set_row_header (AtkTable *table, 188 gint row, 189 AtkObject *header); 190 void atk_table_set_summary (AtkTable *table, 191 AtkObject *accessible); 192 gint atk_table_get_selected_columns (AtkTable *table, 193 gint **selected); 194 gint atk_table_get_selected_rows (AtkTable *table, 195 gint **selected); 196 gboolean atk_table_is_column_selected (AtkTable *table, 197 gint column); 198 gboolean atk_table_is_row_selected (AtkTable *table, 199 gint row); 200 gboolean atk_table_is_selected (AtkTable *table, 201 gint row, 202 gint column); 203 gboolean atk_table_add_row_selection (AtkTable *table, 204 gint row); 205 gboolean atk_table_remove_row_selection (AtkTable *table, 206 gint row); 207 gboolean atk_table_add_column_selection (AtkTable *table, 208 gint column); 209 gboolean atk_table_remove_column_selection 210 (AtkTable *table, 211 gint column); 212 213 #ifdef __cplusplus 214 } 215 #endif /* __cplusplus */ 216 217 218 #endif /* __ATK_TABLE_H__ */ 219