Trait gtk4::prelude::TreeViewExt

source ·
pub trait TreeViewExt: 'static {
Show 129 methods fn append_column(&self, column: &TreeViewColumn) -> i32; fn collapse_all(&self); fn collapse_row(&self, path: &TreePath) -> bool; fn columns_autosize(&self); fn convert_bin_window_to_tree_coords(&self, bx: i32, by: i32) -> (i32, i32); fn convert_bin_window_to_widget_coords(&self, bx: i32, by: i32) -> (i32, i32); fn convert_tree_to_bin_window_coords(&self, tx: i32, ty: i32) -> (i32, i32); fn convert_tree_to_widget_coords(&self, tx: i32, ty: i32) -> (i32, i32); fn convert_widget_to_bin_window_coords(&self, wx: i32, wy: i32) -> (i32, i32); fn convert_widget_to_tree_coords(&self, wx: i32, wy: i32) -> (i32, i32); fn create_row_drag_icon(&self, path: &TreePath) -> Option<Paintable>; fn enable_model_drag_dest(
        &self,
        formats: &ContentFormats,
        actions: DragAction
    ); fn enable_model_drag_source(
        &self,
        start_button_mask: ModifierType,
        formats: &ContentFormats,
        actions: DragAction
    ); fn expand_all(&self); fn expand_row(&self, path: &TreePath, open_all: bool) -> bool; fn expand_to_path(&self, path: &TreePath); fn activates_on_single_click(&self) -> bool; fn background_area(
        &self,
        path: Option<&TreePath>,
        column: Option<&TreeViewColumn>
    ) -> Rectangle; fn cell_area(
        &self,
        path: Option<&TreePath>,
        column: Option<&TreeViewColumn>
    ) -> Rectangle; fn column(&self, n: i32) -> Option<TreeViewColumn>; fn columns(&self) -> Vec<TreeViewColumn>; fn cursor(&self) -> (Option<TreePath>, Option<TreeViewColumn>); fn dest_row_at_pos(
        &self,
        drag_x: i32,
        drag_y: i32
    ) -> Option<(Option<TreePath>, TreeViewDropPosition)>; fn drag_dest_row(&self) -> (Option<TreePath>, TreeViewDropPosition); fn enables_search(&self) -> bool; fn enables_tree_lines(&self) -> bool; fn expander_column(&self) -> Option<TreeViewColumn>; fn is_fixed_height_mode(&self) -> bool; fn grid_lines(&self) -> TreeViewGridLines; fn is_headers_clickable(&self) -> bool; fn is_headers_visible(&self) -> bool; fn hover_expands(&self) -> bool; fn is_hover_selection(&self) -> bool; fn level_indentation(&self) -> i32; fn model(&self) -> Option<TreeModel>; fn n_columns(&self) -> u32; fn path_at_pos(
        &self,
        x: i32,
        y: i32
    ) -> Option<(Option<TreePath>, Option<TreeViewColumn>, i32, i32)>; fn is_reorderable(&self) -> bool; fn is_rubber_banding(&self) -> bool; fn search_column(&self) -> i32; fn search_entry(&self) -> Option<Editable>; fn selection(&self) -> TreeSelection; fn shows_expanders(&self) -> bool; fn tooltip_column(&self) -> i32; fn tooltip_context(
        &self,
        x: i32,
        y: i32,
        keyboard_tip: bool
    ) -> Option<(Option<TreeModel>, TreePath, TreeIter)>; fn visible_range(&self) -> Option<(TreePath, TreePath)>; fn visible_rect(&self) -> Rectangle; fn insert_column(&self, column: &TreeViewColumn, position: i32) -> i32; fn insert_column_with_data_func<P: Fn(&TreeViewColumn, &CellRenderer, &TreeModel, &TreeIter) + 'static>(
        &self,
        position: i32,
        title: &str,
        cell: &impl IsA<CellRenderer>,
        func: P
    ) -> i32; fn is_blank_at_pos(
        &self,
        x: i32,
        y: i32
    ) -> Option<(Option<TreePath>, Option<TreeViewColumn>, i32, i32)>; fn is_rubber_banding_active(&self) -> bool; fn map_expanded_rows<P: FnMut(&TreeView, &TreePath)>(&self, func: P); fn move_column_after(
        &self,
        column: &TreeViewColumn,
        base_column: Option<&TreeViewColumn>
    ); fn remove_column(&self, column: &TreeViewColumn) -> i32; fn row_activated(&self, path: &TreePath, column: Option<&TreeViewColumn>); fn row_expanded(&self, path: &TreePath) -> bool; fn scroll_to_cell(
        &self,
        path: Option<&TreePath>,
        column: Option<&TreeViewColumn>,
        use_align: bool,
        row_align: f32,
        col_align: f32
    ); fn scroll_to_point(&self, tree_x: i32, tree_y: i32); fn set_activate_on_single_click(&self, single: bool); fn set_column_drag_function(
        &self,
        func: Option<Box_<dyn Fn(&TreeView, &TreeViewColumn, &TreeViewColumn, &TreeViewColumn) -> bool + 'static>>
    ); fn set_cursor(
        &self,
        path: &TreePath,
        focus_column: Option<&TreeViewColumn>,
        start_editing: bool
    ); fn set_cursor_on_cell(
        &self,
        path: &TreePath,
        focus_column: Option<&TreeViewColumn>,
        focus_cell: Option<&impl IsA<CellRenderer>>,
        start_editing: bool
    ); fn set_drag_dest_row(
        &self,
        path: Option<&TreePath>,
        pos: TreeViewDropPosition
    ); fn set_enable_search(&self, enable_search: bool); fn set_enable_tree_lines(&self, enabled: bool); fn set_expander_column(&self, column: Option<&TreeViewColumn>); fn set_fixed_height_mode(&self, enable: bool); fn set_grid_lines(&self, grid_lines: TreeViewGridLines); fn set_headers_clickable(&self, setting: bool); fn set_headers_visible(&self, headers_visible: bool); fn set_hover_expand(&self, expand: bool); fn set_hover_selection(&self, hover: bool); fn set_level_indentation(&self, indentation: i32); fn set_model(&self, model: Option<&impl IsA<TreeModel>>); fn set_reorderable(&self, reorderable: bool); fn set_row_separator_func<P: Fn(&TreeModel, &TreeIter) -> bool + 'static>(
        &self,
        func: P
    ); fn set_rubber_banding(&self, enable: bool); fn set_search_column(&self, column: i32); fn set_search_entry(&self, entry: Option<&impl IsA<Editable>>); fn set_search_equal_func<P: Fn(&TreeModel, i32, &str, &TreeIter) -> bool + 'static>(
        &self,
        search_equal_func: P
    ); fn set_show_expanders(&self, enabled: bool); fn set_tooltip_cell(
        &self,
        tooltip: &Tooltip,
        path: Option<&TreePath>,
        column: Option<&TreeViewColumn>,
        cell: Option<&impl IsA<CellRenderer>>
    ); fn set_tooltip_column(&self, column: i32); fn set_tooltip_row(&self, tooltip: &Tooltip, path: &TreePath); fn unset_rows_drag_dest(&self); fn unset_rows_drag_source(&self); fn enable_grid_lines(&self) -> TreeViewGridLines; fn set_enable_grid_lines(&self, enable_grid_lines: TreeViewGridLines); fn connect_columns_changed<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_cursor_changed<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_expand_collapse_cursor_row<F: Fn(&Self, bool, bool, bool) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_expand_collapse_cursor_row(
        &self,
        object: bool,
        p0: bool,
        p1: bool
    ) -> bool; fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_move_cursor(
        &self,
        step: MovementStep,
        direction: i32,
        extend: bool,
        modify: bool
    ) -> bool; fn connect_row_activated<F: Fn(&Self, &TreePath, Option<&TreeViewColumn>) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_row_activated(&self, path: &TreePath, column: Option<&TreeViewColumn>); fn connect_row_collapsed<F: Fn(&Self, &TreeIter, &TreePath) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_row_expanded<F: Fn(&Self, &TreeIter, &TreePath) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_select_all<F: Fn(&Self) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_select_all(&self) -> bool; fn connect_select_cursor_parent<F: Fn(&Self) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_select_cursor_parent(&self) -> bool; fn connect_select_cursor_row<F: Fn(&Self, bool) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_select_cursor_row(&self, object: bool) -> bool; fn connect_start_interactive_search<F: Fn(&Self) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_start_interactive_search(&self) -> bool; fn connect_test_collapse_row<F: Fn(&Self, &TreeIter, &TreePath) -> Inhibit + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_test_expand_row<F: Fn(&Self, &TreeIter, &TreePath) -> Inhibit + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_toggle_cursor_row<F: Fn(&Self) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_toggle_cursor_row(&self) -> bool; fn connect_unselect_all<F: Fn(&Self) -> bool + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn emit_unselect_all(&self) -> bool; fn connect_activate_on_single_click_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_enable_grid_lines_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_enable_search_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_enable_tree_lines_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_expander_column_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_fixed_height_mode_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_headers_clickable_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_headers_visible_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_hover_expand_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_hover_selection_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_level_indentation_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_model_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_reorderable_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_rubber_banding_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_search_column_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_show_expanders_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_tooltip_column_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
}
Expand description

