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 IconView widget

Returns

A newly created IconView widget

Creates a new IconView widget using the specified area to layout cells inside the icons.

area

the CellArea to use to layout cells

Returns

A newly created IconView widget

Creates a new IconView widget with the model model.

model

The model.

Returns

A newly created IconView widget.

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.

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

path

a TreePath in self

Returns

a newly-allocated surface of the drag icon.

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

formats

the formats that the drag will support

actions

the bitmask of possible actions for a drag to this widget

Turns self into a drag source for automatic DND. Calling this method sets property::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 the bounding rectangle in widget coordinates for the cell specified by path and cell. If cell is None the main cell area is used.

This function is only valid if self is realized.

path

a TreePath

cell

a CellRenderer or None

Returns

false if there is no such item, true otherwise

rect

rectangle to fill with cell rect

Returns the value of the ::column-spacing property.

Returns

the space between columns

Returns the value of the ::columns property.

Returns

the number of columns, or -1

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, or None

cell

Return location the current focus cell, or None

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, or None.

pos

Return location for the drop position, or None

Gets information about the item that is highlighted for feedback.

Returns

path

Return location for the path of the highlighted item, or None.

pos

Return location for the drop position, or None

Gets the path and cell for the icon at the given position.

x

The x position to be identified

y

The y position to be identified

Returns

true if an item exists at the specified position

path

Return location for the path, or None

cell

Return location for the renderer responsible for the cell at (x, y), or None

Gets the column in which the item path is currently displayed. Column numbers start at 0.

path

the TreePath of the item

Returns

The column in which the item is displayed

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

Returns the value of the ::item-padding property.

Returns

the padding around items

Gets the row in which the item path is currently displayed. Row numbers start at 0.

path

the TreePath of the item

Returns

The row in which the item is displayed

Returns the value of the ::item-width property.

Returns

the width of a single item, or -1

Returns the value of the ::margin property.

Returns

the space at the borders

Returns the column with markup text for self.

Returns

the markup column, or -1 if it’s unset.

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

Returns

A TreeModel, or None if none is currently being used.

Gets the path for the icon at the given position.

x

The x position to be identified

y

The y position to be identified

Returns

The TreePath corresponding to the icon or None if no icon exists at that position.

Returns the column with pixbufs for self.

Returns

the pixbuf column, or -1 if it’s unset.

Retrieves whether the user can reorder the list via drag-and-drop. See set_reorderable().

Returns

true if the list can be reordered.

Returns the value of the ::row-spacing property.

Returns

the space between rows

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.

Gets the selection mode of the self.

Returns

the current selection mode

Returns the value of the ::spacing property.

Returns

the space between cells

Returns the column with text for self.

Returns

the text column, or -1 if it’s unset.

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 signal::Widget::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 or None

path

a pointer to receive a TreePath or None

iter

a pointer to receive a TreeIter or None

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, or None

end_path

Return location for end of region, or None

Activates the item determined by path.

path

The TreePath to be activated

Returns true if the icon pointed to by path is currently selected. If path does not point to a valid location, false is returned.

path

A TreePath to check selection on.

Returns

true if path is selected.

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.

Selects the row at path.

path

The TreePath to be selected.

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.

Causes the signal::IconView::item-activated signal to be emitted on a single click instead of a double click.

single

true to emit item-activated on a single click

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

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, or None

start_editing

true if the specified cell should start being edited.

Sets the item that is highlighted for feedback.

path

The path of the item to highlight, or None.

pos

Specifies where to drop, relative to the item

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 property::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 model for a IconView. If the self already has a model set, it will remove it before setting the new model. If model is None, then it will unset the old model.

model

The model.

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 selection mode of the self.

mode

The selection mode

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

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

a CellRenderer or None

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, 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

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.

Unselects the row at path.

path

The TreePath to be unselected.

Undoes the effect of enable_model_drag_dest(). Calling this method sets property::IconView::reorderable to false.

Undoes the effect of enable_model_drag_source(). Calling this method sets property::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.

A [keybinding signal][GtkSignalAction] 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.

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

The ::move-cursor signal is a [keybinding signal][GtkSignalAction] 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

A [keybinding signal][GtkSignalAction] 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][GtkSignalAction] 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][GtkSignalAction] 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][GtkSignalAction] 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.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Returns the type identifier of Self.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

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

Performs the conversion.

Performs the conversion.

Returns true if the object is an instance of (can be cast to) T.

Safety Read more

Safety Read more

Safety Read more

Safety Read more

Safety Read more

Safety Read more

Same as connect but takes a SignalId instead of a signal name.

Same as connect_local but takes a SignalId instead of a signal name.

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.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

Returns a SendValue clone of self.

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.