Trait gtk::prelude::TreeViewExt
source · [−]pub trait TreeViewExt: 'static {
Show 129 methods
fn append_column(&self, column: &impl IsA<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<Surface>;
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<&impl IsA<TreeViewColumn>>
) -> Rectangle;
fn bin_window(&self) -> Option<Window>;
fn cell_area(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<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<Entry>;
fn selection(&self) -> TreeSelection;
fn shows_expanders(&self) -> bool;
fn tooltip_column(&self) -> i32;
fn tooltip_context(
&self,
x: &mut i32,
y: &mut 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: &impl IsA<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: &impl IsA<TreeViewColumn>,
base_column: Option<&impl IsA<TreeViewColumn>>
);
fn remove_column(&self, column: &impl IsA<TreeViewColumn>) -> i32;
fn row_activated(&self, path: &TreePath, column: &impl IsA<TreeViewColumn>);
fn row_expanded(&self, path: &TreePath) -> bool;
fn scroll_to_cell(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<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<&impl IsA<TreeViewColumn>>,
start_editing: bool
);
fn set_cursor_on_cell(
&self,
path: &TreePath,
focus_column: Option<&impl IsA<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<&impl IsA<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(
&self,
func: Option<Box_<dyn Fn(&TreeModel, &TreeIter) -> bool + 'static>>
);
fn set_rubber_banding(&self, enable: bool);
fn set_search_column(&self, column: i32);
fn set_search_entry(&self, entry: Option<&impl IsA<Entry>>);
fn set_search_equal_func<P: Fn(&TreeModel, i32, &str, &TreeIter) -> bool + 'static>(
&self,
search_equal_func: P
);
fn set_search_position_func(
&self,
func: Option<Box_<dyn Fn(&TreeView, &Widget) + 'static>>
);
fn set_show_expanders(&self, enabled: bool);
fn set_tooltip_cell(
&self,
tooltip: &Tooltip,
path: Option<&TreePath>,
column: Option<&impl IsA<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 + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn emit_move_cursor(&self, step: MovementStep, direction: i32) -> bool;
fn connect_row_activated<F: Fn(&Self, &TreePath, &TreeViewColumn) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn emit_row_activated(&self, path: &TreePath, column: &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: &impl IsA<TreeViewColumn>) -> i32
fn append_column(&self, column: &impl IsA<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<Surface>
fn create_row_drag_icon(&self, path: &TreePath) -> Option<Surface>
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 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
Gets the setting set by set_activate_on_single_click()
.
Returns
true
if row-activated will be emitted on a single click
sourcefn background_area(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<TreeViewColumn>>
) -> Rectangle
fn background_area(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<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 CellRendererExt::render()
. These background
areas tile to cover the entire bin window. Contrast with the cell_area
,
returned by 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 coordiantes
Returns
rect
rectangle to fill with cell background rect
sourcefn bin_window(&self) -> Option<Window>
fn bin_window(&self) -> Option<Window>
Returns the window that self
renders to.
This is used primarily to compare to event->window
to confirm that the event on self
is on the right window.
Returns
A gdk::Window
, or None
when self
hasn’t been realized yet.
sourcefn cell_area(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<TreeViewColumn>>
) -> Rectangle
fn cell_area(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<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
CellRendererExt::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, or None
focus_column
A
pointer to be filled with the current focus column, or None
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, or None
.
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>
Returns the column that is the current expander column. This column has the expander arrow drawn next to it.
Returns
The expander column.
sourcefn is_fixed_height_mode(&self) -> bool
fn is_fixed_height_mode(&self) -> bool
sourcefn grid_lines(&self) -> TreeViewGridLines
fn grid_lines(&self) -> TreeViewGridLines
Returns which grid lines are enabled in self
.
Returns
a TreeViewGridLines
value indicating which grid lines
are enabled.
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
(please see bin_window()
).
That is, x
and y
are relative to an events coordinates. x
and y
must
come from an event on the self
only where event->window == gtk_tree_view_get_bin_window ()
. 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
CellRendererExt::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
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, or None
column
A pointer to
a TreeViewColumn
pointer to be filled in, or None
cell_x
A pointer where the X coordinate
relative to the cell can be placed, or None
cell_y
A pointer where the Y coordinate
relative to the cell can be placed, or None
sourcefn is_reorderable(&self) -> bool
fn is_reorderable(&self) -> bool
Retrieves whether the user can reorder the tree via drag-and-drop. See
set_reorderable()
.
Returns
true
if the tree can be reordered.
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<Entry>
fn search_entry(&self) -> Option<Entry>
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: &mut i32,
y: &mut i32,
keyboard_tip: bool
) -> Option<(Option<TreeModel>, TreePath, TreeIter)>
fn tooltip_context(
&self,
x: &mut i32,
y: &mut i32,
keyboard_tip: bool
) -> Option<(Option<TreeModel>, TreePath, TreeIter)>
This function is supposed to be used in a signal::Widget::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
or None
path
a pointer to receive a TreePath
or None
iter
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,
or None
.
end_path
Return location for end of region, or None
.
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
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: &impl IsA<TreeViewColumn>, position: i32) -> i32
fn insert_column(&self, column: &impl IsA<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
TreeViewColumnExt::set_cell_data_func()
, TreeViewColumnExt::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. That is, x
and y
must come from an event on self
where event->window == gtk_tree_view_get_bin_window ()
.
For converting widget coordinates (eg. the ones you get from
GtkWidget::query-tooltip), please see
convert_widget_to_bin_window_coords()
.
The path
, column
, cell_x
and cell_y
arguments will be filled in
likewise as for path_at_pos()
. Please see
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, or None
column
A pointer to a
TreeViewColumn
pointer to be filled in, or None
cell_x
A pointer where the X coordinate relative to the
cell can be placed, or None
cell_y
A pointer where the Y coordinate relative to the
cell can be placed, or None
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: &impl IsA<TreeViewColumn>,
base_column: Option<&impl IsA<TreeViewColumn>>
)
fn move_column_after(
&self,
column: &impl IsA<TreeViewColumn>,
base_column: Option<&impl IsA<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, or None
.
sourcefn remove_column(&self, column: &impl IsA<TreeViewColumn>) -> i32
fn remove_column(&self, column: &impl IsA<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: &impl IsA<TreeViewColumn>)
fn row_activated(&self, path: &TreePath, column: &impl IsA<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<&impl IsA<TreeViewColumn>>,
use_align: bool,
row_align: f32,
col_align: f32
)
fn scroll_to_cell(
&self,
path: Option<&TreePath>,
column: Option<&impl IsA<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, or None
.
column
The TreeViewColumn
to move horizontally to, or None
.
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 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, or None
.
sourcefn set_cursor(
&self,
path: &TreePath,
focus_column: Option<&impl IsA<TreeViewColumn>>,
start_editing: bool
)
fn set_cursor(
&self,
path: &TreePath,
focus_column: Option<&impl IsA<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 WidgetExt::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
, or None
start_editing
true
if the specified cell should start being edited.
sourcefn set_cursor_on_cell(
&self,
path: &TreePath,
focus_column: Option<&impl IsA<TreeViewColumn>>,
focus_cell: Option<&impl IsA<CellRenderer>>,
start_editing: bool
)
fn set_cursor_on_cell(
&self,
path: &TreePath,
focus_column: Option<&impl IsA<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
WidgetExt::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
, or None
focus_cell
A CellRenderer
, or None
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<&impl IsA<TreeViewColumn>>)
fn set_expander_column(&self, column: Option<&impl IsA<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 TreeViewGridLines
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 signal::TreeModel::row-inserted
and signal::TreeModel::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_row_separator_func(
&self,
func: Option<Box_<dyn Fn(&TreeModel, &TreeIter) -> bool + 'static>>
)
fn set_row_separator_func(
&self,
func: Option<Box_<dyn Fn(&TreeModel, &TreeIter) -> bool + 'static>>
)
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<Entry>>)
fn set_search_entry(&self, entry: Option<&impl IsA<Entry>>)
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 or None
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
GtkTreeViewSearchEqualFunc
returns false
on matches.
search_equal_func
the compare function to use during the search
search_user_data
user data to pass to search_equal_func
, or None
search_destroy
Destroy notifier for search_user_data
, or None
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
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<&impl IsA<TreeViewColumn>>,
cell: Option<&impl IsA<CellRenderer>>
)
fn set_tooltip_cell(
&self,
tooltip: &Tooltip,
path: Option<&TreePath>,
column: Option<&impl IsA<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
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 set_tooltip_column()
for a simpler alternative.
tooltip
a Tooltip
path
column
a TreeViewColumn
or None
cell
a CellRenderer
or None
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, property::Widget::has-tooltip
will be set to true
and
self
will connect a signal::Widget::query-tooltip
signal handler.
Note that the signal handler sets the text with 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)
Sets the tip area of tooltip
to be the area covered by the row at path
.
See also set_tooltip_column()
for a simpler alternative.
See also Tooltip::set_tip_area()
.
tooltip
a Tooltip
path
a TreePath
sourcefn unset_rows_drag_dest(&self)
fn unset_rows_drag_dest(&self)
Undoes the effect of
gtk_tree_view_enable_model_drag_dest()
. Calling this method sets
property::TreeView::reorderable
to false
.
sourcefn unset_rows_drag_source(&self)
fn unset_rows_drag_source(&self)
Undoes the effect of
gtk_tree_view_enable_model_drag_source()
. Calling this method sets
property::TreeView::reorderable
to false
.
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 + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_move_cursor<F: Fn(&Self, MovementStep, i32) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
The signal::TreeView::move-cursor
signal is a [keybinding
signal][GtkBindingSignal] 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 set_cursor()
and
set_cursor_on_cell()
when moving horizontally
signal::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.
Returns
fn emit_move_cursor(&self, step: MovementStep, direction: i32) -> bool
sourcefn connect_row_activated<F: Fn(&Self, &TreePath, &TreeViewColumn) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_row_activated<F: Fn(&Self, &TreePath, &TreeViewColumn) + 'static>(
&self,
f: F
) -> SignalHandlerId
The “row-activated” signal is emitted when the method
row_activated()
is called, when the user double
clicks a treeview row with the “activate-on-single-click”
property set to false
, or when the user single clicks a row when
the “activate-on-single-click” property set to true
. It 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][TreeWidget]
as well as TreeSelection
.
path
the TreePath
for the activated row
column
the TreeViewColumn
in which the activation occurred