Trait containing all TreeView methods.

Implementors

TreeView

Required Methods§

Appends @column to the list of columns. If @self has “fixed_height” mode enabled, then @column must have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated since 4.10

Use ListView or ColumnView instead

column

The TreeViewColumn to add.

Returns

The number of columns in @self after appending.

Recursively collapses all visible, expanded nodes in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

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

Deprecated since 4.10

Use ListView or ColumnView instead

path

path to a row in the @self

Returns

true if the row was collapsed.

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

Deprecated since 4.10

Use ListView or ColumnView instead

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

Deprecated since 4.10

Use ListView or ColumnView instead

bx

X coordinate relative to bin_window

by

Y coordinate relative to bin_window

Returns
tx

return location for tree X coordinate

ty

return location for tree Y coordinate

Converts bin_window coordinates to widget relative coordinates.

Deprecated since 4.10

Use ListView or ColumnView instead

bx

bin_window X coordinate

by

bin_window Y coordinate

Returns
wx

return location for widget X coordinate

wy

return location for widget Y coordinate

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

Deprecated since 4.10

Use ListView or ColumnView instead

tx

tree X coordinate

ty

tree Y coordinate

Returns
bx

return location for X coordinate relative to bin_window

by

return location for Y coordinate relative to bin_window

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

