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
Required Methods§
sourcefn append_column(&self, column: &TreeViewColumn) -> i32
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.
sourcefn collapse_all(&self)
fn collapse_all(&self)
Recursively collapses all visible, expanded nodes in @self.
sourcefn collapse_row(&self, path: &TreePath) -> bool
fn collapse_row(&self, path: &TreePath) -> bool
sourcefn columns_autosize(&self)
fn columns_autosize(&self)
Resizes all columns to their optimal width. Only works after the treeview has been realized.
sourcefn create_row_drag_icon(&self, path: &TreePath) -> Option<Paintable>
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.
sourcefn enable_model_drag_dest(&self, formats: &ContentFormats, actions: DragAction)
fn enable_model_drag_dest(&self, formats: &ContentFormats, actions: DragAction)
sourcefn enable_model_drag_source(
&self,
start_button_mask: ModifierType,
formats: &ContentFormats,
actions: DragAction
)
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
sourcefn expand_all(&self)
fn expand_all(&self)
Recursively expands all nodes in the @self.
sourcefn expand_row(&self, path: &TreePath, open_all: bool) -> bool
fn expand_row(&self, path: &TreePath, open_all: bool) -> bool
sourcefn expand_to_path(&self, path: &TreePath)
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.
sourcefn activates_on_single_click(&self) -> bool
fn activates_on_single_click(&self) -> bool
sourcefn background_area(
&self,
path: Option<&TreePath>,
column: Option<&TreeViewColumn>
) -> Rectangle
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
sourcefn cell_area(
&self,
path: Option<&TreePath>,
column: Option<&TreeViewColumn>
) -> Rectangle
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
sourcefn column(&self, n: i32) -> Option<TreeViewColumn>
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.
sourcefn columns(&self) -> Vec<TreeViewColumn>
fn columns(&self) -> Vec<TreeViewColumn>
Returns a GList
of all the TreeViewColumn
s currently in @self.
The returned list must be freed with g_list_free ().
Returns
A list of TreeViewColumn
s
sourcefn cursor(&self) -> (Option<TreePath>, Option<TreeViewColumn>)
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
sourcefn dest_row_at_pos(
&self,
drag_x: i32,
drag_y: i32
) -> Option<(Option<TreePath>, TreeViewDropPosition)>
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
sourcefn drag_dest_row(&self) -> (Option<TreePath>, TreeViewDropPosition)
fn drag_dest_row(&self) -> (Option<TreePath>, TreeViewDropPosition)
sourcefn enables_search(&self) -> bool
fn enables_search(&self) -> bool
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
sourcefn enables_tree_lines(&self) -> bool
fn enables_tree_lines(&self) -> bool
sourcefn expander_column(&self) -> Option<TreeViewColumn>
fn expander_column(&self) -> Option<TreeViewColumn>
sourcefn is_fixed_height_mode(&self) -> bool
fn is_fixed_height_mode(&self) -> bool
sourcefn grid_lines(&self) -> TreeViewGridLines
fn grid_lines(&self) -> TreeViewGridLines
sourcefn is_headers_clickable(&self) -> bool
fn is_headers_clickable(&self) -> bool
sourcefn is_headers_visible(&self) -> bool
fn is_headers_visible(&self) -> bool
sourcefn hover_expands(&self) -> bool
fn hover_expands(&self) -> bool
sourcefn is_hover_selection(&self) -> bool
fn is_hover_selection(&self) -> bool
sourcefn level_indentation(&self) -> i32
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.
sourcefn path_at_pos(
&self,
x: i32,
y: i32
) -> Option<(Option<TreePath>, Option<TreeViewColumn>, i32, i32)>
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
sourcefn is_reorderable(&self) -> bool
fn is_reorderable(&self) -> bool
sourcefn is_rubber_banding(&self) -> bool
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.
sourcefn search_column(&self) -> i32
fn search_column(&self) -> i32
Gets the column searched on by the interactive search code.
Returns
the column the interactive search code searches in.
sourcefn search_entry(&self) -> Option<Editable>
fn search_entry(&self) -> Option<Editable>
sourcefn selection(&self) -> TreeSelection
fn selection(&self) -> TreeSelection
sourcefn shows_expanders(&self) -> bool
fn shows_expanders(&self) -> bool
sourcefn tooltip_column(&self) -> i32
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.
sourcefn tooltip_context(
&self,
x: i32,
y: i32,
keyboard_tip: bool
) -> Option<(Option<TreeModel>, TreePath, TreeIter)>
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
sourcefn visible_range(&self) -> Option<(TreePath, TreePath)>
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
sourcefn visible_rect(&self) -> Rectangle
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
sourcefn insert_column(&self, column: &TreeViewColumn, position: i32) -> i32
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.
sourcefn 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 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
sourcefn is_blank_at_pos(
&self,
x: i32,
y: i32
) -> Option<(Option<TreePath>, Option<TreeViewColumn>, i32, i32)>
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
sourcefn is_rubber_banding_active(&self) -> bool
fn is_rubber_banding_active(&self) -> bool
sourcefn map_expanded_rows<P: FnMut(&TreeView, &TreePath)>(&self, func: P)
fn map_expanded_rows<P: FnMut(&TreeView, &TreePath)>(&self, func: P)
sourcefn move_column_after(
&self,
column: &TreeViewColumn,
base_column: Option<&TreeViewColumn>
)
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
sourcefn remove_column(&self, column: &TreeViewColumn) -> i32
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.
sourcefn row_activated(&self, path: &TreePath, column: Option<&TreeViewColumn>)
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.
sourcefn row_expanded(&self, path: &TreePath) -> bool
fn row_expanded(&self, path: &TreePath) -> bool
sourcefn scroll_to_cell(
&self,
path: Option<&TreePath>,
column: Option<&TreeViewColumn>,
use_align: bool,
row_align: f32,
col_align: f32
)
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.
sourcefn scroll_to_point(&self, tree_x: i32, tree_y: i32)
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
sourcefn set_activate_on_single_click(&self, single: bool)
fn set_activate_on_single_click(&self, single: bool)
sourcefn set_column_drag_function(
&self,
func: Option<Box_<dyn Fn(&TreeView, &TreeViewColumn, &TreeViewColumn, &TreeViewColumn) -> bool + 'static>>
)
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 TreeViewColumn
s 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
sourcefn set_cursor(
&self,
path: &TreePath,
focus_column: Option<&TreeViewColumn>,
start_editing: bool
)
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
start_editing
true
if the specified cell should start being edited.
sourcefn set_cursor_on_cell(
&self,
path: &TreePath,
focus_column: Option<&TreeViewColumn>,
focus_cell: Option<&impl IsA<CellRenderer>>,
start_editing: bool
)
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
focus_cell
start_editing
true
if the specified cell should start being edited.
sourcefn set_drag_dest_row(&self, path: Option<&TreePath>, pos: TreeViewDropPosition)
fn set_drag_dest_row(&self, path: Option<&TreePath>, pos: TreeViewDropPosition)
sourcefn set_enable_search(&self, enable_search: bool)
fn set_enable_search(&self, enable_search: bool)
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.
enable_search
true
, if the user can search interactively
sourcefn set_enable_tree_lines(&self, enabled: bool)
fn set_enable_tree_lines(&self, enabled: bool)
sourcefn set_expander_column(&self, column: Option<&TreeViewColumn>)
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.
sourcefn set_fixed_height_mode(&self, enable: bool)
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
sourcefn set_grid_lines(&self, grid_lines: TreeViewGridLines)
fn set_grid_lines(&self, grid_lines: TreeViewGridLines)
Sets which grid lines to draw in @self.
grid_lines
a TreeView
GridLines value indicating which grid lines to
enable.
sourcefn set_headers_clickable(&self, setting: bool)
fn set_headers_clickable(&self, setting: bool)
sourcefn set_headers_visible(&self, headers_visible: bool)
fn set_headers_visible(&self, headers_visible: bool)
sourcefn set_hover_expand(&self, expand: bool)
fn set_hover_expand(&self, expand: bool)
sourcefn set_hover_selection(&self, hover: bool)
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
sourcefn set_level_indentation(&self, indentation: i32)
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.
sourcefn set_reorderable(&self, reorderable: bool)
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.
sourcefn set_rubber_banding(&self, enable: bool)
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
sourcefn set_search_column(&self, column: i32)
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
sourcefn set_search_entry(&self, entry: Option<&impl IsA<Editable>>)
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
sourcefn set_search_equal_func<P: Fn(&TreeModel, i32, &str, &TreeIter) -> bool + 'static>(
&self,
search_equal_func: P
)
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
TreeView
SearchEqualFunc returns false
on matches.
search_equal_func
the compare function to use during the search
sourcefn set_show_expanders(&self, enabled: bool)
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
sourcefn set_tooltip_cell(
&self,
tooltip: &Tooltip,
path: Option<&TreePath>,
column: Option<&TreeViewColumn>,
cell: Option<&impl IsA<CellRenderer>>
)
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
cell
sourcefn set_tooltip_column(&self, column: i32)
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
sourcefn set_tooltip_row(&self, tooltip: &Tooltip, path: &TreePath)
fn set_tooltip_row(&self, tooltip: &Tooltip, path: &TreePath)
sourcefn unset_rows_drag_dest(&self)
fn unset_rows_drag_dest(&self)
sourcefn unset_rows_drag_source(&self)
fn unset_rows_drag_source(&self)
fn enable_grid_lines(&self) -> TreeViewGridLines
fn set_enable_grid_lines(&self, enable_grid_lines: TreeViewGridLines)
sourcefn connect_columns_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_columns_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
The number of columns of the treeview has changed.
sourcefn connect_cursor_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_cursor_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
The position of the cursor (focused cell) has changed.
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
sourcefn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
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
fn emit_move_cursor( &self, step: MovementStep, direction: i32, extend: bool, modify: bool ) -> bool
sourcefn connect_row_activated<F: Fn(&Self, &TreePath, Option<&TreeViewColumn>) + 'static>(
&self,
f: F
) -> SignalHandlerId
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