Struct gtk4::TreeSelection [−][src]
pub struct TreeSelection(_);
Expand description
The selection object for GtkTreeView
The TreeSelection
object is a helper object to manage the selection
for a TreeView
widget. The TreeSelection
object is
automatically created when a new TreeView
widget is created, and
cannot exist independently of this widget. The primary reason the
TreeSelection
objects exists is for cleanliness of code and API.
That is, there is no conceptual reason all these functions could not be
methods on the TreeView
widget instead of a separate function.
The TreeSelection
object is gotten from a TreeView
by calling
TreeViewExt::selection()
. It can be manipulated to check the
selection status of the tree, as well as select and deselect individual
rows. Selection is done completely view side. As a result, multiple
views of the same model can have completely different selections.
Additionally, you cannot change the selection of a row on the model that
is not currently displayed by the view without expanding its parents
first.
One of the important things to remember when monitoring the selection of
a view is that the TreeSelection
::changed signal is mostly a hint.
That is, it may only emit one signal when a range of rows is selected.
Additionally, it may on occasion emit a TreeSelection
::changed signal
when nothing has happened (mostly as a result of programmers calling
select_row on an already selected row).
Implements
Implementations
Sets iter
to the currently selected node if self
is set to
SelectionMode::Single
or SelectionMode::Browse
. iter
may be NULL if you
just want to test if self
has any selected nodes. model
is filled
with the current model as a convenience. This function will not work if you
use self
is SelectionMode::Multiple
.
Returns
TRUE, if there is a selected node.
model
A pointer to set to the TreeModel
iter
The TreeIter
Creates a list of path of all selected rows. Additionally, if you are
planning on modifying the model after calling this function, you may
want to convert the returned list into a list of TreeRowReference
s.
To do this, you can use TreeRowReference::new()
.
To free the return value, use:
⚠️ The following code is in C ⚠️
g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
Returns
A GList
containing a TreePath
for each selected row.
model
A pointer to set to the TreeModel
Selects all the nodes. self
must be set to SelectionMode::Multiple
mode.
Selects a range of nodes, determined by start_path
and end_path
inclusive.
self
must be set to SelectionMode::Multiple
mode.
start_path
The initial node of the range.
end_path
The final node of the range.
Calls a function for each selected node. Note that you cannot modify
the tree or selection from within this function. As a result,
selected_rows()
might be more useful.
func
The function to call for each selected node.
Sets the selection mode of the self
. If the previous type was
SelectionMode::Multiple
, then the anchor is kept selected, if it was
previously selected.
type_
The selection mode
pub fn set_select_function<P: Fn(&TreeSelection, &TreeModel, &TreePath, bool) -> bool + 'static>(
&self,
func: P
)
pub fn set_select_function<P: Fn(&TreeSelection, &TreeModel, &TreePath, bool) -> bool + 'static>(
&self,
func: P
)
Sets the selection function.
If set, this function is called before any node is selected or unselected,
giving some control over which nodes are selected. The select function
should return true
if the state of the node may be toggled, and false
if the state of the node should be left unchanged.
func
The selection function. May be None
Unselects all the nodes.
Unselects a range of nodes, determined by start_path
and end_path
inclusive.
start_path
The initial node of the range.
end_path
The initial node of the range.
Emitted whenever the selection has (possibly) changed. Please note that this signal is mostly a hint. It may only be emitted once when a range of rows are selected, and it may occasionally be emitted when nothing has happened.
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for TreeSelection
impl !Send for TreeSelection
impl !Sync for TreeSelection
impl Unpin for TreeSelection
impl UnwindSafe for TreeSelection
Blanket Implementations
Mutably borrows from an owned value. Read more
Upcasts an object to a superclass or interface T
. Read more
Upcasts an object to a reference of its superclass or interface T
. Read more
Tries to downcast to a subclass or interface implementor T
. Read more
Tries to downcast to a reference of its subclass or interface implementor T
. Read more
Tries to cast to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Tries to cast to reference to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Casts to T
unconditionally. Read more
Casts to &T
unconditionally. Read more
Returns true
if the object is an instance of (can be cast to) T
.
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
N: Into<&'a str>,
V: ToValue,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>,
Safety Read more
Safety Read more
Safety Read more
Safety Read more
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
Same as connect
but takes a SignalId
instead of a signal name.
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: 'static + Fn(&[Value]) -> Option<Value>,
Same as connect_local
but takes a SignalId
instead of a signal name.
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: Fn(&[Value]) -> Option<Value>,
Same as connect_unsafe
but takes a SignalId
instead of a signal name.
Emit signal by signal id.
Same as emit
but takes Value
for the arguments.
Emit signal by its name.
Same as emit_by_name
but takes Value
for the arguments.
Emit signal with details by signal id.
Same as emit_with_details
but takes Value
for the arguments.
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
Returns a SendValue
clone of self
.