Deprecated since 4.10

Use ListView or ColumnView instead

tx

X coordinate relative to the tree

ty

Y coordinate relative to the tree

Returns
wx

return location for widget X coordinate

wy

return location for widget Y coordinate

Converts widget coordinates to coordinates for the bin_window.

Deprecated since 4.10

Use ListView or ColumnView instead

wx

X coordinate relative to the widget

wy

Y coordinate relative to the widget

Returns
bx

return location for bin_window X coordinate

by

return location for bin_window Y coordinate

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

Deprecated since 4.10

Use ListView or ColumnView instead

wx

X coordinate relative to the widget

wy

Y coordinate relative to the widget

Returns
tx

return location for tree X coordinate

ty

return location for tree Y coordinate

Creates a cairo::Surface representation of the row at @path. This image is used for a drag icon.

Deprecated since 4.10

Use ListView or ColumnView instead

path

a TreePath in @self

Returns

a newly-allocated surface of the drag icon.

Turns @self into a drop destination for automatic DND. Calling this method sets TreeView:reorderable to false.

Deprecated since 4.10

Use ListView or ColumnView instead

formats

the target formats that the drag will support

actions

the bitmask of possible actions for a drag from this widget

Turns @self into a drag source for automatic DND. Calling this method sets TreeView:reorderable to false.

Deprecated since 4.10

Use ListView or ColumnView instead

start_button_mask

Mask of allowed buttons to start drag

formats

the target formats that the drag will support

actions

the bitmask of possible actions for a drag from this widget

