GtkTreeView

GtkTreeView — A widget for displaying both trees and lists.

Synopsis


#include <gtk/gtk.h>


struct      GtkTreeView;
enum        GtkTreeViewDropPosition;
struct      GtkTreeViewPrivate;
gboolean    (*GtkTreeViewColumnDropFunc)    (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column,
                                             GtkTreeViewColumn *prev_column,
                                             GtkTreeViewColumn *next_column,
                                             gpointer data);
void        (*GtkTreeViewMappingFunc)       (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             gpointer user_data);
gboolean    (*GtkTreeViewSearchEqualFunc)   (GtkTreeModel *model,
                                             gint column,
                                             const gchar *key,
                                             GtkTreeIter *iter,
                                             gpointer search_data);
GtkWidget*  gtk_tree_view_new               (void);
GtkWidget*  gtk_tree_view_new_with_model    (GtkTreeModel *model);
GtkTreeModel* gtk_tree_view_get_model       (GtkTreeView *tree_view);
void        gtk_tree_view_set_model         (GtkTreeView *tree_view,
                                             GtkTreeModel *model);
GtkTreeSelection* gtk_tree_view_get_selection
                                            (GtkTreeView *tree_view);
GtkAdjustment* gtk_tree_view_get_hadjustment
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_set_hadjustment   (GtkTreeView *tree_view,
                                             GtkAdjustment *adjustment);
GtkAdjustment* gtk_tree_view_get_vadjustment
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_set_vadjustment   (GtkTreeView *tree_view,
                                             GtkAdjustment *adjustment);
gboolean    gtk_tree_view_get_headers_visible
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_set_headers_visible
                                            (GtkTreeView *tree_view,
                                             gboolean headers_visible);
void        gtk_tree_view_columns_autosize  (GtkTreeView *tree_view);
void        gtk_tree_view_set_headers_clickable
                                            (GtkTreeView *tree_view,
                                             gboolean setting);
void        gtk_tree_view_set_rules_hint    (GtkTreeView *tree_view,
                                             gboolean setting);
gboolean    gtk_tree_view_get_rules_hint    (GtkTreeView *tree_view);
gint        gtk_tree_view_append_column     (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column);
gint        gtk_tree_view_remove_column     (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column);
gint        gtk_tree_view_insert_column     (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column,
                                             gint position);
gint        gtk_tree_view_insert_column_with_attributes
                                            (GtkTreeView *tree_view,
                                             gint position,
                                             const gchar *title,
                                             GtkCellRenderer *cell,
                                             ...);
gint        gtk_tree_view_insert_column_with_data_func
                                            (GtkTreeView *tree_view,
                                             gint position,
                                             const gchar *title,
                                             GtkCellRenderer *cell,
                                             GtkTreeCellDataFunc func,
                                             gpointer data,
                                             GDestroyNotify dnotify);
GtkTreeViewColumn* gtk_tree_view_get_column (GtkTreeView *tree_view,
                                             gint n);
GList*      gtk_tree_view_get_columns       (GtkTreeView *tree_view);
void        gtk_tree_view_move_column_after (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column,
                                             GtkTreeViewColumn *base_column);
void        gtk_tree_view_set_expander_column
                                            (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column);
GtkTreeViewColumn* gtk_tree_view_get_expander_column
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_set_column_drag_function
                                            (GtkTreeView *tree_view,
                                             GtkTreeViewColumnDropFunc func,
                                             gpointer user_data,
                                             GtkDestroyNotify destroy);
void        gtk_tree_view_scroll_to_point   (GtkTreeView *tree_view,
                                             gint tree_x,
                                             gint tree_y);
void        gtk_tree_view_scroll_to_cell    (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column,
                                             gboolean use_align,
                                             gfloat row_align,
                                             gfloat col_align);
void        gtk_tree_view_set_cursor        (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *focus_column,
                                             gboolean start_editing);
void        gtk_tree_view_set_cursor_on_cell
                                            (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *focus_column,
                                             GtkCellRenderer *focus_cell,
                                             gboolean start_editing);
void        gtk_tree_view_get_cursor        (GtkTreeView *tree_view,
                                             GtkTreePath **path,
                                             GtkTreeViewColumn **focus_column);
void        gtk_tree_view_row_activated     (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column);
void        gtk_tree_view_expand_all        (GtkTreeView *tree_view);
void        gtk_tree_view_collapse_all      (GtkTreeView *tree_view);
void        gtk_tree_view_expand_to_path    (GtkTreeView *tree_view,
                                             GtkTreePath *path);
gboolean    gtk_tree_view_expand_row        (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             gboolean open_all);
gboolean    gtk_tree_view_collapse_row      (GtkTreeView *tree_view,
                                             GtkTreePath *path);
void        gtk_tree_view_map_expanded_rows (GtkTreeView *tree_view,
                                             GtkTreeViewMappingFunc func,
                                             gpointer data);
gboolean    gtk_tree_view_row_expanded      (GtkTreeView *tree_view,
                                             GtkTreePath *path);
void        gtk_tree_view_set_reorderable   (GtkTreeView *tree_view,
                                             gboolean reorderable);
gboolean    gtk_tree_view_get_reorderable   (GtkTreeView *tree_view);
gboolean    gtk_tree_view_get_path_at_pos   (GtkTreeView *tree_view,
                                             gint x,
                                             gint y,
                                             GtkTreePath **path,
                                             GtkTreeViewColumn **column,
                                             gint *cell_x,
                                             gint *cell_y);
