Trait gtk4::prelude::TreeViewExt

source ·
pub trait TreeViewExt: 'static {
Show 129 methods // Required 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§

source

fn append_column(&self, column: &TreeViewColumn) -> i32

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.

column

The TreeViewColumn to add.

Returns

The number of columns in @self after appending.

source

fn collapse_all(&self)

Recursively collapses all visible, expanded nodes in @self.

source

fn collapse_row(&self, path: &TreePath) -> bool

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

path

path to a row in the @self

Returns

true if the row was collapsed.

source

fn columns_autosize(&self)

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

source

fn convert_bin_window_to_tree_coords(&self, bx: i32, by: i32) -> (i32, i32)

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

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

source

fn convert_bin_window_to_widget_coords(&self, bx: i32, by: i32) -> (i32, i32)

Converts bin_window coordinates to widget relative coordinates.

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

source

fn convert_tree_to_bin_window_coords(&self, tx: i32, ty: i32) -> (i32, i32)

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

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

source

fn convert_tree_to_widget_coords(&self, tx: i32, ty: i32) -> (i32, i32)

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

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

source

fn convert_widget_to_bin_window_coords(&self, wx: i32, wy: i32) -> (i32, i32)

Converts widget coordinates to coordinates for the bin_window.

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

source

fn convert_widget_to_tree_coords(&self, wx: i32, wy: i32) -> (i32, i32)

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

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

source

fn create_row_drag_icon(&self, path: &TreePath) -> Option<Paintable>

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

path

a TreePath in @self

Returns

a newly-allocated surface of the drag icon.

source

fn enable_model_drag_dest(&self, formats: &ContentFormats, actions: DragAction)

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

formats

the target formats that the drag will support

actions

the bitmask of possible actions for a drag from this widget

source

fn enable_model_drag_source( &self, start_button_mask: ModifierType, formats: &ContentFormats, actions: DragAction )

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

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

source

fn expand_all(&self)

Recursively expands all nodes in the @self.

source

fn expand_row(&self, path: &TreePath, open_all: bool) -> bool

Opens the row so its children are visible.

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

source

fn expand_to_path(&self, path: &TreePath)

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

path

path to a row.

source

fn activates_on_single_click(&self) -> bool

Gets the setting set by gtk_tree_view_set_activate_on_single_click().

Returns

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

source

fn background_area( &self, path: Option<&TreePath>, column: Option<&TreeViewColumn> ) -> Rectangle

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.

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

source

fn cell_area( &self, path: Option<&TreePath>, column: Option<&TreeViewColumn> ) -> Rectangle

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.

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

source

fn column(&self, n: i32) -> Option<TreeViewColumn>

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

n

The position of the column, counting from 0.

Returns

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

source

fn columns(&self) -> Vec<TreeViewColumn>

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

Returns

A list of TreeViewColumns

source

fn cursor(&self) -> (Option<TreePath>, Option<TreeViewColumn>)

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.

Returns
path

A pointer to be filled with the current cursor path

focus_column

A pointer to be filled with the current focus column

source

fn dest_row_at_pos( &self, drag_x: i32, drag_y: i32 ) -> Option<(Option<TreePath>, TreeViewDropPosition)>

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.

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

source

fn drag_dest_row(&self) -> (Option<TreePath>, TreeViewDropPosition)

Gets information about the row that is highlighted for feedback.

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.

Returns

whether or not to let the user search interactively

source

fn enables_tree_lines(&self) -> bool

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

Returns

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

source

fn expander_column(&self) -> Option<TreeViewColumn>

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.

Returns

The expander column.

source

fn is_fixed_height_mode(&self) -> bool

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

Returns

true if @self is in fixed height mode

source

fn grid_lines(&self) -> TreeViewGridLines

Returns which grid lines are enabled in @self.

Returns

a TreeViewGridLines value indicating which grid lines are enabled.

source

fn is_headers_clickable(&self) -> bool

Returns whether all header columns are clickable.

Returns

true if all header columns are clickable, otherwise false

source

fn is_headers_visible(&self) -> bool

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

Returns

Whether the headers are visible or not.

source

fn hover_expands(&self) -> bool

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

Returns

true if @self is in hover expansion mode

source

fn is_hover_selection(&self) -> bool

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

Returns

true if @self is in hover selection mode

source

fn level_indentation(&self) -> i32

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

Returns

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

source

fn model(&self) -> Option<TreeModel>

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

Returns

A TreeModel

source

fn n_columns(&self) -> u32

Queries the number of columns in the given @self.

Returns

The number of columns in the @self

source