Recursively expands all nodes in the @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Opens the row so its children are visible.

Deprecated since 4.10

Use ListView or ColumnView instead

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

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

Deprecated since 4.10

Use ListView or ColumnView instead

path

path to a row.

Gets the setting set by gtk_tree_view_set_activate_on_single_click().

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if row-activated will be emitted on a single click

Fills the bounding rectangle in bin_window coordinates for the cell at the row specified by @path and the column specified by @column. If @path is None, 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 None, 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 bin window. 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.

Deprecated since 4.10

Use ListView or ColumnView instead

path

a TreePath for the row, or None to get only horizontal coordinates

column

a TreeViewColumn for the column, or None to get only vertical coordinates

Returns
rect

rectangle to fill with cell background rect

Fills the bounding rectangle in bin_window coordinates for the cell at the row specified by @path and the column specified by @column. If @path is None, or points to a path not currently displayed, the @y and @height fields of the rectangle will be filled with 0. If @column is None, 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 @self is realized.

Deprecated since 4.10

Use ListView or ColumnView instead

path

a TreePath for the row, or None to get only horizontal coordinates

column

a TreeViewColumn for the column, or None to get only vertical coordinates

Returns
rect

rectangle to fill with cell rect

Gets the TreeViewColumn at the given position in the #tree_view.

Deprecated since 4.10

Use ListView or ColumnView instead

n

The position of the column, counting from 0.

Returns

The TreeViewColumn, or None if the position is outside the range of columns.

Returns a GList of all the TreeViewColumns currently in @self. The returned list must be freed with g_list_free ().

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

A list of TreeViewColumns

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

The returned TreePath must be freed with gtk_tree_path_free() when you are done with it.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns
path

A pointer to be filled with the current cursor path

focus_column

A pointer to be filled with the current focus column

Determines the destination row for a given position. @drag_x and @drag_y are expected to be in widget coordinates. This function is only meaningful if @self is realized. Therefore this function will always return false if @self is not realized or does not have a model.

Deprecated since 4.10

Use ListView or ColumnView instead

drag_x

the position to determine the destination row for

drag_y

the position to determine the destination row for

Returns

whether there is a row at the given position, true if this is indeed the case.

path

Return location for the path of the highlighted row

pos

Return location for the drop position, or None

Gets information about the row that is highlighted for feedback.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns
path

Return location for the path of the highlighted row

pos

Return location for the drop position

Returns whether or not the tree allows to start interactive searching by typing in text.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

whether or not to let the user search interactively

Returns whether or not tree lines are drawn in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if tree lines are drawn in @self, false otherwise.

Returns the column that is the current expander column, or None if none has been set. This column has the expander arrow drawn next to it.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

The expander column.

Returns whether fixed height mode is turned on for @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if @self is in fixed height mode

Returns which grid lines are enabled in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

a TreeViewGridLines value indicating which grid lines are enabled.

Returns whether all header columns are clickable.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if all header columns are clickable, otherwise false

Returns true if the headers on the @self are visible.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

Whether the headers are visible or not.

Returns whether hover expansion mode is turned on for @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if @self is in hover expansion mode

Returns whether hover selection mode is turned on for @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if @self is in hover selection mode

Returns the amount, in pixels, of extra indentation for child levels in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

the amount of extra indentation for child levels in @self. A return value of 0 means that this feature is disabled.

Returns the model the TreeView is based on. Returns None if the model is unset.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

A TreeModel

Queries the number of columns in the given @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

The number of columns in the @self

Finds the path at the point (@x, @y), relative to bin_window coordinates. That is, @x and @y are relative to an events coordinates. Widget-relative coordinates must be converted using gtk_tree_view_convert_widget_to_bin_window_coords(). It is primarily for things like popup menus. If @path is non-None, then it will be filled with the TreePath at that point. This path should be freed with gtk_tree_path_free(). If @column is non-None, 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 @self is realized. Therefore this function will always return false if @self is not realized or does not have a model.

For converting widget coordinates (eg. the ones you get from GtkWidget::query-tooltip), please see gtk_tree_view_convert_widget_to_bin_window_coords().

