1 /* gtktreeview.h 2 * Copyright (C) 2000 Red Hat, Inc., Jonathan Blandford <jrb@redhat.com> 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, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __GTK_TREE_VIEW_H__ 19 #define __GTK_TREE_VIEW_H__ 20 21 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 22 #error "Only <gtk/gtk.h> can be included directly." 23 #endif 24 25 #include <gtk/gtkwidget.h> 26 #include <gtk/gtktreemodel.h> 27 #include <gtk/gtktreeviewcolumn.h> 28 #include <gtk/gtkentry.h> 29 30 G_BEGIN_DECLS 31 32 /** 33 * GtkTreeViewDropPosition: 34 * @GTK_TREE_VIEW_DROP_BEFORE: dropped row is inserted before 35 * @GTK_TREE_VIEW_DROP_AFTER: dropped row is inserted after 36 * @GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: dropped row becomes a child or is inserted before 37 * @GTK_TREE_VIEW_DROP_INTO_OR_AFTER: dropped row becomes a child or is inserted after 38 * 39 * An enum for determining where a dropped row goes. 40 */ 41 typedef enum 42 { 43 /* drop before/after this row */ 44 GTK_TREE_VIEW_DROP_BEFORE, 45 GTK_TREE_VIEW_DROP_AFTER, 46 /* drop as a child of this row (with fallback to before or after 47 * if into is not possible) 48 */ 49 GTK_TREE_VIEW_DROP_INTO_OR_BEFORE, 50 GTK_TREE_VIEW_DROP_INTO_OR_AFTER 51 } GtkTreeViewDropPosition; 52 53 #define GTK_TYPE_TREE_VIEW (gtk_tree_view_get_type ()) 54 #define GTK_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_VIEW, GtkTreeView)) 55 #define GTK_IS_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_VIEW)) 56 #define GTK_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW, GtkTreeViewClass)) 57 #define GTK_IS_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW)) 58 #define GTK_TREE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW, GtkTreeViewClass)) 59 60 typedef struct _GtkTreeView GtkTreeView; 61 typedef struct _GtkTreeViewClass GtkTreeViewClass; 62 typedef struct _GtkTreeSelection GtkTreeSelection; 63 64 /** 65 * GtkTreeViewColumnDropFunc: 66 * @tree_view: A `GtkTreeView` 67 * @column: The `GtkTreeViewColumn` being dragged 68 * @prev_column: A `GtkTreeViewColumn` on one side of @column 69 * @next_column: A `GtkTreeViewColumn` on the other side of @column 70 * @data: (closure): user data 71 * 72 * Function type for determining whether @column can be dropped in a 73 * particular spot (as determined by @prev_column and @next_column). In 74 * left to right locales, @prev_column is on the left of the potential drop 75 * spot, and @next_column is on the right. In right to left mode, this is 76 * reversed. This function should return %TRUE if the spot is a valid drop 77 * spot. Please note that returning %TRUE does not actually indicate that 78 * the column drop was made, but is meant only to indicate a possible drop 79 * spot to the user. 80 * 81 * Returns: %TRUE, if @column can be dropped in this spot 82 */ 83 typedef gboolean (* GtkTreeViewColumnDropFunc) (GtkTreeView *tree_view, 84 GtkTreeViewColumn *column, 85 GtkTreeViewColumn *prev_column, 86 GtkTreeViewColumn *next_column, 87 gpointer data); 88 89 /** 90 * GtkTreeViewMappingFunc: 91 * @tree_view: A `GtkTreeView` 92 * @path: The path that’s expanded 93 * @user_data: user data 94 * 95 * Function used for gtk_tree_view_map_expanded_rows(). 96 */ 97 typedef void (* GtkTreeViewMappingFunc) (GtkTreeView *tree_view, 98 GtkTreePath *path, 99 gpointer user_data); 100 101 /** 102 * GtkTreeViewSearchEqualFunc: 103 * @model: the `GtkTreeModel` being searched 104 * @column: the search column set by gtk_tree_view_set_search_column() 105 * @key: the key string to compare with 106 * @iter: a `GtkTreeIter` pointing the row of @model that should be compared 107 * with @key. 108 * @search_data: (closure): user data from gtk_tree_view_set_search_equal_func() 109 * 110 * A function used for checking whether a row in @model matches 111 * a search key string entered by the user. Note the return value 112 * is reversed from what you would normally expect, though it 113 * has some similarity to strcmp() returning 0 for equal strings. 114 * 115 * Returns: %FALSE if the row matches, %TRUE otherwise. 116 */ 117 typedef gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel *model, 118 int column, 119 const char *key, 120 GtkTreeIter *iter, 121 gpointer search_data); 122 123 /** 124 * GtkTreeViewRowSeparatorFunc: 125 * @model: the `GtkTreeModel` 126 * @iter: a `GtkTreeIter` pointing at a row in @model 127 * @data: (closure): user data 128 * 129 * Function type for determining whether the row pointed to by @iter should 130 * be rendered as a separator. A common way to implement this is to have a 131 * boolean column in the model, whose values the `GtkTreeViewRowSeparatorFunc` 132 * returns. 133 * 134 * Returns: %TRUE if the row is a separator 135 */ 136 typedef gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel *model, 137 GtkTreeIter *iter, 138 gpointer data); 139 140 struct _GtkTreeView 141 { 142 GtkWidget parent_instance; 143 }; 144 145 struct _GtkTreeViewClass 146 { 147 GtkWidgetClass parent_class; 148 149 void (* row_activated) (GtkTreeView *tree_view, 150 GtkTreePath *path, 151 GtkTreeViewColumn *column); 152 gboolean (* test_expand_row) (GtkTreeView *tree_view, 153 GtkTreeIter *iter, 154 GtkTreePath *path); 155 gboolean (* test_collapse_row) (GtkTreeView *tree_view, 156 GtkTreeIter *iter, 157 GtkTreePath *path); 158 void (* row_expanded) (GtkTreeView *tree_view, 159 GtkTreeIter *iter, 160 GtkTreePath *path); 161 void (* row_collapsed) (GtkTreeView *tree_view, 162 GtkTreeIter *iter, 163 GtkTreePath *path); 164 void (* columns_changed) (GtkTreeView *tree_view); 165 void (* cursor_changed) (GtkTreeView *tree_view); 166 167 /* Key Binding signals */ 168 gboolean (* move_cursor) (GtkTreeView *tree_view, 169 GtkMovementStep step, 170 int count, 171 gboolean extend, 172 gboolean modify); 173 gboolean (* select_all) (GtkTreeView *tree_view); 174 gboolean (* unselect_all) (GtkTreeView *tree_view); 175 gboolean (* select_cursor_row) (GtkTreeView *tree_view, 176 gboolean start_editing); 177 gboolean (* toggle_cursor_row) (GtkTreeView *tree_view); 178 gboolean (* expand_collapse_cursor_row) (GtkTreeView *tree_view, 179 gboolean logical, 180 gboolean expand, 181 gboolean open_all); 182 gboolean (* select_cursor_parent) (GtkTreeView *tree_view); 183 gboolean (* start_interactive_search) (GtkTreeView *tree_view); 184 185 /*< private >*/ 186 gpointer _reserved[16]; 187 }; 188 189 GDK_AVAILABLE_IN_ALL 190 GType gtk_tree_view_get_type (void) G_GNUC_CONST; 191 192 /* Creators */ 193 GDK_AVAILABLE_IN_ALL 194 GtkWidget *gtk_tree_view_new (void); 195 GDK_AVAILABLE_IN_ALL 196 GtkWidget *gtk_tree_view_new_with_model (GtkTreeModel *model); 197 198 /* Accessors */ 199 GDK_AVAILABLE_IN_ALL 200 GtkTreeModel *gtk_tree_view_get_model (GtkTreeView *tree_view); 201 GDK_AVAILABLE_IN_ALL 202 void gtk_tree_view_set_model (GtkTreeView *tree_view, 203 GtkTreeModel *model); 204 GDK_AVAILABLE_IN_ALL 205 GtkTreeSelection *gtk_tree_view_get_selection (GtkTreeView *tree_view); 206 207 GDK_AVAILABLE_IN_ALL 208 gboolean gtk_tree_view_get_headers_visible (GtkTreeView *tree_view); 209 GDK_AVAILABLE_IN_ALL 210 void gtk_tree_view_set_headers_visible (GtkTreeView *tree_view, 211 gboolean headers_visible); 212 GDK_AVAILABLE_IN_ALL 213 void gtk_tree_view_columns_autosize (GtkTreeView *tree_view); 214 GDK_AVAILABLE_IN_ALL 215 gboolean gtk_tree_view_get_headers_clickable (GtkTreeView *tree_view); 216 GDK_AVAILABLE_IN_ALL 217 void gtk_tree_view_set_headers_clickable (GtkTreeView *tree_view, 218 gboolean setting); 219 GDK_AVAILABLE_IN_ALL 220 gboolean gtk_tree_view_get_activate_on_single_click (GtkTreeView *tree_view); 221 GDK_AVAILABLE_IN_ALL 222 void gtk_tree_view_set_activate_on_single_click (GtkTreeView *tree_view, 223 gboolean single); 224 225 /* Column functions */ 226 GDK_AVAILABLE_IN_ALL 227 int gtk_tree_view_append_column (GtkTreeView *tree_view, 228 GtkTreeViewColumn *column); 229 GDK_AVAILABLE_IN_ALL 230 int gtk_tree_view_remove_column (GtkTreeView *tree_view, 231 GtkTreeViewColumn *column); 232 GDK_AVAILABLE_IN_ALL 233 int gtk_tree_view_insert_column (GtkTreeView *tree_view, 234 GtkTreeViewColumn *column, 235 int position); 236 GDK_AVAILABLE_IN_ALL 237 int gtk_tree_view_insert_column_with_attributes (GtkTreeView *tree_view, 238 int position, 239 const char *title, 240 GtkCellRenderer *cell, 241 ...) G_GNUC_NULL_TERMINATED; 242 GDK_AVAILABLE_IN_ALL 243 int gtk_tree_view_insert_column_with_data_func (GtkTreeView *tree_view, 244 int position, 245 const char *title, 246 GtkCellRenderer *cell, 247 GtkTreeCellDataFunc func, 248 gpointer data, 249 GDestroyNotify dnotify); 250 251 GDK_AVAILABLE_IN_ALL 252 guint gtk_tree_view_get_n_columns (GtkTreeView *tree_view); 253 GDK_AVAILABLE_IN_ALL 254 GtkTreeViewColumn *gtk_tree_view_get_column (GtkTreeView *tree_view, 255 int n); 256 GDK_AVAILABLE_IN_ALL 257 GList *gtk_tree_view_get_columns (GtkTreeView *tree_view); 258 GDK_AVAILABLE_IN_ALL 259 void gtk_tree_view_move_column_after (GtkTreeView *tree_view, 260 GtkTreeViewColumn *column, 261 GtkTreeViewColumn *base_column); 262 GDK_AVAILABLE_IN_ALL 263 void gtk_tree_view_set_expander_column (GtkTreeView *tree_view, 264 GtkTreeViewColumn *column); 265 GDK_AVAILABLE_IN_ALL 266 GtkTreeViewColumn *gtk_tree_view_get_expander_column (GtkTreeView *tree_view); 267 GDK_AVAILABLE_IN_ALL 268 void gtk_tree_view_set_column_drag_function (GtkTreeView *tree_view, 269 GtkTreeViewColumnDropFunc func, 270 gpointer user_data, 271 GDestroyNotify destroy); 272 273 /* Actions */ 274 GDK_AVAILABLE_IN_ALL 275 void gtk_tree_view_scroll_to_point (GtkTreeView *tree_view, 276 int tree_x, 277 int tree_y); 278 GDK_AVAILABLE_IN_ALL 279 void gtk_tree_view_scroll_to_cell (GtkTreeView *tree_view, 280 GtkTreePath *path, 281 GtkTreeViewColumn *column, 282 gboolean use_align, 283 float row_align, 284 float col_align); 285 GDK_AVAILABLE_IN_ALL 286 void gtk_tree_view_row_activated (GtkTreeView *tree_view, 287 GtkTreePath *path, 288 GtkTreeViewColumn *column); 289 GDK_AVAILABLE_IN_ALL 290 void gtk_tree_view_expand_all (GtkTreeView *tree_view); 291 GDK_AVAILABLE_IN_ALL 292 void gtk_tree_view_collapse_all (GtkTreeView *tree_view); 293 GDK_AVAILABLE_IN_ALL 294 void gtk_tree_view_expand_to_path (GtkTreeView *tree_view, 295 GtkTreePath *path); 296 GDK_AVAILABLE_IN_ALL 297 gboolean gtk_tree_view_expand_row (GtkTreeView *tree_view, 298 GtkTreePath *path, 299 gboolean open_all); 300 GDK_AVAILABLE_IN_ALL 301 gboolean gtk_tree_view_collapse_row (GtkTreeView *tree_view, 302 GtkTreePath *path); 303 GDK_AVAILABLE_IN_ALL 304 void gtk_tree_view_map_expanded_rows (GtkTreeView *tree_view, 305 GtkTreeViewMappingFunc func, 306 gpointer data); 307 GDK_AVAILABLE_IN_ALL 308 gboolean gtk_tree_view_row_expanded (GtkTreeView *tree_view, 309 GtkTreePath *path); 310 GDK_AVAILABLE_IN_ALL 311 void gtk_tree_view_set_reorderable (GtkTreeView *tree_view, 312 gboolean reorderable); 313 GDK_AVAILABLE_IN_ALL 314 gboolean gtk_tree_view_get_reorderable (GtkTreeView *tree_view); 315 GDK_AVAILABLE_IN_ALL 316 void gtk_tree_view_set_cursor (GtkTreeView *tree_view, 317 GtkTreePath *path, 318 GtkTreeViewColumn *focus_column, 319 gboolean start_editing); 320 GDK_AVAILABLE_IN_ALL 321 void gtk_tree_view_set_cursor_on_cell (GtkTreeView *tree_view, 322 GtkTreePath *path, 323 GtkTreeViewColumn *focus_column, 324 GtkCellRenderer *focus_cell, 325 gboolean start_editing); 326 GDK_AVAILABLE_IN_ALL 327 void gtk_tree_view_get_cursor (GtkTreeView *tree_view, 328 GtkTreePath **path, 329 GtkTreeViewColumn **focus_column); 330 331 332 /* Layout information */ 333 GDK_AVAILABLE_IN_ALL 334 gboolean gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view, 335 int x, 336 int y, 337 GtkTreePath **path, 338 GtkTreeViewColumn **column, 339 int *cell_x, 340 int *cell_y); 341 GDK_AVAILABLE_IN_ALL 342 void gtk_tree_view_get_cell_area (GtkTreeView *tree_view, 343 GtkTreePath *path, 344 GtkTreeViewColumn *column, 345 GdkRectangle *rect); 346 GDK_AVAILABLE_IN_ALL 347 void gtk_tree_view_get_background_area (GtkTreeView *tree_view, 348 GtkTreePath *path, 349 GtkTreeViewColumn *column, 350 GdkRectangle *rect); 351 GDK_AVAILABLE_IN_ALL 352 void gtk_tree_view_get_visible_rect (GtkTreeView *tree_view, 353 GdkRectangle *visible_rect); 354 GDK_AVAILABLE_IN_ALL 355 gboolean gtk_tree_view_get_visible_range (GtkTreeView *tree_view, 356 GtkTreePath **start_path, 357 GtkTreePath **end_path); 358 GDK_AVAILABLE_IN_ALL 359 gboolean gtk_tree_view_is_blank_at_pos (GtkTreeView *tree_view, 360 int x, 361 int y, 362 GtkTreePath **path, 363 GtkTreeViewColumn **column, 364 int *cell_x, 365 int *cell_y); 366 367 /* Drag-and-Drop support */ 368 GDK_AVAILABLE_IN_ALL 369 void gtk_tree_view_enable_model_drag_source (GtkTreeView *tree_view, 370 GdkModifierType start_button_mask, 371 GdkContentFormats *formats, 372 GdkDragAction actions); 373 GDK_AVAILABLE_IN_ALL 374 void gtk_tree_view_enable_model_drag_dest (GtkTreeView *tree_view, 375 GdkContentFormats *formats, 376 GdkDragAction actions); 377 GDK_AVAILABLE_IN_ALL 378 void gtk_tree_view_unset_rows_drag_source (GtkTreeView *tree_view); 379 GDK_AVAILABLE_IN_ALL 380 void gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view); 381 382 383 /* These are useful to implement your own custom stuff. */ 384 GDK_AVAILABLE_IN_ALL 385 void gtk_tree_view_set_drag_dest_row (GtkTreeView *tree_view, 386 GtkTreePath *path, 387 GtkTreeViewDropPosition pos); 388 GDK_AVAILABLE_IN_ALL 389 void gtk_tree_view_get_drag_dest_row (GtkTreeView *tree_view, 390 GtkTreePath **path, 391 GtkTreeViewDropPosition *pos); 392 GDK_AVAILABLE_IN_ALL 393 gboolean gtk_tree_view_get_dest_row_at_pos (GtkTreeView *tree_view, 394 int drag_x, 395 int drag_y, 396 GtkTreePath **path, 397 GtkTreeViewDropPosition *pos); 398 GDK_AVAILABLE_IN_ALL 399 GdkPaintable *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view, 400 GtkTreePath *path); 401 402 /* Interactive search */ 403 GDK_AVAILABLE_IN_ALL 404 void gtk_tree_view_set_enable_search (GtkTreeView *tree_view, 405 gboolean enable_search); 406 GDK_AVAILABLE_IN_ALL 407 gboolean gtk_tree_view_get_enable_search (GtkTreeView *tree_view); 408 GDK_AVAILABLE_IN_ALL 409 int gtk_tree_view_get_search_column (GtkTreeView *tree_view); 410 GDK_AVAILABLE_IN_ALL 411 void gtk_tree_view_set_search_column (GtkTreeView *tree_view, 412 int column); 413 GDK_AVAILABLE_IN_ALL 414 GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func (GtkTreeView *tree_view); 415 GDK_AVAILABLE_IN_ALL 416 void gtk_tree_view_set_search_equal_func (GtkTreeView *tree_view, 417 GtkTreeViewSearchEqualFunc search_equal_func, 418 gpointer search_user_data, 419 GDestroyNotify search_destroy); 420 421 GDK_AVAILABLE_IN_ALL 422 GtkEditable *gtk_tree_view_get_search_entry (GtkTreeView *tree_view); 423 GDK_AVAILABLE_IN_ALL 424 void gtk_tree_view_set_search_entry (GtkTreeView *tree_view, 425 GtkEditable *entry); 426 427 /* Convert between the different coordinate systems */ 428 GDK_AVAILABLE_IN_ALL 429 void gtk_tree_view_convert_widget_to_tree_coords (GtkTreeView *tree_view, 430 int wx, 431 int wy, 432 int *tx, 433 int *ty); 434 GDK_AVAILABLE_IN_ALL 435 void gtk_tree_view_convert_tree_to_widget_coords (GtkTreeView *tree_view, 436 int tx, 437 int ty, 438 int *wx, 439 int *wy); 440 GDK_AVAILABLE_IN_ALL 441 void gtk_tree_view_convert_widget_to_bin_window_coords (GtkTreeView *tree_view, 442 int wx, 443 int wy, 444 int *bx, 445 int *by); 446 GDK_AVAILABLE_IN_ALL 447 void gtk_tree_view_convert_bin_window_to_widget_coords (GtkTreeView *tree_view, 448 int bx, 449 int by, 450 int *wx, 451 int *wy); 452 GDK_AVAILABLE_IN_ALL 453 void gtk_tree_view_convert_tree_to_bin_window_coords (GtkTreeView *tree_view, 454 int tx, 455 int ty, 456 int *bx, 457 int *by); 458 GDK_AVAILABLE_IN_ALL 459 void gtk_tree_view_convert_bin_window_to_tree_coords (GtkTreeView *tree_view, 460 int bx, 461 int by, 462 int *tx, 463 int *ty); 464 465 GDK_AVAILABLE_IN_ALL 466 void gtk_tree_view_set_fixed_height_mode (GtkTreeView *tree_view, 467 gboolean enable); 468 GDK_AVAILABLE_IN_ALL 469 gboolean gtk_tree_view_get_fixed_height_mode (GtkTreeView *tree_view); 470 GDK_AVAILABLE_IN_ALL 471 void gtk_tree_view_set_hover_selection (GtkTreeView *tree_view, 472 gboolean hover); 473 GDK_AVAILABLE_IN_ALL 474 gboolean gtk_tree_view_get_hover_selection (GtkTreeView *tree_view); 475 GDK_AVAILABLE_IN_ALL 476 void gtk_tree_view_set_hover_expand (GtkTreeView *tree_view, 477 gboolean expand); 478 GDK_AVAILABLE_IN_ALL 479 gboolean gtk_tree_view_get_hover_expand (GtkTreeView *tree_view); 480 GDK_AVAILABLE_IN_ALL 481 void gtk_tree_view_set_rubber_banding (GtkTreeView *tree_view, 482 gboolean enable); 483 GDK_AVAILABLE_IN_ALL 484 gboolean gtk_tree_view_get_rubber_banding (GtkTreeView *tree_view); 485 486 GDK_AVAILABLE_IN_ALL 487 gboolean gtk_tree_view_is_rubber_banding_active (GtkTreeView *tree_view); 488 489 GDK_AVAILABLE_IN_ALL 490 GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func (GtkTreeView *tree_view); 491 GDK_AVAILABLE_IN_ALL 492 void gtk_tree_view_set_row_separator_func (GtkTreeView *tree_view, 493 GtkTreeViewRowSeparatorFunc func, 494 gpointer data, 495 GDestroyNotify destroy); 496 497 GDK_AVAILABLE_IN_ALL 498 GtkTreeViewGridLines gtk_tree_view_get_grid_lines (GtkTreeView *tree_view); 499 GDK_AVAILABLE_IN_ALL 500 void gtk_tree_view_set_grid_lines (GtkTreeView *tree_view, 501 GtkTreeViewGridLines grid_lines); 502 GDK_AVAILABLE_IN_ALL 503 gboolean gtk_tree_view_get_enable_tree_lines (GtkTreeView *tree_view); 504 GDK_AVAILABLE_IN_ALL 505 void gtk_tree_view_set_enable_tree_lines (GtkTreeView *tree_view, 506 gboolean enabled); 507 GDK_AVAILABLE_IN_ALL 508 void gtk_tree_view_set_show_expanders (GtkTreeView *tree_view, 509 gboolean enabled); 510 GDK_AVAILABLE_IN_ALL 511 gboolean gtk_tree_view_get_show_expanders (GtkTreeView *tree_view); 512 GDK_AVAILABLE_IN_ALL 513 void gtk_tree_view_set_level_indentation (GtkTreeView *tree_view, 514 int indentation); 515 GDK_AVAILABLE_IN_ALL 516 int gtk_tree_view_get_level_indentation (GtkTreeView *tree_view); 517 518 /* Convenience functions for setting tooltips */ 519 GDK_AVAILABLE_IN_ALL 520 void gtk_tree_view_set_tooltip_row (GtkTreeView *tree_view, 521 GtkTooltip *tooltip, 522 GtkTreePath *path); 523 GDK_AVAILABLE_IN_ALL 524 void gtk_tree_view_set_tooltip_cell (GtkTreeView *tree_view, 525 GtkTooltip *tooltip, 526 GtkTreePath *path, 527 GtkTreeViewColumn *column, 528 GtkCellRenderer *cell); 529 GDK_AVAILABLE_IN_ALL 530 gboolean gtk_tree_view_get_tooltip_context(GtkTreeView *tree_view, 531 int x, 532 int y, 533 gboolean keyboard_tip, 534 GtkTreeModel **model, 535 GtkTreePath **path, 536 GtkTreeIter *iter); 537 GDK_AVAILABLE_IN_ALL 538 void gtk_tree_view_set_tooltip_column (GtkTreeView *tree_view, 539 int column); 540 GDK_AVAILABLE_IN_ALL 541 int gtk_tree_view_get_tooltip_column (GtkTreeView *tree_view); 542 543 G_END_DECLS 544 545 546 #endif /* __GTK_TREE_VIEW_H__ */ 547