Struct gtk4::IconView [−][src]
pub struct IconView(_);
Expand description
IconView
is a widget which displays data in a grid of icons.
IconView
provides an alternative view on a TreeModel
.
It displays the model as a grid of icons with labels. Like
TreeView
, it allows to select one or multiple items
(depending on the selection mode, see set_selection_mode()
).
In addition to selection with the arrow keys, IconView
supports
rubberband selection, which is controlled by dragging the pointer.
Note that if the tree model is backed by an actual tree store (as
opposed to a flat list where the mapping to icons is obvious),
IconView
will only display the first level of the tree and
ignore the tree’s branches.
CSS nodes
iconview.view
╰── [rubberband]
IconView
has a single CSS node with name iconview and style class .view.
For rubberband selection, a subnode with name rubberband is used.
Implements
WidgetExt
, glib::ObjectExt
, AccessibleExt
, BuildableExt
, ConstraintTargetExt
, CellLayoutExt
, ScrollableExt
, WidgetExtManual
, AccessibleExtManual
, CellLayoutExtManual
Implementations
Creates a new builder-pattern struct instance to construct IconView
objects.
This method returns an instance of IconViewBuilder
which can be used to create IconView
objects.
pub fn enable_model_drag_source(
&self,
start_button_mask: ModifierType,
formats: &ContentFormats,
actions: DragAction
)
pub 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 IconView
:reorderable to false
.
start_button_mask
Mask of allowed buttons to start drag
formats
the formats that the drag will support
actions
the bitmask of possible actions for a drag from this widget
Gets the setting set by set_activate_on_single_click()
.
Returns
true
if item-activated will be emitted on a single click
Fills in path
and cell
with the current cursor path and cell.
If the cursor isn’t currently set, then *path
will be None
.
If no cell currently has focus, then *cell
will be None
.
The returned TreePath
must be freed with gtk_tree_path_free()
.
Returns
true
if the cursor is set.
path
Return location for the current cursor path
cell
Return location the current focus cell
pub fn dest_item_at_pos(
&self,
drag_x: i32,
drag_y: i32
) -> Option<(TreePath, IconViewDropPosition)>
pub fn dest_item_at_pos(
&self,
drag_x: i32,
drag_y: i32
) -> Option<(TreePath, IconViewDropPosition)>
Determines the destination item for a given position.
drag_x
the position to determine the destination item for
drag_y
the position to determine the destination item for
Returns
whether there is an item at the given position.
path
Return location for the path of the item
pos
Return location for the drop position
Returns the value of the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.
Returns
the relative position of texts and icons
Retrieves whether the user can reorder the list via drag-and-drop.
See set_reorderable()
.
Returns
true
if the list can be reordered.
Creates a list of paths of all selected items. 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 GtkTreeRowReferences
.
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.
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.
This function is supposed to be used in a GtkWidget::query-tooltip
signal handler for IconView
. 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 an icon view item at the given
coordinates (true
) or not (false
) for mouse tooltips. For keyboard
tooltips the item returned will be the cursor item. 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
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 an item
model
a pointer to receive a TreeModel
path
a pointer to receive a TreePath
iter
a pointer to receive a TreeIter
Sets start_path
and end_path
to be the first and last visible path.
Note that there may be invisible paths in between.
Both 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
Moves the alignments of self
to the position specified by path
.
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 item onto the screen.
This means that the item will be scrolled to the edge closest to its current
position. If the item 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 item to move to.
use_align
whether to use alignment arguments, or false
.
row_align
The vertical alignment of the item specified by path
.
col_align
The horizontal alignment of the item specified by path
.
Selects all the icons. self
must has its selection mode set
to SelectionMode::Multiple
.
Calls a function for each selected icon. Note that the model or selection cannot be modified from within this function.
func
The function to call for each selected icon.
Sets the ::column-spacing property which specifies the space which is inserted between the columns of the icon view.
column_spacing
the column spacing
Sets the ::columns property which determines in how
many columns the icons are arranged. If columns
is
-1, the number of columns will be chosen automatically
to fill the available area.
columns
the number of columns
pub fn set_cursor<P: IsA<CellRenderer>>(
&self,
path: &TreePath,
cell: Option<&P>,
start_editing: bool
)
pub fn set_cursor<P: IsA<CellRenderer>>(
&self,
path: &TreePath,
cell: Option<&P>,
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 item.
If cell
is not None
, then focus is given to the cell specified by
it. Additionally, if start_editing
is true
, then editing should be
started in the specified cell.
This function is often followed by gtk_widget_grab_focus (icon_view)
in order to give keyboard focus to the widget.
Please note that editing can only happen when the widget is realized.
path
A TreePath
cell
One of the cell renderers of self
start_editing
true
if the specified cell should start being edited.
Sets the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.
orientation
the relative position of texts and icons
Sets the IconView
:item-padding property which specifies the padding
around each of the icon view’s items.
item_padding
the item padding
Sets the ::item-width property which specifies the width to use for each item. If it is set to -1, the icon view will automatically determine a suitable item size.
item_width
the width for each item
Sets the ::margin property which specifies the space which is inserted at the top, bottom, left and right of the icon view.
margin
the margin
Sets the column with markup information for self
to be
column
. The markup column must be of type G_TYPE_STRING
.
If the markup column is set to something, it overrides
the text column set by set_text_column()
.
column
A column in the currently used model, or -1 to display no text
Sets the column with pixbufs for self
to be column
. The pixbuf
column must be of type GDK_TYPE_PIXBUF
column
A column in the currently used model, or -1 to disable
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
row_inserted and row_deleted signals. The reordering is implemented by setting up
the icon 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 list of items can be reordered.
Sets the ::row-spacing property which specifies the space which is inserted between the rows of the icon view.
row_spacing
the row spacing
Sets the ::spacing property which specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.
spacing
the spacing
Sets the column with text for self
to be column
. The text
column must be of type G_TYPE_STRING
.
column
A column in the currently used model, or -1 to display no text
pub fn set_tooltip_cell<P: IsA<CellRenderer>>(
&self,
tooltip: &Tooltip,
path: &TreePath,
cell: Option<&P>
)
pub fn set_tooltip_cell<P: IsA<CellRenderer>>(
&self,
tooltip: &Tooltip,
path: &TreePath,
cell: Option<&P>
)
Sets the tip area of tooltip
to the area which cell
occupies in
the item pointed to by path
. See also Tooltip::set_tip_area()
.
See also set_tooltip_column()
for a simpler alternative.
tooltip
a Tooltip
path
a TreePath
cell
If you only plan to have simple (text-only) tooltips on full items, you
can use this function to have IconView
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 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
Sets the tip area of tooltip
to be the area covered by the item at path
.
See also set_tooltip_column()
for a simpler alternative.
See also Tooltip::set_tip_area()
.
tooltip
a Tooltip
path
a TreePath
Unselects all the icons.
Undoes the effect of enable_model_drag_dest()
. Calling this
method sets IconView
:reorderable to false
.
Undoes the effect of enable_model_drag_source()
. Calling this
method sets IconView
:reorderable to false
.
The CellArea
used to layout cell renderers for this view.
If no area is specified when creating the icon view with with_area()
a CellAreaBox
will be used.
pub fn connect_activate_cursor_item<F: Fn(&Self) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_activate_cursor_item<F: Fn(&Self) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
A [keybinding signal]SignalAction
which gets emitted when the user activates the currently
focused item.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to control activation
programmatically.
The default bindings for this signal are Space, Return and Enter.
pub fn connect_item_activated<F: Fn(&Self, &TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_item_activated<F: Fn(&Self, &TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
The ::item-activated signal is emitted when the method
item_activated()
is called, when the user double
clicks an item with the “activate-on-single-click” property set
to false
, or when the user single clicks an item when the
“activate-on-single-click” property set to true
. It is also
emitted when a non-editable item is selected and one of the keys:
Space, Return or Enter is pressed.
path
the TreePath
for the activated item
pub fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
The ::move-cursor signal is a
[keybinding signal]SignalAction
which gets emitted when the user initiates a cursor movement.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to control the cursor
programmatically.
The default bindings for this signal include
- Arrow keys which move by individual steps
- Home/End keys which move to the first/last item
- PageUp/PageDown which move by “pages” All of these will extend the selection when combined with the Shift modifier.
step
the granularity of the move, as a MovementStep
count
the number of step
units to move
extend
whether to extend the selection
modify
whether to modify the selection
pub fn emit_move_cursor(
&self,
step: MovementStep,
count: i32,
extend: bool,
modify: bool
) -> bool
A [keybinding signal][class.Gtk.SignalAction] which gets emitted when the user selects all items.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to control selection
programmatically.
The default binding for this signal is Ctrl-a.
A [keybinding signal]SignalAction
which gets emitted when the user selects the item that is currently
focused.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to control selection
programmatically.
There is no default binding for this signal.
The ::selection-changed signal is emitted when the selection (i.e. the set of selected items) changes.
A [keybinding signal]SignalAction
which gets emitted when the user toggles whether the currently
focused item is selected or not. The exact effect of this
depend on the selection mode.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to control selection
programmatically.
There is no default binding for this signal is Ctrl-Space.
A [keybinding signal]SignalAction
which gets emitted when the user unselects all items.
Applications should not connect to it, but may emit it with
g_signal_emit_by_name()
if they need to control selection
programmatically.
The default binding for this signal is Ctrl-Shift-a.
pub fn connect_activate_on_single_click_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_item_orientation_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
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 IconView
impl UnwindSafe for IconView
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
.