Deprecated since 4.10

Use ListView or ColumnView instead

x

The x position to be identified (relative to bin_window).

y

The y position to be identified (relative to bin_window).

Returns

true if a row exists at that coordinate.

path

A pointer to a TreePath pointer to be filled in

column

A pointer to a TreeViewColumn pointer to be filled in

cell_x

A pointer where the X coordinate relative to the cell can be placed

cell_y

A pointer where the Y coordinate relative to the cell can be placed

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

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if the tree can be reordered.

Returns whether rubber banding is turned on for @self. If the selection mode is SelectionMode::Multiple, rubber banding will allow the user to select multiple rows by dragging the mouse.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if rubber banding in @self is enabled.

Gets the column searched on by the interactive search code.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

the column the interactive search code searches in.

source

fn search_entry(&self) -> Option<Editable>

Returns the Entry which is currently in use as interactive search entry for @self. In case the built-in entry is being used, None will be returned.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

the entry currently in use as search entry.

Gets the TreeSelection associated with @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

A TreeSelection object.

Returns whether or not expanders are drawn in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if expanders are drawn in @self, false otherwise.

Returns the column of @self’s model which is being used for displaying tooltips on @self’s rows.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

the index of the tooltip column that is currently being used, or -1 if this is disabled.

This function is supposed to be used in a ::query-tooltip signal handler for TreeView. The @x, @y and @keyboard_tip values which are received in the signal handler, should be passed to this function without modification.

The return value indicates whether there is a tree view row at the given coordinates (true) or not (false) for mouse tooltips. For keyboard tooltips the row returned will be the cursor row. When true, then any of @model, @path and @iter which have been provided will be set to point to that row and the corresponding model. @x and @y will always be converted to be relative to @self’s bin_window if @keyboard_tooltip is false.

Deprecated since 4.10

Use ListView or ColumnView instead

x

the x coordinate (relative to widget coordinates)

y

the y coordinate (relative to widget coordinates)

keyboard_tip

whether this is a keyboard tooltip or not

Returns

whether or not the given tooltip context points to a row

model

a pointer to receive a TreeModel

path

a pointer to receive a TreePath

iter

a pointer to receive a TreeIter

Sets @start_path and @end_path to be the first and last visible path. Note that there may be invisible paths in between.

The paths should be freed with gtk_tree_path_free() after use.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true, if valid paths were placed in @start_path and @end_path.

start_path

Return location for start of region

end_path

Return location for end of region

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

Deprecated since 4.10

Use ListView or ColumnView instead

Returns
visible_rect

rectangle to fill

This inserts the @column into the @self at @position. If @position is -1, then the column is inserted at the end. If @self has “fixed_height” mode enabled, then @column must have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated since 4.10

Use ListView or ColumnView instead

column

The TreeViewColumn to be inserted.

position

The position to insert @column in.

Returns

The number of columns in @self after insertion.

Convenience function that inserts a new column into the TreeView with the given cell renderer and a GtkTreeCellDataFunc 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(). If @self has “fixed_height” mode enabled, then the new column will have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated since 4.10

Use ListView or ColumnView instead

position

Position to insert, -1 for append

title

column title

cell

cell renderer for column

func

function to set attributes of cell renderer

Returns

number of columns in the tree view post-insert

Determine whether the point (@x, @y) in @self is blank, that is no cell content nor an expander arrow is drawn at the location. If so, the location can be considered as the background. You might wish to take special action on clicks on the background, such as clearing a current selection, having a custom context menu or starting rubber banding.

The @x and @y coordinate that are provided must be relative to bin_window coordinates. Widget-relative coordinates must be converted using gtk_tree_view_convert_widget_to_bin_window_coords().

For converting widget coordinates (eg. the ones you get from GtkWidget::query-tooltip), please see gtk_tree_view_convert_widget_to_bin_window_coords().

The @path, @column, @cell_x and @cell_y arguments will be filled in likewise as for gtk_tree_view_get_path_at_pos(). Please see gtk_tree_view_get_path_at_pos() for more information.

Deprecated since 4.10