void        gtk_tree_view_get_cell_area     (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column,
                                             GdkRectangle *rect);
void        gtk_tree_view_get_background_area
                                            (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column,
                                             GdkRectangle *rect);
void        gtk_tree_view_get_visible_rect  (GtkTreeView *tree_view,
                                             GdkRectangle *visible_rect);
GdkWindow*  gtk_tree_view_get_bin_window    (GtkTreeView *tree_view);
void        gtk_tree_view_widget_to_tree_coords
                                            (GtkTreeView *tree_view,
                                             gint wx,
                                             gint wy,
                                             gint *tx,
                                             gint *ty);
void        gtk_tree_view_tree_to_widget_coords
                                            (GtkTreeView *tree_view,
                                             gint tx,
                                             gint ty,
                                             gint *wx,
                                             gint *wy);
void        gtk_tree_view_enable_model_drag_dest
                                            (GtkTreeView *tree_view,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);
void        gtk_tree_view_enable_model_drag_source
                                            (GtkTreeView *tree_view,
                                             GdkModifierType start_button_mask,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);
void        gtk_tree_view_unset_rows_drag_source
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_unset_rows_drag_dest
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_set_drag_dest_row (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewDropPosition pos);
void        gtk_tree_view_get_drag_dest_row (GtkTreeView *tree_view,
                                             GtkTreePath **path,
                                             GtkTreeViewDropPosition *pos);
gboolean    gtk_tree_view_get_dest_row_at_pos
                                            (GtkTreeView *tree_view,
                                             gint drag_x,
                                             gint drag_y,
                                             GtkTreePath **path,
                                             GtkTreeViewDropPosition *pos);
GdkPixmap*  gtk_tree_view_create_row_drag_icon
                                            (GtkTreeView *tree_view,
                                             GtkTreePath *path);
void        gtk_tree_view_set_enable_search (GtkTreeView *tree_view,
                                             gboolean enable_search);
gboolean    gtk_tree_view_get_enable_search (GtkTreeView *tree_view);
gint        gtk_tree_view_get_search_column (GtkTreeView *tree_view);
void        gtk_tree_view_set_search_column (GtkTreeView *tree_view,
                                             gint column);
GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func
                                            (GtkTreeView *tree_view);
void        gtk_tree_view_set_search_equal_func
                                            (GtkTreeView *tree_view,
                                             GtkTreeViewSearchEqualFunc search_equal_func,
                                             gpointer search_user_data,
                                             GtkDestroyNotify search_destroy);
void        (*GtkTreeDestroyCountFunc)      (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             gint children,
                                             gpointer user_data);
void        gtk_tree_view_set_destroy_count_func
                                            (GtkTreeView *tree_view,
                                             GtkTreeDestroyCountFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);


Object Hierarchy


  GObject
   +----GtkObject
         +----GtkWidget
               +----GtkContainer
                     +----GtkTreeView

Implemented Interfaces

GtkTreeView implements AtkImplementorIface.

Properties


  "enable-search"        gboolean             : Read / Write
  "expander-column"      GtkTreeViewColumn    : Read / Write
  "hadjustment"          GtkAdjustment        : Read / Write
  "headers-clickable"    gboolean             : Write
  "headers-visible"      gboolean             : Read / Write
  "model"                GtkTreeModel         : Read / Write
  "reorderable"          gboolean             : Read / Write
  "rules-hint"           gboolean             : Read / Write
  "search-column"        gint                 : Read / Write
  "vadjustment"          GtkAdjustment        : Read / Write

Style Properties


  "allow-rules"          gboolean             : Read
  "even-row-color"       GdkColor             : Read
  "expander-size"        gint                 : Read
  "horizontal-separator" gint                 : Read
  "indent-expanders"     gboolean             : Read
  "odd-row-color"        GdkColor             : Read
  "vertical-separator"   gint                 : Read

Signal Prototypes


"columns-changed"
            void        user_function      (GtkTreeView *treeview,
                                            gpointer user_data);
"cursor-changed"
            void        user_function      (GtkTreeView *treeview,
                                            gpointer user_data);
"expand-collapse-cursor-row"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gboolean arg1,
                                            gboolean arg2,
                                            gboolean arg3,
                                            gpointer user_data);
"move-cursor"
            gboolean    user_function      (GtkTreeView *treeview,
                                            GtkMovementStep arg1,
                                            gint arg2,
                                            gpointer user_data);
"row-activated"
            void        user_function      (GtkTreeView *treeview,
                                            GtkTreePath *arg1,
                                            GtkTreeViewColumn *arg2,
                                            gpointer user_data);
"row-collapsed"
            void        user_function      (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);
"row-expanded"
            void        user_function      (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);
"select-all"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gpointer user_data);
"select-cursor-parent"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gpointer user_data);
"select-cursor-row"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gboolean arg1,
                                            gpointer user_data);
"set-scroll-adjustments"
            void        user_function      (GtkTreeView *treeview,
                                            GtkAdjustment *arg1,
                                            GtkAdjustment *arg2,
                                            gpointer user_data);
"start-interactive-search"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gpointer user_data);
"test-collapse-row"
            gboolean    user_function      (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);
