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
30G_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 */
41typedef 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
60typedef struct _GtkTreeView GtkTreeView;
61typedef struct _GtkTreeViewClass GtkTreeViewClass;
62typedef 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 */
83typedef 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 */
97typedef 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 */
117typedef 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 */
136typedef gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel *model,
137 GtkTreeIter *iter,
138 gpointer data);
139
140struct _GtkTreeView
141{
142 GtkWidget parent_instance;
143};
144
145struct _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
189GDK_AVAILABLE_IN_ALL
190GType gtk_tree_view_get_type (void) G_GNUC_CONST;
191
192/* Creators */
193GDK_AVAILABLE_IN_ALL
194GtkWidget *gtk_tree_view_new (void);
195GDK_AVAILABLE_IN_ALL
196GtkWidget *gtk_tree_view_new_with_model (GtkTreeModel *model);
197
198/* Accessors */
199GDK_AVAILABLE_IN_ALL
200GtkTreeModel *gtk_tree_view_get_model (GtkTreeView *tree_view);
201GDK_AVAILABLE_IN_ALL
202void gtk_tree_view_set_model (GtkTreeView *tree_view,
203 GtkTreeModel *model);
204GDK_AVAILABLE_IN_ALL
205GtkTreeSelection *gtk_tree_view_get_selection (GtkTreeView *tree_view);
206
207GDK_AVAILABLE_IN_ALL
208gboolean gtk_tree_view_get_headers_visible (GtkTreeView *tree_view);
209GDK_AVAILABLE_IN_ALL
210void gtk_tree_view_set_headers_visible (GtkTreeView *tree_view,
211 gboolean headers_visible);
212GDK_AVAILABLE_IN_ALL
213void gtk_tree_view_columns_autosize (GtkTreeView *tree_view);
214GDK_AVAILABLE_IN_ALL
215gboolean gtk_tree_view_get_headers_clickable (GtkTreeView *tree_view);
216GDK_AVAILABLE_IN_ALL
217void gtk_tree_view_set_headers_clickable (GtkTreeView *tree_view,
218 gboolean setting);
219GDK_AVAILABLE_IN_ALL
220gboolean gtk_tree_view_get_activate_on_single_click (GtkTreeView *tree_view);
221GDK_AVAILABLE_IN_ALL
222void gtk_tree_view_set_activate_on_single_click (GtkTreeView *tree_view,
223 gboolean single);
224
225/* Column functions */
226GDK_AVAILABLE_IN_ALL
227int gtk_tree_view_append_column (GtkTreeView *tree_view,
228 GtkTreeViewColumn *column);
229GDK_AVAILABLE_IN_ALL
230int gtk_tree_view_remove_column (GtkTreeView *tree_view,
231 GtkTreeViewColumn *column);
232GDK_AVAILABLE_IN_ALL
233int gtk_tree_view_insert_column (GtkTreeView *tree_view,
234 GtkTreeViewColumn *column,
235 int position);
236GDK_AVAILABLE_IN_ALL
237int 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;
242GDK_AVAILABLE_IN_ALL
243int 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
251GDK_AVAILABLE_IN_ALL
252guint gtk_tree_view_get_n_columns (GtkTreeView *tree_view);
253GDK_AVAILABLE_IN_ALL
254GtkTreeViewColumn *gtk_tree_view_get_column (GtkTreeView *tree_view,
255 int n);
256GDK_AVAILABLE_IN_ALL
257GList *gtk_tree_view_get_columns (GtkTreeView *tree_view);
258GDK_AVAILABLE_IN_ALL
259void gtk_tree_view_move_column_after (GtkTreeView *tree_view,
260 GtkTreeViewColumn *column,
261 GtkTreeViewColumn *base_column);
262GDK_AVAILABLE_IN_ALL
263void gtk_tree_view_set_expander_column (GtkTreeView *tree_view,
264 GtkTreeViewColumn *column);
265GDK_AVAILABLE_IN_ALL
266GtkTreeViewColumn *gtk_tree_view_get_expander_column (GtkTreeView *tree_view);
267GDK_AVAILABLE_IN_ALL
268void gtk_tree_view_set_column_drag_function (GtkTreeView *tree_view,
269 GtkTreeViewColumnDropFunc func,
270 gpointer user_data,
271 GDestroyNotify destroy);
272
273/* Actions */
274GDK_AVAILABLE_IN_ALL
275void gtk_tree_view_scroll_to_point (GtkTreeView *tree_view,
276 int tree_x,
277 int tree_y);
278GDK_AVAILABLE_IN_ALL
279void 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);
285GDK_AVAILABLE_IN_ALL
286void gtk_tree_view_row_activated (GtkTreeView *tree_view,
287 GtkTreePath *path,
288 GtkTreeViewColumn *column);
289GDK_AVAILABLE_IN_ALL
290void gtk_tree_view_expand_all (GtkTreeView *tree_view);
291GDK_AVAILABLE_IN_ALL
292void gtk_tree_view_collapse_all (GtkTreeView *tree_view);
293GDK_AVAILABLE_IN_ALL
294void gtk_tree_view_expand_to_path (GtkTreeView *tree_view,
295 GtkTreePath *path);
296GDK_AVAILABLE_IN_ALL
297gboolean gtk_tree_view_expand_row (GtkTreeView *tree_view,
298 GtkTreePath *path,
299 gboolean open_all);
300GDK_AVAILABLE_IN_ALL
301gboolean gtk_tree_view_collapse_row (GtkTreeView *tree_view,
302 GtkTreePath *path);
303GDK_AVAILABLE_IN_ALL
304void gtk_tree_view_map_expanded_rows (GtkTreeView *tree_view,
305 GtkTreeViewMappingFunc func,
306 gpointer data);
307GDK_AVAILABLE_IN_ALL
308gboolean gtk_tree_view_row_expanded (GtkTreeView *tree_view,
309 GtkTreePath *path);
310GDK_AVAILABLE_IN_ALL
311void gtk_tree_view_set_reorderable (GtkTreeView *tree_view,
312 gboolean reorderable);
313GDK_AVAILABLE_IN_ALL
314gboolean gtk_tree_view_get_reorderable (GtkTreeView *tree_view);
315GDK_AVAILABLE_IN_ALL
316void gtk_tree_view_set_cursor (GtkTreeView *tree_view,
317 GtkTreePath *path,
318 GtkTreeViewColumn *focus_column,
319 gboolean start_editing);
320GDK_AVAILABLE_IN_ALL
321void 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);
326GDK_AVAILABLE_IN_ALL
327void gtk_tree_view_get_cursor (GtkTreeView *tree_view,
328 GtkTreePath **path,
329 GtkTreeViewColumn **focus_column);
330
331
332/* Layout information */
333GDK_AVAILABLE_IN_ALL
334gboolean 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);
341GDK_AVAILABLE_IN_ALL
342void gtk_tree_view_get_cell_area (GtkTreeView *tree_view,
343 GtkTreePath *path,
344 GtkTreeViewColumn *column,
345 GdkRectangle *rect);
346GDK_AVAILABLE_IN_ALL
347void gtk_tree_view_get_background_area (GtkTreeView *tree_view,
348 GtkTreePath *path,
349 GtkTreeViewColumn *column,
350 GdkRectangle *rect);
351GDK_AVAILABLE_IN_ALL
352void gtk_tree_view_get_visible_rect (GtkTreeView *tree_view,
353 GdkRectangle *visible_rect);
354GDK_AVAILABLE_IN_ALL
355gboolean gtk_tree_view_get_visible_range (GtkTreeView *tree_view,
356 GtkTreePath **start_path,
357 GtkTreePath **end_path);
358GDK_AVAILABLE_IN_ALL
359gboolean 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 */
368GDK_AVAILABLE_IN_ALL
369void gtk_tree_view_enable_model_drag_source (GtkTreeView *tree_view,
370 GdkModifierType start_button_mask,
371 GdkContentFormats *formats,
372 GdkDragAction actions);
373GDK_AVAILABLE_IN_ALL
374void gtk_tree_view_enable_model_drag_dest (GtkTreeView *tree_view,
375 GdkContentFormats *formats,
376 GdkDragAction actions);
377GDK_AVAILABLE_IN_ALL
378void gtk_tree_view_unset_rows_drag_source (GtkTreeView *tree_view);
379GDK_AVAILABLE_IN_ALL
380void gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view);
381
382
383/* These are useful to implement your own custom stuff. */
384GDK_AVAILABLE_IN_ALL
385void gtk_tree_view_set_drag_dest_row (GtkTreeView *tree_view,
386 GtkTreePath *path,
387 GtkTreeViewDropPosition pos);
388GDK_AVAILABLE_IN_ALL
389void gtk_tree_view_get_drag_dest_row (GtkTreeView *tree_view,
390 GtkTreePath **path,
391 GtkTreeViewDropPosition *pos);
392GDK_AVAILABLE_IN_ALL
393gboolean 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);
398GDK_AVAILABLE_IN_ALL
399GdkPaintable *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view,
400 GtkTreePath *path);
401
402/* Interactive search */
403GDK_AVAILABLE_IN_ALL
404void gtk_tree_view_set_enable_search (GtkTreeView *tree_view,
405 gboolean enable_search);
406GDK_AVAILABLE_IN_ALL
407gboolean gtk_tree_view_get_enable_search (GtkTreeView *tree_view);
408GDK_AVAILABLE_IN_ALL
409int gtk_tree_view_get_search_column (GtkTreeView *tree_view);
410GDK_AVAILABLE_IN_ALL
411void gtk_tree_view_set_search_column (GtkTreeView *tree_view,
412 int column);
413GDK_AVAILABLE_IN_ALL
414GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func (GtkTreeView *tree_view);
415GDK_AVAILABLE_IN_ALL
416void 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
421GDK_AVAILABLE_IN_ALL
422GtkEditable *gtk_tree_view_get_search_entry (GtkTreeView *tree_view);
423GDK_AVAILABLE_IN_ALL
424void gtk_tree_view_set_search_entry (GtkTreeView *tree_view,
425 GtkEditable *entry);
426
427/* Convert between the different coordinate systems */
428GDK_AVAILABLE_IN_ALL
429void gtk_tree_view_convert_widget_to_tree_coords (GtkTreeView *tree_view,
430 int wx,
431 int wy,
432 int *tx,
433 int *ty);
434GDK_AVAILABLE_IN_ALL
435void gtk_tree_view_convert_tree_to_widget_coords (GtkTreeView *tree_view,
436 int tx,
437 int ty,
438 int *wx,
439 int *wy);
440GDK_AVAILABLE_IN_ALL
441void gtk_tree_view_convert_widget_to_bin_window_coords (GtkTreeView *tree_view,
442 int wx,
443 int wy,
444 int *bx,
445 int *by);
446GDK_AVAILABLE_IN_ALL
447void gtk_tree_view_convert_bin_window_to_widget_coords (GtkTreeView *tree_view,
448 int bx,
449 int by,
450 int *wx,
451 int *wy);
452GDK_AVAILABLE_IN_ALL
453void gtk_tree_view_convert_tree_to_bin_window_coords (GtkTreeView *tree_view,
454 int tx,
455 int ty,
456 int *bx,
457 int *by);
458GDK_AVAILABLE_IN_ALL
459void 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
465GDK_AVAILABLE_IN_ALL
466void gtk_tree_view_set_fixed_height_mode (GtkTreeView *tree_view,
467 gboolean enable);
468GDK_AVAILABLE_IN_ALL
469gboolean gtk_tree_view_get_fixed_height_mode (GtkTreeView *tree_view);
470GDK_AVAILABLE_IN_ALL
471void gtk_tree_view_set_hover_selection (GtkTreeView *tree_view,
472 gboolean hover);
473GDK_AVAILABLE_IN_ALL
474gboolean gtk_tree_view_get_hover_selection (GtkTreeView *tree_view);
475GDK_AVAILABLE_IN_ALL
476void gtk_tree_view_set_hover_expand (GtkTreeView *tree_view,
477 gboolean expand);
478GDK_AVAILABLE_IN_ALL
479gboolean gtk_tree_view_get_hover_expand (GtkTreeView *tree_view);
480GDK_AVAILABLE_IN_ALL
481void gtk_tree_view_set_rubber_banding (GtkTreeView *tree_view,
482 gboolean enable);
483GDK_AVAILABLE_IN_ALL
484gboolean gtk_tree_view_get_rubber_banding (GtkTreeView *tree_view);
485
486GDK_AVAILABLE_IN_ALL
487gboolean gtk_tree_view_is_rubber_banding_active (GtkTreeView *tree_view);
488
489GDK_AVAILABLE_IN_ALL
490GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func (GtkTreeView *tree_view);
491GDK_AVAILABLE_IN_ALL
492void gtk_tree_view_set_row_separator_func (GtkTreeView *tree_view,
493 GtkTreeViewRowSeparatorFunc func,
494 gpointer data,
495 GDestroyNotify destroy);
496
497GDK_AVAILABLE_IN_ALL
498GtkTreeViewGridLines gtk_tree_view_get_grid_lines (GtkTreeView *tree_view);
499GDK_AVAILABLE_IN_ALL
500void gtk_tree_view_set_grid_lines (GtkTreeView *tree_view,
501 GtkTreeViewGridLines grid_lines);
502GDK_AVAILABLE_IN_ALL
503gboolean gtk_tree_view_get_enable_tree_lines (GtkTreeView *tree_view);
504GDK_AVAILABLE_IN_ALL
505void gtk_tree_view_set_enable_tree_lines (GtkTreeView *tree_view,
506 gboolean enabled);
507GDK_AVAILABLE_IN_ALL
508void gtk_tree_view_set_show_expanders (GtkTreeView *tree_view,
509 gboolean enabled);
510GDK_AVAILABLE_IN_ALL
511gboolean gtk_tree_view_get_show_expanders (GtkTreeView *tree_view);
512GDK_AVAILABLE_IN_ALL
513void gtk_tree_view_set_level_indentation (GtkTreeView *tree_view,
514 int indentation);
515GDK_AVAILABLE_IN_ALL
516int gtk_tree_view_get_level_indentation (GtkTreeView *tree_view);
517
518/* Convenience functions for setting tooltips */
519GDK_AVAILABLE_IN_ALL
520void gtk_tree_view_set_tooltip_row (GtkTreeView *tree_view,
521 GtkTooltip *tooltip,
522 GtkTreePath *path);
523GDK_AVAILABLE_IN_ALL
524void gtk_tree_view_set_tooltip_cell (GtkTreeView *tree_view,
525 GtkTooltip *tooltip,
526 GtkTreePath *path,
527 GtkTreeViewColumn *column,
528 GtkCellRenderer *cell);
529GDK_AVAILABLE_IN_ALL
530gboolean 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);
537GDK_AVAILABLE_IN_ALL
538void gtk_tree_view_set_tooltip_column (GtkTreeView *tree_view,
539 int column);
540GDK_AVAILABLE_IN_ALL
541int gtk_tree_view_get_tooltip_column (GtkTreeView *tree_view);
542
543G_END_DECLS
544
545
546#endif /* __GTK_TREE_VIEW_H__ */
547

source code of gtk/gtk/gtktreeview.h