Use ListView or ColumnView instead

x

The x position to be identified (relative to bin_window)

y

The y position to be identified (relative to bin_window)

Returns

true if the area at the given coordinates is blank, false otherwise.

path

A pointer to a TreePath pointer to be filled in

column

A pointer to a TreeViewColumn pointer to be filled in

cell_x

A pointer where the X coordinate relative to the cell can be placed

cell_y

A pointer where the Y coordinate relative to the cell can be placed

Returns whether a rubber banding operation is currently being done in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

Returns

true if a rubber banding operation is currently being done in @self.

Calls @func on all expanded rows.

Deprecated since 4.10

Use ListView or ColumnView instead

func

A function to be called

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

Deprecated since 4.10

Use ListView or ColumnView instead

column

The TreeViewColumn to be moved.

base_column

The TreeViewColumn to be moved relative to

Removes @column from @self.

Deprecated since 4.10

Use ListView or ColumnView instead

column

The TreeViewColumn to remove.

Returns

The number of columns in @self after removing.

Activates the cell determined by @path and @column.

Deprecated since 4.10

Use ListView or ColumnView instead

path

The TreePath to be activated.

column

The TreeViewColumn to be activated.

Returns true if the node pointed to by @path is expanded in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

path

A TreePath to test expansion state.

Returns

true if #path is expanded.

Moves the alignments of @self to the position specified by @column and @path. If @column is None, then no horizontal scrolling occurs. Likewise, if @path is None no vertical scrolling occurs. At a minimum, one of @column or @path need to be non-None. @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 its 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 @self is realized, the centered path will be modified to reflect this change.

Deprecated since 4.10

Use ListView or ColumnView instead

path

The path of the row to move to

column

The TreeViewColumn to move horizontally to

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.

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 coordinates. The @self 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.

Deprecated since 4.10

Use ListView or ColumnView instead

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

Cause the TreeView::row-activated signal to be emitted on a single click instead of a double click.

Deprecated since 4.10

Use ListView or ColumnView instead

single

true to emit row-activated on a single click

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 @self, the TreeViewColumn being dragged, the two TreeViewColumns determining the drop spot, and @user_data. If either of the TreeViewColumn arguments for the drop spot are None, then they indicate an edge. If @func is set to be None, then @self reverts to the default behavior of allowing all columns to be dropped everywhere.

Deprecated since 4.10

Use ListView or ColumnView instead

func

A function to determine which columns are reorderable

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 None, 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 (@self) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

If @path is invalid for @model, the current cursor (if any) will be unset and the function will return without failing.

Deprecated since 4.10

Use ListView or ColumnView instead

path

A TreePath

focus_column

A TreeViewColumn

start_editing

true if the specified cell should start being edited.

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 None, then focus is given to the column specified by it. If @focus_column and @focus_cell are not None, 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 (@self) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

If @path is invalid for @model, the current cursor (if any) will be unset and the function will return without failing.

Deprecated since 4.10

Use ListView or ColumnView instead

path

A TreePath

focus_column

A TreeViewColumn

focus_cell

A CellRenderer

start_editing

true if the specified cell should start being edited.

Sets the row that is highlighted for feedback. If @path is None, an existing highlight is removed.

Deprecated since 4.10

Use ListView or ColumnView instead

path

The path of the row to highlight

pos

Specifies whether to drop before, after or into the row

If @enable_search is set, then the user can type in text to search through the tree interactively (this is sometimes called “typeahead find”).

Note that even if this is false, the user can still initiate a search using the “start-interactive-search” key binding.

Deprecated since 4.10

Use ListView or ColumnView instead

true, if the user can search interactively

Sets whether to draw lines interconnecting the expanders in @self. This does not have any visible effects for lists.

Deprecated since 4.10

Use ListView or ColumnView instead

enabled

true to enable tree line drawing, false otherwise.

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

If you do not want expander arrow to appear in your tree, set the expander column to a hidden column.

Deprecated since 4.10

Use ListView or ColumnView instead

column

None, or the column to draw the expander arrow at.