"test-expand-row"
            gboolean    user_function      (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);
"toggle-cursor-row"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gpointer user_data);
"unselect-all"
            gboolean    user_function      (GtkTreeView *treeview,
                                            gpointer user_data);

Description

Widget that displays any object that implements the GtkTreeModel interface.

Details

struct GtkTreeView

struct GtkTreeView;


enum GtkTreeViewDropPosition

typedef enum
{
  /* drop before/after this row */
  GTK_TREE_VIEW_DROP_BEFORE,
  GTK_TREE_VIEW_DROP_AFTER,
  /* drop as a child of this row (with fallback to before or after
   * if into is not possible)
   */
  GTK_TREE_VIEW_DROP_INTO_OR_BEFORE,
  GTK_TREE_VIEW_DROP_INTO_OR_AFTER
} GtkTreeViewDropPosition;

An enum for determining where a dropped row goes.


struct GtkTreeViewPrivate

struct GtkTreeViewPrivate;

A private struct for internal use only. The definition of this structure is not publically available.


GtkTreeViewColumnDropFunc ()

gboolean    (*GtkTreeViewColumnDropFunc)    (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column,
                                             GtkTreeViewColumn *prev_column,
                                             GtkTreeViewColumn *next_column,
                                             gpointer data);

Function type for determining whether column can be dropped in a particular spot (as determined by prev_column and next_column). In left to right locales, prev_column is on the left of the potential drop spot, and next_column is on the right. In right to left mode, this is reversed. This function should return TRUE if the spot is a valid drop spot. Please note that returning TRUE does not actually indicate that the column drop was made, but is meant only to indicate a possible drop spot to the user.

tree_view :A GtkTreeView
column :The GtkTreeViewColumn being dragged
prev_column :A GtkTreeViewColumn on one side of column
next_column :A GtkTreeViewColumn on the other side of column
data :user data
Returns :TRUE, if column can be dropped in this spot

GtkTreeViewMappingFunc ()

void        (*GtkTreeViewMappingFunc)       (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             gpointer user_data);

Function used for gtk_tree_view_map_expanded_rows.

tree_view :A GtkTreeView
path :The path that's expanded
user_data :user data

GtkTreeViewSearchEqualFunc ()

gboolean    (*GtkTreeViewSearchEqualFunc)   (GtkTreeModel *model,
                                             gint column,
                                             const gchar *key,
                                             GtkTreeIter *iter,
                                             gpointer search_data);

model :
column :
key :
iter :
search_data :
Returns :

gtk_tree_view_new ()

GtkWidget*  gtk_tree_view_new               (void);

Creates a new GtkTreeView widget.

Returns : A newly created GtkTreeView widget.

gtk_tree_view_new_with_model ()

GtkWidget*  gtk_tree_view_new_with_model    (GtkTreeModel *model);

Creates a new GtkTreeView widget with the model initialized to model.

model : the model.
Returns : A newly created GtkTreeView widget.

gtk_tree_view_get_model ()

GtkTreeModel* gtk_tree_view_get_model       (GtkTreeView *tree_view);

Returns the model the the GtkTreeView is based on. Returns NULL if the model is unset.

tree_view : a GtkTreeView
Returns : A GtkTreeModel, or NULL if none is currently being used.

gtk_tree_view_set_model ()

void        gtk_tree_view_set_model         (GtkTreeView *tree_view,
                                             GtkTreeModel *model);

Sets the model for a GtkTreeView. If the tree_view already has a model set, it will remove it before setting the new model. If model is NULL, then it will unset the old model.

tree_view : A GtkTreeNode.
model : The model.

gtk_tree_view_get_selection ()

GtkTreeSelection* gtk_tree_view_get_selection
                                            (GtkTreeView *tree_view);

Gets the GtkTreeSelection associated with tree_view.

tree_view : A GtkTreeView.
Returns : A GtkTreeSelection object.

gtk_tree_view_get_hadjustment ()

GtkAdjustment* gtk_tree_view_get_hadjustment
                                            (GtkTreeView *tree_view);

Gets the GtkAdjustment currently being used for the horizontal aspect.

tree_view : A GtkTreeView
Returns : A GtkAdjustment object, or NULL if none is currently being used.

gtk_tree_view_set_hadjustment ()

void        gtk_tree_view_set_hadjustment   (GtkTreeView *tree_view,
                                             GtkAdjustment *adjustment);

Sets the GtkAdjustment for the current horizontal aspect.

tree_view : A GtkTreeView
adjustment : The GtkAdjustment to set, or NULL

gtk_tree_view_get_vadjustment ()

GtkAdjustment* gtk_tree_view_get_vadjustment
                                            (GtkTreeView *tree_view);

Gets the GtkAdjustment currently being used for the vertical aspect.

tree_view : A GtkTreeView
Returns : A GtkAdjustment object, or NULL if none is currently being used.

gtk_tree_view_set_vadjustment ()

void        gtk_tree_view_set_vadjustment   (GtkTreeView *tree_view,
                                             GtkAdjustment *adjustment);

Sets the GtkAdjustment for the current vertical aspect.

tree_view : A GtkTreeView
adjustment : The GtkAdjustment to set, or NULL

gtk_tree_view_get_headers_visible ()

gboolean    gtk_tree_view_get_headers_visible
                                            (GtkTreeView *tree_view);