fn path_at_pos( &self, x: i32, y: i32 ) -> Option<(Option<TreePath>, Option<TreeViewColumn>, i32, i32)>

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().

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

source

fn is_reorderable(&self) -> bool

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

Returns

true if the tree can be reordered.

source

fn is_rubber_banding(&self) -> bool

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.

Returns

true if rubber banding in @self is enabled.

source

fn search_column(&self) -> i32

Gets the column searched on by the interactive search code.

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.

Returns

the entry currently in use as search entry.

source

fn selection(&self) -> TreeSelection

Gets the TreeSelection associated with @self.

Returns

A TreeSelection object.

source

fn shows_expanders(&self) -> bool

Returns whether or not expanders are drawn in @self.

Returns

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

source

fn tooltip_column(&self) -> i32

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

Returns

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

source

fn tooltip_context( &self, x: i32, y: i32, keyboard_tip: bool ) -> Option<(Option<TreeModel>, TreePath, TreeIter)>

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.

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

source

fn visible_range(&self) -> Option<(TreePath, TreePath)>

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.

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

source

fn visible_rect(&self) -> Rectangle

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.

Returns
visible_rect

rectangle to fill

source

fn insert_column(&self, column: &TreeViewColumn, position: i32) -> i32

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.

column

The TreeViewColumn to be inserted.

position

The position to insert @column in.

Returns

The number of columns in @self after insertion.

source

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

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.

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

source

fn is_blank_at_pos( &self, x: i32, y: i32 ) -> Option<(Option<TreePath>, Option<TreeViewColumn>, i32, i32)>

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.

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

source

fn is_rubber_banding_active(&self) -> bool

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

Returns

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

source

fn map_expanded_rows<P: FnMut(&TreeView, &TreePath)>(&self, func: P)

Calls @func on all expanded rows.

func

A function to be called

source

fn move_column_after( &self, column: &TreeViewColumn, base_column: Option<&TreeViewColumn> )

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

column

The TreeViewColumn to be moved.

base_column

The TreeViewColumn to be moved relative to

source

fn remove_column(&self, column: &TreeViewColumn) -> i32

Removes @column from @self.

column

The TreeViewColumn to remove.

Returns

The number of columns in @self after removing.

source

fn row_activated(&self, path: &TreePath, column: Option<&TreeViewColumn>)

Activates the cell determined by @path and @column.

path

The TreePath to be activated.

column

The TreeViewColumn to be activated.

source

fn row_expanded(&self, path: &TreePath) -> bool

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

path

A TreePath to test expansion state.

Returns

true if #path is expanded.

source

fn scroll_to_cell( &self, path: Option<&TreePath>, column: Option<&TreeViewColumn>, use_align: bool, row_align: f32, col_align: f32 )

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.

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.

source

fn scroll_to_point(&self, tree_x: i32, tree_y: i32)

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.

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

source

fn set_activate_on_single_click(&self, single: bool)

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

single

true to emit row-activated on a single click

source