Enables or disables the fixed height mode of @self. Fixed height mode speeds up TreeView by assuming that all rows have the same height. Only enable this option if all rows are the same height and all columns are of type TreeViewColumnSizing::Fixed.

Deprecated since 4.10

Use ListView or ColumnView instead

enable

true to enable fixed height mode

Sets which grid lines to draw in @self.

Deprecated since 4.10

Use ListView or ColumnView instead

grid_lines

a TreeViewGridLines value indicating which grid lines to enable.

Allow the column title buttons to be clicked.

Deprecated since 4.10

Use ListView or ColumnView instead

setting

true if the columns are clickable.

Sets the visibility state of the headers.

Deprecated since 4.10

Use ListView or ColumnView instead

headers_visible

true if the headers are visible

Enables or disables the hover expansion mode of @self. Hover expansion makes rows expand or collapse if the pointer moves over them.

Deprecated since 4.10

Use ListView or ColumnView instead

expand

true to enable hover selection mode

Enables or disables the hover selection mode of @self. Hover selection makes the selected row follow the pointer. Currently, this works only for the selection modes SelectionMode::Single and SelectionMode::Browse.

Deprecated since 4.10

Use ListView or ColumnView instead

hover

true to enable hover selection mode

Sets the amount of extra indentation for child levels to use in @self in addition to the default indentation. The value should be specified in pixels, a value of 0 disables this feature and in this case only the default indentation will be used. This does not have any visible effects for lists.

Deprecated since 4.10

Use ListView or ColumnView instead

indentation

the amount, in pixels, of extra indentation in @self.

Sets the model for a TreeView. If the @self already has a model set, it will remove it before setting the new model. If @model is None, then it will unset the old model.

Deprecated since 4.10

Use ListView or ColumnView instead

model

The model.

This function is a convenience function to allow you to reorder models that support the GtkTreeDragSourceIface and the GtkTreeDragDestIface. Both TreeStore and ListStore 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 GtkTreeModel::row-inserted and GtkTreeModel::row-deleted signals. The reordering is implemented by setting up the tree view as a drag source and destination. Therefore, drag and drop can not be used in a reorderable view for any other purpose.

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

Deprecated since 4.10

Use ListView or ColumnView instead

reorderable

true, if the tree can be reordered.

Sets the row separator function, which is used to determine whether a row should be drawn as a separator. If the row separator function is None, no separators are drawn. This is the default value.

Deprecated since 4.10

Use ListView or ColumnView instead

func

a TreeViewRowSeparatorFunc

Enables or disables rubber banding in @self. If the selection mode is SelectionMode::Multiple, rubber banding will allow the user to select multiple rows by dragging the mouse.

Deprecated since 4.10

Use ListView or ColumnView instead

enable

true to enable rubber banding

Sets @column as the column where the interactive search code should search in for the current model.

If the search column is set, users can use the “start-interactive-search” key binding to bring up search popup. The enable-search property controls whether simply typing text will also start an interactive search.

Note that @column refers to a column of the current model. The search column is reset to -1 when the model is changed.

Deprecated since 4.10

Use ListView or ColumnView instead

column

the column of the model to search in, or -1 to disable searching

source

fn set_search_entry(&self, entry: Option<&impl IsA<Editable>>)

Sets the entry which the interactive search code will use for this @self. This is useful when you want to provide a search entry in our interface at all time at a fixed position. Passing None for @entry will make the interactive search code use the built-in popup entry again.

Deprecated since 4.10

Use ListView or ColumnView instead

entry

the entry the interactive search code of @self should use

Sets the compare function for the interactive search capabilities; note that somewhat like strcmp() returning 0 for equality TreeViewSearchEqualFunc returns false on matches.

Deprecated since 4.10

Use ListView or ColumnView instead

search_equal_func

the compare function to use during the search

Sets whether to draw and enable expanders and indent child rows in @self. When disabled there will be no expanders visible in trees and there will be no way to expand and collapse rows by default. Also note that hiding the expanders will disable the default indentation. You can set a custom indentation in this case using gtk_tree_view_set_level_indentation(). This does not have any visible effects for lists.