Returns TRUE if the headers on the tree_view are visible.

tree_view : A GtkTreeView.
Returns : Whether the headers are visible or not.

gtk_tree_view_set_headers_visible ()

void        gtk_tree_view_set_headers_visible
                                            (GtkTreeView *tree_view,
                                             gboolean headers_visible);

Sets the the visibility state of the headers.

tree_view : A GtkTreeView.
headers_visible : TRUE if the headers are visible

gtk_tree_view_columns_autosize ()

void        gtk_tree_view_columns_autosize  (GtkTreeView *tree_view);

Resizes all columns to their optimal width. Only works after the treeview has been realized.

tree_view : A GtkTreeView.

gtk_tree_view_set_headers_clickable ()

void        gtk_tree_view_set_headers_clickable
                                            (GtkTreeView *tree_view,
                                             gboolean setting);

Allow the column title buttons to be clicked.

tree_view : A GtkTreeView.
setting : TRUE if the columns are clickable.

gtk_tree_view_set_rules_hint ()

void        gtk_tree_view_set_rules_hint    (GtkTreeView *tree_view,
                                             gboolean setting);

This function tells GTK+ that the user interface for your application requires users to read across tree rows and associate cells with one another. By default, GTK+ will then render the tree with alternating row colors. Do not use it just because you prefer the appearance of the ruled tree; that's a question for the theme. Some themes will draw tree rows in alternating colors even when rules are turned off, and users who prefer that appearance all the time can choose those themes. You should call this function only as a semantic hint to the theme engine that your tree makes alternating colors useful from a functional standpoint (since it has lots of columns, generally).

tree_view : a GtkTreeView
setting : TRUE if the tree requires reading across rows

gtk_tree_view_get_rules_hint ()

gboolean    gtk_tree_view_get_rules_hint    (GtkTreeView *tree_view);

Gets the setting set by gtk_tree_view_set_rules_hint().

tree_view : a GtkTreeView
Returns : TRUE if rules are useful for the user of this tree

gtk_tree_view_append_column ()

gint        gtk_tree_view_append_column     (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column);

Appends column to the list of columns.

tree_view : A GtkTreeView.
column : The GtkTreeViewColumn to add.
Returns : The number of columns in tree_view after appending.

gtk_tree_view_remove_column ()

gint        gtk_tree_view_remove_column     (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column);

Removes column from tree_view.

tree_view : A GtkTreeView.
column : The GtkTreeViewColumn to remove.
Returns : The number of columns in tree_view after removing.

gtk_tree_view_insert_column ()

gint        gtk_tree_view_insert_column     (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column,
                                             gint position);

This inserts the column into the tree_view at position. If position is -1, then the column is inserted at the end.

tree_view : A GtkTreeView.
column : The GtkTreeViewColumn to be inserted.
position : The position to insert column in.
Returns : The number of columns in tree_view after insertion.

gtk_tree_view_insert_column_with_attributes ()

gint        gtk_tree_view_insert_column_with_attributes
                                            (GtkTreeView *tree_view,
                                             gint position,
                                             const gchar *title,
                                             GtkCellRenderer *cell,
                                             ...);

Creates a new GtkTreeViewColumn and inserts it into the tree_view at position. If position is -1, then the newly created column is inserted at the end. The column is initialized with the attributes given.

tree_view : A GtkTreeView
position : The position to insert the new column in.
title : The title to set the header to.
cell : The GtkCellRenderer.
... : A NULL-terminated list of attributes.
Returns : The number of columns in tree_view after insertion.

gtk_tree_view_insert_column_with_data_func ()

gint        gtk_tree_view_insert_column_with_data_func
                                            (GtkTreeView *tree_view,
                                             gint position,
                                             const gchar *title,
                                             GtkCellRenderer *cell,
                                             GtkTreeCellDataFunc func,
                                             gpointer data,
                                             GDestroyNotify dnotify);

Convenience function that inserts a new column into the GtkTreeView with the given cell renderer and a GtkCellDataFunc to set cell renderer attributes (normally using data from the model). See also gtk_tree_view_column_set_cell_data_func(), gtk_tree_view_column_pack_start().

tree_view : a GtkTreeView
position : Position to insert, -1 for append
title : column title
cell : cell renderer for column
func : function to set attributes of cell renderer
data : data for func
dnotify : destroy notifier for data
Returns : number of columns in the tree view post-insert

gtk_tree_view_get_column ()

GtkTreeViewColumn* gtk_tree_view_get_column (GtkTreeView *tree_view,
                                             gint n);

Gets the GtkTreeViewColumn at the given position in the tree_view.

tree_view : A GtkTreeView.
n : The position of the column, counting from 0.
Returns : The GtkTreeViewColumn, or NULL if the position is outside the range of columns.

gtk_tree_view_get_columns ()

GList*      gtk_tree_view_get_columns       (GtkTreeView *tree_view);

Returns a GList of all the GtkTreeViewColumn s currently in tree_view. The returned list must be freed with g_list_free().

tree_view : A GtkTreeView
Returns : A list of GtkTreeViewColumn s

gtk_tree_view_move_column_after ()

void        gtk_tree_view_move_column_after (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column,
                                             GtkTreeViewColumn *base_column);

Moves column to be after to base_column. If base_column is NULL, then column is placed in the first position.