fn set_column_drag_function( &self, func: Option<Box_<dyn Fn(&TreeView, &TreeViewColumn, &TreeViewColumn, &TreeViewColumn) -> bool + 'static>> )

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.

func

A function to determine which columns are reorderable

source

fn set_cursor( &self, path: &TreePath, focus_column: Option<&TreeViewColumn>, start_editing: bool )

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.

path

A TreePath

focus_column

A TreeViewColumn

start_editing

true if the specified cell should start being edited.

source

fn set_cursor_on_cell( &self, path: &TreePath, focus_column: Option<&TreeViewColumn>, focus_cell: Option<&impl IsA<CellRenderer>>, start_editing: bool )

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.

path

A TreePath

focus_column

A TreeViewColumn

focus_cell

A CellRenderer

start_editing

true if the specified cell should start being edited.

source

fn set_drag_dest_row(&self, path: Option<&TreePath>, pos: TreeViewDropPosition)

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

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.

true, if the user can search interactively

source

fn set_enable_tree_lines(&self, enabled: bool)

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

enabled

true to enable tree line drawing, false otherwise.

source

fn set_expander_column(&self, column: Option<&TreeViewColumn>)

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.

column

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

source

fn set_fixed_height_mode(&self, enable: bool)

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.

enable

true to enable fixed height mode

source

fn set_grid_lines(&self, grid_lines: TreeViewGridLines)

Sets which grid lines to draw in @self.

grid_lines

a TreeViewGridLines value indicating which grid lines to enable.

source

fn set_headers_clickable(&self, setting: bool)

Allow the column title buttons to be clicked.

setting

true if the columns are clickable.

source

fn set_headers_visible(&self, headers_visible: bool)

Sets the visibility state of the headers.

headers_visible

true if the headers are visible

source

fn set_hover_expand(&self, expand: bool)

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

expand

true to enable hover selection mode

source

fn set_hover_selection(&self, hover: bool)

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.

hover

true to enable hover selection mode

source

fn set_level_indentation(&self, indentation: i32)

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.

indentation

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

source

fn set_model(&self, model: Option<&impl IsA<TreeModel>>)

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.

model

The model.

source

fn set_reorderable(&self, reorderable: bool)

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.

reorderable

true, if the tree can be reordered.

source

fn set_row_separator_func<P: Fn(&TreeModel, &TreeIter) -> bool + 'static>( &self, func: P )

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.

func

a TreeViewRowSeparatorFunc

source

fn set_rubber_banding(&self, enable: bool)

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.

enable

true to enable rubber banding

source

fn set_search_column(&self, column: i32)

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.

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.

entry

the entry the interactive search code of @self should use

source

fn set_search_equal_func<P: Fn(&TreeModel, i32, &str, &TreeIter) -> bool + 'static>( &self, search_equal_func: P )

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

search_equal_func

the compare function to use during the search

source

fn set_show_expanders(&self, enabled: bool)

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.

enabled

true to enable expander drawing, false otherwise.

source

fn set_tooltip_cell( &self, tooltip: &Tooltip, path: Option<&TreePath>, column: Option<&TreeViewColumn>, cell: Option<&impl IsA<CellRenderer>> )

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.

tooltip

a Tooltip

path

a TreePath

column

a TreeViewColumn

cell

a CellRenderer

source

fn set_tooltip_column(&self, column: i32)

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.

column

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

source

fn set_tooltip_row(&self, tooltip: &Tooltip, path: &TreePath)

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().

tooltip

a Tooltip

path

a TreePath

source

fn unset_rows_drag_dest(&self)

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

source

fn unset_rows_drag_source(&self)

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

source

fn enable_grid_lines(&self) -> TreeViewGridLines

source

fn set_enable_grid_lines(&self, enable_grid_lines: TreeViewGridLines)

source

fn connect_columns_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

The number of columns of the treeview has changed.

source

fn connect_cursor_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

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

source

fn connect_expand_collapse_cursor_row<F: Fn(&Self, bool, bool, bool) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

source

fn emit_expand_collapse_cursor_row( &self, object: bool, p0: bool, p1: bool ) -> bool

source

fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

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.

source

fn emit_move_cursor( &self, step: MovementStep, direction: i32, extend: bool, modify: bool ) -> bool

source

fn connect_row_activated<F: Fn(&Self, &TreePath, Option<&TreeViewColumn>) + 'static>( &self, f: F ) -> SignalHandlerId

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

source

fn emit_row_activated(&self, path: &TreePath, column: Option<&TreeViewColumn>)

source

fn connect_row_collapsed<F: Fn(&Self, &TreeIter, &TreePath) + 'static>( &self, f: F ) -> SignalHandlerId

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

source

fn connect_row_expanded<F: Fn(&Self, &TreeIter, &TreePath) + 'static>( &self, f: F ) -> SignalHandlerId

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

source

fn connect_select_all<F: Fn(&Self) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

source

fn emit_select_all(&self) -> bool

source

fn connect_select_cursor_parent<F: Fn(&Self) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

source

fn emit_select_cursor_parent(&self) -> bool

source

fn connect_select_cursor_row<F: Fn(&Self, bool) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

source

fn emit_select_cursor_row(&self, object: bool) -> bool

source

fn connect_test_collapse_row<F: Fn(&Self, &TreeIter, &TreePath) -> Inhibit + 'static>( &self, f: F ) -> SignalHandlerId

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

source

fn connect_test_expand_row<F: Fn(&Self, &TreeIter, &TreePath) -> Inhibit + 'static>( &self, f: F ) -> SignalHandlerId

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

source

fn connect_toggle_cursor_row<F: Fn(&Self) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

source

fn emit_toggle_cursor_row(&self) -> bool

source

fn connect_unselect_all<F: Fn(&Self) -> bool + 'static>( &self, f: F ) -> SignalHandlerId

source

fn emit_unselect_all(&self) -> bool

source

fn connect_activate_on_single_click_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_enable_grid_lines_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_enable_search_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_enable_tree_lines_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_expander_column_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_fixed_height_mode_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_headers_clickable_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_headers_visible_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_hover_expand_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_hover_selection_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_level_indentation_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_model_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId

source

fn connect_reorderable_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_rubber_banding_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_search_column_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_show_expanders_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

source

fn connect_tooltip_column_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId

Implementors§