Deprecated since 4.10

Use ListView or ColumnView instead

enabled

true to enable expander drawing, false otherwise.

Sets the tip area of @tooltip to the area @path, @column and @cell have in common. For example if @path is None and @column is set, the tip area will be set to the full area covered by @column. See also gtk_tooltip_set_tip_area().

Note that if @path is not specified and @cell is set and part of a column containing the expander, the tooltip might not show and hide at the correct position. In such cases @path must be set to the current node under the mouse cursor for this function to operate correctly.

See also gtk_tree_view_set_tooltip_column() for a simpler alternative.

Deprecated since 4.10

Use ListView or ColumnView instead

tooltip

a Tooltip

path

a TreePath

column

a TreeViewColumn

cell

a CellRenderer

If you only plan to have simple (text-only) tooltips on full rows, you can use this function to have TreeView handle these automatically for you. @column should be set to the column in @self’s model containing the tooltip texts, or -1 to disable this feature.

When enabled, GtkWidget:has-tooltip will be set to true and @self will connect a GtkWidget::query-tooltip signal handler.

Note that the signal handler sets the text with gtk_tooltip_set_markup(), so &, <, etc have to be escaped in the text.

Deprecated since 4.10

Use ListView or ColumnView instead

column

an integer, which is a valid column number for @self’s model

Sets the tip area of @tooltip to be the area covered by the row at @path. See also gtk_tree_view_set_tooltip_column() for a simpler alternative. See also gtk_tooltip_set_tip_area().

Deprecated since 4.10

Use ListView or ColumnView instead

tooltip

a Tooltip

path

a TreePath

Undoes the effect of gtk_tree_view_enable_model_drag_dest(). Calling this method sets TreeView:reorderable to false.

Deprecated since 4.10

Use ListView or ColumnView instead

Undoes the effect of gtk_tree_view_enable_model_drag_source(). Calling this method sets TreeView:reorderable to false.

Deprecated since 4.10

Use ListView or ColumnView instead

The number of columns of the treeview has changed.

The position of the cursor (focused cell) has changed.

The TreeView::move-cursor signal is a [keybinding signal]SignalAction which gets emitted when the user presses one of the cursor keys.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically. In contrast to gtk_tree_view_set_cursor() and gtk_tree_view_set_cursor_on_cell() when moving horizontally TreeView::move-cursor does not reset the current selection.

step

the granularity of the move, as a MovementStep. MovementStep::LogicalPositions, MovementStep::VisualPositions, MovementStep::DisplayLines, MovementStep::Pages and MovementStep::BufferEnds are supported. MovementStep::LogicalPositions and MovementStep::VisualPositions are treated identically.

direction

the direction to move: +1 to move forwards; -1 to move backwards. The resulting movement is undefined for all other values.

extend

whether to extend the selection

modify

whether to modify the selection

Returns

true if @step is supported, false otherwise.

The “row-activated” signal is emitted when the method [method@Gtk.TreeView.row_activated] is called.

This signal is emitted when the user double-clicks a treeview row with the property::TreeView::activate-on-single-click property set to false, or when the user single-clicks a row when that property set to true.

This signal is also emitted when a non-editable row is selected and one of the keys: Space, Shift+Space, Return or Enter is pressed.

For selection handling refer to the tree widget conceptual overview as well as TreeSelection.

path

the TreePath for the activated row

column

the TreeViewColumn in which the activation occurred

The given row has been collapsed (child nodes are hidden).

iter

the tree iter of the collapsed row

path

a tree path that points to the row

The given row has been expanded (child nodes are shown).

iter

the tree iter of the expanded row

path

a tree path that points to the row

The given row is about to be collapsed (hide its children nodes). Use this signal if you need to control the collapsibility of individual rows.

iter

the tree iter of the row to collapse

path

a tree path that points to the row

Returns

false to allow collapsing, true to reject

The given row is about to be expanded (show its children nodes). Use this signal if you need to control the expandability of individual rows.

iter

the tree iter of the row to expand

path

a tree path that points to the row

Returns

false to allow expansion, true to reject

Implementors§