tree_view : A GtkTreeView
column : The GtkTreeViewColumn to be moved.
base_column : The GtkTreeViewColumn to be moved relative to, or NULL.

gtk_tree_view_set_expander_column ()

void        gtk_tree_view_set_expander_column
                                            (GtkTreeView *tree_view,
                                             GtkTreeViewColumn *column);

Sets the column to draw the expander arrow at. It must be in tree_view. If column is NULL, then the expander arrow is always at the first visible column.

tree_view : A GtkTreeView
column : NULL, or the column to draw the expander arrow at.

gtk_tree_view_get_expander_column ()

GtkTreeViewColumn* gtk_tree_view_get_expander_column
                                            (GtkTreeView *tree_view);

Returns the column that is the current expander column. This column has the expander arrow drawn next to it.

tree_view : A GtkTreeView
Returns : The expander column.

gtk_tree_view_set_column_drag_function ()

void        gtk_tree_view_set_column_drag_function
                                            (GtkTreeView *tree_view,
                                             GtkTreeViewColumnDropFunc func,
                                             gpointer user_data,
                                             GtkDestroyNotify destroy);

Sets a user function for determining where a column may be dropped when dragged. This function is called on every column pair in turn at the beginning of a column drag to determine where a drop can take place. The arguments passed to func are: the tree_view, the GtkTreeViewColumn being dragged, the two GtkTreeViewColumn s determining the drop spot, and user_data. If either of the GtkTreeViewColumn arguments for the drop spot are NULL, then they indicate an edge. If func is set to be NULL, then tree_view reverts to the default behavior of allowing all columns to be dropped everywhere.

tree_view : A GtkTreeView.
func : A function to determine which columns are reorderable, or NULL.
user_data : User data to be passed to func, or NULL
destroy : Destroy notifier for user_data, or NULL

gtk_tree_view_scroll_to_point ()

void        gtk_tree_view_scroll_to_point   (GtkTreeView *tree_view,
                                             gint tree_x,
                                             gint tree_y);

Scrolls the tree view such that the top-left corner of the visible area is tree_x, tree_y, where tree_x and tree_y are specified in tree window coordinates. The tree_view must be realized before this function is called. If it isn't, you probably want to be using gtk_tree_view_scroll_to_cell().

If either tree_x or tree_y are -1, then that direction isn't scrolled.

tree_view : a GtkTreeView
tree_x : X coordinate of new top-left pixel of visible area, or -1
tree_y : Y coordinate of new top-left pixel of visible area, or -1

gtk_tree_view_scroll_to_cell ()

void        gtk_tree_view_scroll_to_cell    (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column,
                                             gboolean use_align,
                                             gfloat row_align,
                                             gfloat col_align);

Moves the alignments of tree_view to the position specified by column and path. If column is NULL, then no horizontal scrolling occurs. Likewise, if path is NULL no vertical scrolling occurs. At a minimum, one of column or path need to be non-NULL. row_align determines where the row is placed, and col_align determines where column is placed. Both are expected to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means center.

If use_align is FALSE, then the alignment arguments are ignored, and the tree does the minimum amount of work to scroll the cell onto the screen. This means that the cell will be scrolled to the edge closest to it's current position. If the cell is currently visible on the screen, nothing is done.

This function only works if the model is set, and path is a valid row on the model. If the model changes before the tree_view is realized, the centered path will be modified to reflect this change.

tree_view : A GtkTreeView.
path : The path of the row to move to, or NULL.
column : The GtkTreeViewColumn to move horizontally to, or NULL.
use_align : whether to use alignment arguments, or FALSE.
row_align : The vertical alignment of the row specified by path.
col_align : The horizontal alignment of the column specified by column.

gtk_tree_view_set_cursor ()

void        gtk_tree_view_set_cursor        (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *focus_column,
                                             gboolean start_editing);

Sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user's attention on a particular row. If focus_column is not NULL, then focus is given to the column specified by it. Additionally, if focus_column is specified, and start_editing is TRUE, then editing should be started in the specified cell. This function is often followed by gtk_widget_grab_focus (tree_view) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

tree_view : A GtkTreeView
path : A GtkTreePath
focus_column : A GtkTreeViewColumn, or NULL
start_editing : TRUE if the specified cell should start being edited.

gtk_tree_view_set_cursor_on_cell ()

void        gtk_tree_view_set_cursor_on_cell
                                            (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *focus_column,
                                             GtkCellRenderer *focus_cell,
                                             gboolean start_editing);

Sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user's attention on a particular row. If focus_column is not NULL, then focus is given to the column specified by it. If focus_column and focus_cell are not NULL, and focus_column contains 2 or more editable or activatable cells, then focus is given to the cell specified by focus_cell. Additionally, if focus_column is specified, and start_editing is TRUE, then editing should be started in the specified cell. This function is often followed by gtk_widget_grab_focus (tree_view) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

tree_view : A GtkTreeView
path : A GtkTreePath
focus_column : A GtkTreeViewColumn, or NULL
focus_cell : A GtkCellRenderer, or NULL
start_editing : TRUE if the specified cell should start being edited.

Since 2.2


gtk_tree_view_get_cursor ()

void        gtk_tree_view_get_cursor        (GtkTreeView *tree_view,
                                             GtkTreePath **path,
                                             GtkTreeViewColumn **focus_column);

