1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 A widget for displaying both trees and lists
7 <!-- ##### SECTION Long_Description ##### -->
9 Widget that displays any object that implements the <link
10 linkend="GtkTreeModel">GtkTreeModel</link> interface.
14 Please refer to the <link linkend="TreeWidget">tree widget conceptual overview</link>
15 for an overview of all the objects and data types related to the tree widget and how
20 Several different coordinate systems are exposed in the GtkTreeView API.
23 <inlinegraphics fileref="tree-view-coordinates.png" format="PNG"></inlinegraphic>
26 <member>Widget coordinates -- coordinates relative to the widget (usually <literal>widget->window</literal>.</member>
27 <member>Bin window coordinates -- coordinates relative to the window that GtkTreeView renders to.</member>
28 <member>Tree coordinates -- coordinates relative to the entire scrollable area of GtkTreeView. These coordinates start at (0, 0) for row 0 of the tree.</member>
33 Several functions are available for converting between the different
34 coordinate systems. The most common translations are between widget and bin window coordinates and between bin window and tree coordinates. For the former
35 you can use <literal>gtk_tree_view_convert_widget_to_bin_window_coords (<!-- -->)</literal>
36 (and vice versa), for the latter <literal>gtk_tree_view_convert_bin_window_to_tree_coords (<!-- -->)</literal> (and vice versa).
39 <!-- ##### SECTION See_Also ##### -->
41 #GtkTreeViewColumn, #GtkTreeSelection, #GtkTreeDnd, #GtkTreeMode, #GtkTreeSortable, #GtkTreeModelSort, #GtkListStore, #GtkTreeStore, #GtkCellRenderer, #GtkCellEditable, #GtkCellRendererPixbuf, #GtkCellRendererText, #GtkCellRendererToggle
44 <!-- ##### SECTION Stability_Level ##### -->
47 <!-- ##### STRUCT GtkTreeView ##### -->
53 <!-- ##### SIGNAL GtkTreeView::columns-changed ##### -->
58 @tree_view: the object which received the signal.
60 <!-- ##### SIGNAL GtkTreeView::cursor-changed ##### -->
65 @tree_view: the object which received the signal.
67 <!-- ##### SIGNAL GtkTreeView::expand-collapse-cursor-row ##### -->
72 @tree_view: the object which received the signal.
78 <!-- ##### SIGNAL GtkTreeView::move-cursor ##### -->
83 @tree_view: the object which received the signal.
88 <!-- ##### SIGNAL GtkTreeView::row-activated ##### -->
93 @tree_view: the object which received the signal.
97 <!-- ##### SIGNAL GtkTreeView::row-collapsed ##### -->
102 @tree_view: the object which received the signal.
106 <!-- ##### SIGNAL GtkTreeView::row-expanded ##### -->
111 @tree_view: the object which received the signal.
115 <!-- ##### SIGNAL GtkTreeView::select-all ##### -->
120 @tree_view: the object which received the signal.
123 <!-- ##### SIGNAL GtkTreeView::select-cursor-parent ##### -->
128 @tree_view: the object which received the signal.
131 <!-- ##### SIGNAL GtkTreeView::select-cursor-row ##### -->
136 @tree_view: the object which received the signal.
140 <!-- ##### SIGNAL GtkTreeView::set-scroll-adjustments ##### -->
145 @tree_view: the object which received the signal.
149 <!-- ##### SIGNAL GtkTreeView::start-interactive-search ##### -->
154 @tree_view: the object which received the signal.
157 <!-- ##### SIGNAL GtkTreeView::test-collapse-row ##### -->
162 @tree_view: the object which received the signal.
167 <!-- ##### SIGNAL GtkTreeView::test-expand-row ##### -->
172 @tree_view: the object which received the signal.
177 <!-- ##### SIGNAL GtkTreeView::toggle-cursor-row ##### -->
182 @tree_view: the object which received the signal.
185 <!-- ##### SIGNAL GtkTreeView::unselect-all ##### -->
190 @tree_view: the object which received the signal.
193 <!-- ##### ARG GtkTreeView:enable-grid-lines ##### -->
198 <!-- ##### ARG GtkTreeView:enable-search ##### -->
203 <!-- ##### ARG GtkTreeView:enable-tree-lines ##### -->
208 <!-- ##### ARG GtkTreeView:expander-column ##### -->
213 <!-- ##### ARG GtkTreeView:fixed-height-mode ##### -->
218 <!-- ##### ARG GtkTreeView:hadjustment ##### -->
223 <!-- ##### ARG GtkTreeView:headers-clickable ##### -->
228 <!-- ##### ARG GtkTreeView:headers-visible ##### -->
233 <!-- ##### ARG GtkTreeView:hover-expand ##### -->
238 <!-- ##### ARG GtkTreeView:hover-selection ##### -->
243 <!-- ##### ARG GtkTreeView:level-indentation ##### -->
248 <!-- ##### ARG GtkTreeView:model ##### -->
253 <!-- ##### ARG GtkTreeView:reorderable ##### -->
258 <!-- ##### ARG GtkTreeView:rubber-banding ##### -->
263 <!-- ##### ARG GtkTreeView:rules-hint ##### -->
268 <!-- ##### ARG GtkTreeView:search-column ##### -->
273 <!-- ##### ARG GtkTreeView:show-expanders ##### -->
278 <!-- ##### ARG GtkTreeView:vadjustment ##### -->
283 <!-- ##### ARG GtkTreeView:allow-rules ##### -->
288 <!-- ##### ARG GtkTreeView:even-row-color ##### -->
293 <!-- ##### ARG GtkTreeView:expander-size ##### -->
298 <!-- ##### ARG GtkTreeView:grid-line-pattern ##### -->
303 <!-- ##### ARG GtkTreeView:grid-line-width ##### -->
308 <!-- ##### ARG GtkTreeView:horizontal-separator ##### -->
313 <!-- ##### ARG GtkTreeView:indent-expanders ##### -->
318 <!-- ##### ARG GtkTreeView:odd-row-color ##### -->
323 <!-- ##### ARG GtkTreeView:row-ending-details ##### -->
328 <!-- ##### ARG GtkTreeView:tree-line-pattern ##### -->
333 <!-- ##### ARG GtkTreeView:tree-line-width ##### -->
338 <!-- ##### ARG GtkTreeView:vertical-separator ##### -->
343 <!-- ##### ENUM GtkTreeViewDropPosition ##### -->
345 An enum for determining where a dropped row goes.
348 @GTK_TREE_VIEW_DROP_BEFORE: dropped row is inserted before
349 @GTK_TREE_VIEW_DROP_AFTER: dropped row is inserted after
350 @GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: dropped row becomes a child or is inserted before
351 @GTK_TREE_VIEW_DROP_INTO_OR_AFTER: dropped row becomes a child or is inserted after
353 <!-- ##### STRUCT GtkTreeViewPrivate ##### -->
355 A private struct for internal use only. The definition of this
356 structure is not publically available.
360 <!-- ##### USER_FUNCTION GtkTreeViewColumnDropFunc ##### -->
362 Function type for determining whether @column can be dropped in a
363 particular spot (as determined by @prev_column and @next_column). In
364 left to right locales, @prev_column is on the left of the potential drop
365 spot, and @next_column is on the right. In right to left mode, this is
366 reversed. This function should return %TRUE if the spot is a valid drop
367 spot. Please note that returning %TRUE does not actually indicate that
368 the column drop was made, but is meant only to indicate a possible drop
372 @tree_view: A #GtkTreeView
373 @column: The #GtkTreeViewColumn being dragged
374 @prev_column: A #GtkTreeViewColumn on one side of @column
375 @next_column: A #GtkTreeViewColumn on the other side of @column
377 @Returns: %TRUE, if #column can be dropped in this spot
380 <!-- ##### USER_FUNCTION GtkTreeViewMappingFunc ##### -->
382 Function used for #gtk_tree_view_map_expanded_rows.
385 @tree_view: A #GtkTreeView
386 @path: The path that's expanded
387 @user_data: user data
390 <!-- ##### USER_FUNCTION GtkTreeViewSearchEqualFunc ##### -->
392 A function used for checking whether a row in @model matches
393 a search key string entered by the user. Note the return value
394 is reversed from what you would normally expect, though it
395 has some similarity to strcmp() returning 0 for equal strings.
398 @model: the #GtkTreeModel being searched
399 @column: the search column set by gtk_tree_view_set_search_column()
400 @key: the key string to compare with
401 @iter: a #GtkTreeIter pointing the row of @model that should be compared
403 @search_data: user data from gtk_tree_view_set_search_equal_func()
404 @Returns: %FALSE if the row matches, %TRUE otherwise.
407 <!-- ##### FUNCTION gtk_tree_view_new ##### -->
415 <!-- ##### FUNCTION gtk_tree_view_get_level_indentation ##### -->
424 <!-- ##### FUNCTION gtk_tree_view_get_show_expanders ##### -->
433 <!-- ##### FUNCTION gtk_tree_view_set_level_indentation ##### -->
442 <!-- ##### FUNCTION gtk_tree_view_set_show_expanders ##### -->
451 <!-- ##### FUNCTION gtk_tree_view_new_with_model ##### -->
460 <!-- ##### FUNCTION gtk_tree_view_get_model ##### -->
469 <!-- ##### FUNCTION gtk_tree_view_set_model ##### -->
478 <!-- ##### FUNCTION gtk_tree_view_get_selection ##### -->
487 <!-- ##### FUNCTION gtk_tree_view_get_hadjustment ##### -->
496 <!-- ##### FUNCTION gtk_tree_view_set_hadjustment ##### -->
505 <!-- ##### FUNCTION gtk_tree_view_get_vadjustment ##### -->
514 <!-- ##### FUNCTION gtk_tree_view_set_vadjustment ##### -->
523 <!-- ##### FUNCTION gtk_tree_view_get_headers_visible ##### -->
532 <!-- ##### FUNCTION gtk_tree_view_set_headers_visible ##### -->
541 <!-- ##### FUNCTION gtk_tree_view_columns_autosize ##### -->
549 <!-- ##### FUNCTION gtk_tree_view_get_headers_clickable ##### -->
558 <!-- ##### FUNCTION gtk_tree_view_set_headers_clickable ##### -->
567 <!-- ##### FUNCTION gtk_tree_view_set_rules_hint ##### -->
576 <!-- ##### FUNCTION gtk_tree_view_get_rules_hint ##### -->
585 <!-- ##### FUNCTION gtk_tree_view_append_column ##### -->
595 <!-- ##### FUNCTION gtk_tree_view_remove_column ##### -->
605 <!-- ##### FUNCTION gtk_tree_view_insert_column ##### -->
616 <!-- ##### FUNCTION gtk_tree_view_insert_column_with_attributes ##### -->
629 <!-- ##### FUNCTION gtk_tree_view_insert_column_with_data_func ##### -->
644 <!-- ##### FUNCTION gtk_tree_view_get_column ##### -->
654 <!-- ##### FUNCTION gtk_tree_view_get_columns ##### -->
663 <!-- ##### FUNCTION gtk_tree_view_move_column_after ##### -->
673 <!-- ##### FUNCTION gtk_tree_view_set_expander_column ##### -->
682 <!-- ##### FUNCTION gtk_tree_view_get_expander_column ##### -->
691 <!-- ##### FUNCTION gtk_tree_view_set_column_drag_function ##### -->
702 <!-- ##### FUNCTION gtk_tree_view_scroll_to_point ##### -->
712 <!-- ##### FUNCTION gtk_tree_view_scroll_to_cell ##### -->
725 <!-- ##### FUNCTION gtk_tree_view_set_cursor ##### -->
736 <!-- ##### FUNCTION gtk_tree_view_set_cursor_on_cell ##### -->
748 <!-- ##### FUNCTION gtk_tree_view_get_cursor ##### -->
758 <!-- ##### FUNCTION gtk_tree_view_row_activated ##### -->
768 <!-- ##### FUNCTION gtk_tree_view_expand_all ##### -->
776 <!-- ##### FUNCTION gtk_tree_view_collapse_all ##### -->
784 <!-- ##### FUNCTION gtk_tree_view_expand_to_path ##### -->
793 <!-- ##### FUNCTION gtk_tree_view_expand_row ##### -->
804 <!-- ##### FUNCTION gtk_tree_view_collapse_row ##### -->
814 <!-- ##### FUNCTION gtk_tree_view_map_expanded_rows ##### -->
824 <!-- ##### FUNCTION gtk_tree_view_row_expanded ##### -->
834 <!-- ##### FUNCTION gtk_tree_view_set_reorderable ##### -->
843 <!-- ##### FUNCTION gtk_tree_view_get_reorderable ##### -->
852 <!-- ##### FUNCTION gtk_tree_view_get_path_at_pos ##### -->
867 <!-- ##### FUNCTION gtk_tree_view_get_cell_area ##### -->
878 <!-- ##### FUNCTION gtk_tree_view_get_background_area ##### -->
889 <!-- ##### FUNCTION gtk_tree_view_get_visible_rect ##### -->
898 <!-- ##### FUNCTION gtk_tree_view_get_visible_range ##### -->
909 <!-- ##### FUNCTION gtk_tree_view_get_bin_window ##### -->
918 <!-- ##### FUNCTION gtk_tree_view_widget_to_tree_coords ##### -->
930 <!-- ##### FUNCTION gtk_tree_view_tree_to_widget_coords ##### -->
942 <!-- ##### FUNCTION gtk_tree_view_enable_model_drag_dest ##### -->
953 <!-- ##### FUNCTION gtk_tree_view_enable_model_drag_source ##### -->
965 <!-- ##### FUNCTION gtk_tree_view_unset_rows_drag_source ##### -->
973 <!-- ##### FUNCTION gtk_tree_view_unset_rows_drag_dest ##### -->
981 <!-- ##### FUNCTION gtk_tree_view_set_drag_dest_row ##### -->
991 <!-- ##### FUNCTION gtk_tree_view_get_drag_dest_row ##### -->
1001 <!-- ##### FUNCTION gtk_tree_view_get_dest_row_at_pos ##### -->
1014 <!-- ##### FUNCTION gtk_tree_view_create_row_drag_icon ##### -->
1024 <!-- ##### FUNCTION gtk_tree_view_set_enable_search ##### -->
1033 <!-- ##### FUNCTION gtk_tree_view_get_enable_search ##### -->
1042 <!-- ##### FUNCTION gtk_tree_view_get_search_column ##### -->
1051 <!-- ##### FUNCTION gtk_tree_view_set_search_column ##### -->
1060 <!-- ##### FUNCTION gtk_tree_view_get_search_equal_func ##### -->
1069 <!-- ##### FUNCTION gtk_tree_view_set_search_equal_func ##### -->
1080 <!-- ##### FUNCTION gtk_tree_view_get_search_entry ##### -->
1089 <!-- ##### FUNCTION gtk_tree_view_set_search_entry ##### -->
1098 <!-- ##### USER_FUNCTION GtkTreeViewSearchPositionFunc ##### -->
1108 <!-- ##### FUNCTION gtk_tree_view_get_search_position_func ##### -->
1117 <!-- ##### FUNCTION gtk_tree_view_set_search_position_func ##### -->
1128 <!-- ##### FUNCTION gtk_tree_view_get_fixed_height_mode ##### -->
1137 <!-- ##### FUNCTION gtk_tree_view_set_fixed_height_mode ##### -->
1146 <!-- ##### FUNCTION gtk_tree_view_get_hover_selection ##### -->
1155 <!-- ##### FUNCTION gtk_tree_view_set_hover_selection ##### -->
1164 <!-- ##### FUNCTION gtk_tree_view_get_hover_expand ##### -->
1173 <!-- ##### FUNCTION gtk_tree_view_set_hover_expand ##### -->
1182 <!-- ##### USER_FUNCTION GtkTreeDestroyCountFunc ##### -->
1193 <!-- ##### FUNCTION gtk_tree_view_set_destroy_count_func ##### -->
1204 <!-- ##### USER_FUNCTION GtkTreeViewRowSeparatorFunc ##### -->
1206 Function type for determining whether the row pointed to by @iter should
1207 be rendered as a separator. A common way to implement this is to have a
1208 boolean column in the model, whose values the #GtkTreeViewRowSeparatorFunc
1212 @model: the #GtkTreeModel
1213 @iter: a #GtkTreeIter pointing at a row in @model
1215 @Returns: %TRUE if the row is a separator
1218 <!-- ##### FUNCTION gtk_tree_view_get_row_separator_func ##### -->
1227 <!-- ##### FUNCTION gtk_tree_view_set_row_separator_func ##### -->
1238 <!-- ##### FUNCTION gtk_tree_view_get_rubber_banding ##### -->
1247 <!-- ##### FUNCTION gtk_tree_view_set_rubber_banding ##### -->
1256 <!-- ##### FUNCTION gtk_tree_view_get_enable_tree_lines ##### -->
1265 <!-- ##### FUNCTION gtk_tree_view_set_enable_tree_lines ##### -->
1274 <!-- ##### ENUM GtkTreeViewGridLines ##### -->
1279 @GTK_TREE_VIEW_GRID_LINES_NONE:
1280 @GTK_TREE_VIEW_GRID_LINES_HORIZONTAL:
1281 @GTK_TREE_VIEW_GRID_LINES_VERTICAL:
1282 @GTK_TREE_VIEW_GRID_LINES_BOTH:
1284 <!-- ##### FUNCTION gtk_tree_view_get_grid_lines ##### -->
1293 <!-- ##### FUNCTION gtk_tree_view_set_grid_lines ##### -->