Fills in path and focus_column with the current path and focus column. If the cursor isn't currently set, then *path will be NULL. If no column currently has focus, then *focus_column will be NULL.

tree_view : A GtkTreeView
path : A pointer to be filled with the current cursor path, or NULL
focus_column : A pointer to be filled with the current focus column, or NULL

gtk_tree_view_row_activated ()

void        gtk_tree_view_row_activated     (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column);

Activates the cell determined by path and column.

tree_view : A GtkTreeView
path : The GtkTreePath to be activated.
column : The GtkTreeViewColumn to be activated.

gtk_tree_view_expand_all ()

void        gtk_tree_view_expand_all        (GtkTreeView *tree_view);

Recursively expands all nodes in the tree_view.

tree_view : A GtkTreeView.

gtk_tree_view_collapse_all ()

void        gtk_tree_view_collapse_all      (GtkTreeView *tree_view);

Recursively collapses all visible, expanded nodes in tree_view.

tree_view : A GtkTreeView.

gtk_tree_view_expand_to_path ()

void        gtk_tree_view_expand_to_path    (GtkTreeView *tree_view,
                                             GtkTreePath *path);

Expands the row at path. This will also expand all parent rows of path as necessary.

tree_view : A GtkTreeView.
path : path to a row.

Since 2.2


gtk_tree_view_expand_row ()

gboolean    gtk_tree_view_expand_row        (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             gboolean open_all);

Opens the row so its children are visible.

tree_view : a GtkTreeView
path : path to a row
open_all : whether to recursively expand, or just expand immediate children
Returns : TRUE if the row existed and had children

gtk_tree_view_collapse_row ()

gboolean    gtk_tree_view_collapse_row      (GtkTreeView *tree_view,
                                             GtkTreePath *path);

Collapses a row (hides its child rows, if they exist).

tree_view : a GtkTreeView
path : path to a row in the tree_view
Returns : TRUE if the row was collapsed.

gtk_tree_view_map_expanded_rows ()

void        gtk_tree_view_map_expanded_rows (GtkTreeView *tree_view,
                                             GtkTreeViewMappingFunc func,
                                             gpointer data);

Calls func on all expanded rows.

tree_view : A GtkTreeView
func : A function to be called
data : User data to be passed to the function.

gtk_tree_view_row_expanded ()

gboolean    gtk_tree_view_row_expanded      (GtkTreeView *tree_view,
                                             GtkTreePath *path);

Returns TRUE if the node pointed to by path is expanded in tree_view.

tree_view : A GtkTreeView.
path : A GtkTreePath to test expansion state.
Returns : TRUE if path is expanded.

gtk_tree_view_set_reorderable ()

void        gtk_tree_view_set_reorderable   (GtkTreeView *tree_view,
                                             gboolean reorderable);

This function is a convenience function to allow you to reorder models that support the GtkDragSourceIface and the GtkDragDestIface. Both GtkTreeStore and GtkListStore support these. If reorderable is TRUE, then the user can reorder the model by dragging and dropping rows. The developer can listen to these changes by connecting to the model's signals.

This function does not give you any degree of control over the order -- any reorderering is allowed. If more control is needed, you should probably handle drag and drop manually.

tree_view : A GtkTreeView.
reorderable : TRUE, if the tree can be reordered.

gtk_tree_view_get_reorderable ()

gboolean    gtk_tree_view_get_reorderable   (GtkTreeView *tree_view);

Retrieves whether the user can reorder the tree via drag-and-drop. See gtk_tree_view_set_reorderable().

tree_view : a GtkTreeView
Returns : TRUE if the tree can be reordered.

gtk_tree_view_get_path_at_pos ()

gboolean    gtk_tree_view_get_path_at_pos   (GtkTreeView *tree_view,
                                             gint x,
                                             gint y,
                                             GtkTreePath **path,
                                             GtkTreeViewColumn **column,
                                             gint *cell_x,
                                             gint *cell_y);

Finds the path at the point (x, y), relative to widget coordinates. That is, x and y are relative to an events coordinates. x and y must come from an event on the tree_view only where event->window == gtk_tree_view_get_bin(). It is primarily for things like popup menus. If path is non-NULL, then it will be filled with the GtkTreePath at that point. This path should be freed with gtk_tree_path_free(). If column is non-NULL, then it will be filled with the column at that point. cell_x and cell_y return the coordinates relative to the cell background (i.e. the background_area passed to gtk_cell_renderer_render()). This function is only meaningful if tree_view is realized.

tree_view : A GtkTreeView.
x : The x position to be identified.
y : The y position to be identified.
path : A pointer to a GtkTreePath pointer to be filled in, or NULL
column : A pointer to a GtkTreeViewColumn pointer to be filled in, or NULL
cell_x : A pointer where the X coordinate relative to the cell can be placed, or NULL
cell_y : A pointer where the Y coordinate relative to the cell can be placed, or NULL
Returns : TRUE if a row exists at that coordinate.

gtk_tree_view_get_cell_area ()

void        gtk_tree_view_get_cell_area     (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column,
                                             GdkRectangle *rect);

Fills the bounding rectangle in tree window coordinates for the cell at the row specified by path and the column specified by column. If path is NULL, or points to a path not currently displayed, the y and height fields of the rectangle will be filled with 0. If column is NULL, the x and width fields will be filled with 0. The sum of all cell rects does not cover the entire tree; there are extra pixels in between rows, for example. The returned rectangle is equivalent to the cell_area passed to gtk_cell_renderer_render(). This function is only valid if tree_view is realized.

tree_view : a GtkTreeView
path : a GtkTreePath for the row, or NULL to get only horizontal coordinates
column : a GtkTreeViewColumn for the column, or NULL to get only vertical coordiantes
rect : rectangle to fill with cell rect

gtk_tree_view_get_background_area ()

void        gtk_tree_view_get_background_area
                                            (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewColumn *column,
                                             GdkRectangle *rect);

Fills the bounding rectangle in tree window coordinates for the cell at the row specified by path and the column specified by column. If path is NULL, or points to a node not found in the tree, the y and height fields of the rectangle will be filled with 0. If column is NULL, the x and width fields will be filled with 0. The returned rectangle is equivalent to the background_area passed to gtk_cell_renderer_render(). These background areas tile to cover the entire tree window (except for the area used for header buttons). Contrast with the cell_area, returned by gtk_tree_view_get_cell_area(), which returns only the cell itself, excluding surrounding borders and the tree expander area.

tree_view : a GtkTreeView
path : a GtkTreePath for the row, or NULL to get only horizontal coordinates
column : a GtkTreeViewColumn for the column, or NULL to get only vertical coordiantes
rect : rectangle to fill with cell background rect

gtk_tree_view_get_visible_rect ()

void        gtk_tree_view_get_visible_rect  (GtkTreeView *tree_view,
                                             GdkRectangle *visible_rect);

Fills visible_rect with the currently-visible region of the buffer, in tree coordinates. Convert to widget coordinates with gtk_tree_view_tree_to_widget_coords(). Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire scrollable area of the tree.

tree_view : a GtkTreeView
visible_rect : rectangle to fill

gtk_tree_view_get_bin_window ()

GdkWindow*  gtk_tree_view_get_bin_window    (GtkTreeView *tree_view);

Returns the window that tree_view renders to. This is used primarily to compare to event->window to confirm that the event on tree_view is on the right window.

tree_view : A GtkTreeView
Returns : A GdkWindow, or NULL when tree_view hasn't been realized yet

gtk_tree_view_widget_to_tree_coords ()

void        gtk_tree_view_widget_to_tree_coords
                                            (GtkTreeView *tree_view,
                                             gint wx,
                                             gint wy,
                                             gint *tx,
                                             gint *ty);

Converts widget coordinates to coordinates for the tree window (the full scrollable area of the tree).

tree_view : a GtkTreeView
wx : widget X coordinate
wy : widget Y coordinate
tx : return location for tree X coordinate
ty : return location for tree Y coordinate

gtk_tree_view_tree_to_widget_coords ()

void        gtk_tree_view_tree_to_widget_coords
                                            (GtkTreeView *tree_view,
                                             gint tx,
                                             gint ty,
                                             gint *wx,
                                             gint *wy);

Converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.

tree_view : a GtkTreeView
tx : tree X coordinate
ty : tree Y coordinate
wx : return location for widget X coordinate
wy : return location for widget Y coordinate

gtk_tree_view_enable_model_drag_dest ()

void        gtk_tree_view_enable_model_drag_dest
                                            (GtkTreeView *tree_view,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);

tree_view :
targets :
n_targets :
actions :

gtk_tree_view_enable_model_drag_source ()

void        gtk_tree_view_enable_model_drag_source
                                            (GtkTreeView *tree_view,
                                             GdkModifierType start_button_mask,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);

tree_view :
start_button_mask :
targets :
n_targets :
actions :

gtk_tree_view_unset_rows_drag_source ()

void        gtk_tree_view_unset_rows_drag_source
                                            (GtkTreeView *tree_view);

tree_view :

gtk_tree_view_unset_rows_drag_dest ()

void        gtk_tree_view_unset_rows_drag_dest
                                            (GtkTreeView *tree_view);

tree_view :

gtk_tree_view_set_drag_dest_row ()

void        gtk_tree_view_set_drag_dest_row (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             GtkTreeViewDropPosition pos);

tree_view :
path :
pos :

gtk_tree_view_get_drag_dest_row ()

void        gtk_tree_view_get_drag_dest_row (GtkTreeView *tree_view,
                                             GtkTreePath **path,
                                             GtkTreeViewDropPosition *pos);

tree_view :
path :
pos :

gtk_tree_view_get_dest_row_at_pos ()

gboolean    gtk_tree_view_get_dest_row_at_pos
                                            (GtkTreeView *tree_view,
                                             gint drag_x,
                                             gint drag_y,
                                             GtkTreePath **path,
                                             GtkTreeViewDropPosition *pos);

tree_view :
drag_x :
drag_y :
path :
pos :
Returns :

gtk_tree_view_create_row_drag_icon ()

GdkPixmap*  gtk_tree_view_create_row_drag_icon
                                            (GtkTreeView *tree_view,
                                             GtkTreePath *path);

Creates a GdkPixmap representation of the row at path. This image is used for a drag icon.

tree_view : a GtkTreeView
path : a GtkTreePath in tree_view
Returns : a newly-allocated pixmap of the drag icon.

gtk_tree_view_set_enable_search ()

void        gtk_tree_view_set_enable_search (GtkTreeView *tree_view,
                                             gboolean enable_search);

If enable_search is set, then the user can type in text to search through the tree interactively.

tree_view : A GtkTreeView
enable_search : TRUE, if the user can search interactively

gtk_tree_view_get_enable_search ()

gboolean    gtk_tree_view_get_enable_search (GtkTreeView *tree_view);

Returns whether or not the tree allows interactive searching.

tree_view : A GtkTreeView
Returns : whether or not to let the user search interactively

gtk_tree_view_get_search_column ()

gint        gtk_tree_view_get_search_column (GtkTreeView *tree_view);

Gets the column searched on by the interactive search code.

tree_view : A GtkTreeView
Returns : the column the interactive search code searches in.

gtk_tree_view_set_search_column ()

void        gtk_tree_view_set_search_column (GtkTreeView *tree_view,
                                             gint column);

Sets column as the column where the interactive search code should search in. Additionally, turns on interactive searching. Note that column refers to a column of the model.

tree_view : A GtkTreeView
column : the column of the model to search in

gtk_tree_view_get_search_equal_func ()

GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func
                                            (GtkTreeView *tree_view);

Returns the compare function currently in use.

tree_view : A GtkTreeView
Returns : the currently used compare function for the search code.

gtk_tree_view_set_search_equal_func ()

void        gtk_tree_view_set_search_equal_func
                                            (GtkTreeView *tree_view,
                                             GtkTreeViewSearchEqualFunc search_equal_func,
                                             gpointer search_user_data,
                                             GtkDestroyNotify search_destroy);

Sets the compare function for the interactive search capabilities.

tree_view : A GtkTreeView
search_equal_func : the compare function to use during the search
search_user_data : user data to pass to search_equal_func, or NULL
search_destroy : Destroy notifier for search_user_data, or NULL

GtkTreeDestroyCountFunc ()

void        (*GtkTreeDestroyCountFunc)      (GtkTreeView *tree_view,
                                             GtkTreePath *path,
                                             gint children,
                                             gpointer user_data);

tree_view :
path :
children :
user_data :

gtk_tree_view_set_destroy_count_func ()

void        gtk_tree_view_set_destroy_count_func
                                            (GtkTreeView *tree_view,
                                             GtkTreeDestroyCountFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);

This function should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.

tree_view : A GtkTreeView
func : Function to be called when a view row is destroyed, or NULL
data : User data to be passed to func, or NULL
destroy : Destroy notifier for data, or NULL

Properties

"enable-search" (gboolean : Read / Write)

"expander-column" (GtkTreeViewColumn : Read / Write)

"hadjustment" (GtkAdjustment : Read / Write)

"headers-clickable" (gboolean : Write)

"headers-visible" (gboolean : Read / Write)

"model" (GtkTreeModel : Read / Write)

"reorderable" (gboolean : Read / Write)

"rules-hint" (gboolean : Read / Write)

"search-column" (gint : Read / Write)

"vadjustment" (GtkAdjustment : Read / Write)

Style Properties

"allow-rules" (gboolean : Read)

"even-row-color" (GdkColor : Read)

"expander-size" (gint : Read)

"horizontal-separator" (gint : Read)

"indent-expanders" (gboolean : Read)

"odd-row-color" (GdkColor : Read)

"vertical-separator" (gint : Read)

Signals

The "columns-changed" signal

void        user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "cursor-changed" signal

void        user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "expand-collapse-cursor-row" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gboolean arg1,
                                            gboolean arg2,
                                            gboolean arg3,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
arg3 :
user_data :user data set when the signal handler was connected.
Returns :

The "move-cursor" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            GtkMovementStep arg1,
                                            gint arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.
Returns :

The "row-activated" signal

void        user_function                  (GtkTreeView *treeview,
                                            GtkTreePath *arg1,
                                            GtkTreeViewColumn *arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.

The "row-collapsed" signal

void        user_function                  (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.

The "row-expanded" signal

void        user_function                  (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.

The "select-all" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.
Returns :

The "select-cursor-parent" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.
Returns :

The "select-cursor-row" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gboolean arg1,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
user_data :user data set when the signal handler was connected.
Returns :

The "set-scroll-adjustments" signal

void        user_function                  (GtkTreeView *treeview,
                                            GtkAdjustment *arg1,
                                            GtkAdjustment *arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.

The "start-interactive-search" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.
Returns :

The "test-collapse-row" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.
Returns :

The "test-expand-row" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            GtkTreeIter *arg1,
                                            GtkTreePath *arg2,
                                            gpointer user_data);

treeview :the object which received the signal.
arg1 :
arg2 :
user_data :user data set when the signal handler was connected.
Returns :

The "toggle-cursor-row" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.
Returns :

The "unselect-all" signal

gboolean    user_function                  (GtkTreeView *treeview,
                                            gpointer user_data);

treeview :the object which received the signal.
user_data :user data set when the signal handler was connected.
Returns :

See Also

GtkTreeViewColumn, GtkTreeSelection, GtkTreeDnd, GtkTreeMode, GtkTreeSortable, GtkTreeModelSort, GtkListStore, GtkTreeStore, GtkCellRenderer, GtkCellEditable, GtkCellRendererPixbuf, GtkCellRendererText, GtkCellRendererToggle