#[repr(transparent)]
pub struct IconView { /* private fields */ }
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 gdk::Paintable representation of the item at @path. This image is used for a drag icon.

path

a TreePath in @self

Returns

a newly-allocated gdk::Paintable of the drag icon.

Turns @self into a drop destination for automatic DND. Calling this method sets 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 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 gtk_icon_view_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

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

cell

Return location the current focus cell

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

Gets information about the item that is highlighted for feedback.

Returns
path

Return location for the path of the highlighted item

pos

Return location for the drop position

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

cell

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

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

The currently used TreeModel

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 gtk_icon_view_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 gtk_tree_row_reference_new().

To free the return value, use g_list_free_full:

⚠️ The following code is in C ⚠️

GtkWidget *icon_view = gtk_icon_view_new ();
// Use icon_view

GList *list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view));

// use list

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

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

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

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 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 gtk_icon_view_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 gtk_tooltip_set_tip_area().

See also gtk_icon_view_set_tooltip_column() for a simpler alternative.

tooltip

a Tooltip

path

a TreePath

cell

a CellRenderer

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

Sets the tip area of @tooltip to be the area covered by the item at @path. See also gtk_icon_view_set_tooltip_column() for a simpler alternative. See also gtk_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 gtk_icon_view_enable_model_drag_dest(). Calling this method sets IconView:reorderable to false.

Undoes the effect of gtk_icon_view_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 gtk_icon_view_new_with_area() a CellAreaBox will be used.

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.

The ::item-activated signal is emitted when the method gtk_icon_view_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]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

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

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

Updates an array of accessible properties. Read more

Updates an array of accessible relations. Read more

Updates an array of accessible states. Read more

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

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

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

Returns the type of the object.

Returns the ObjectClass of the object. Read more

Returns the class of the object.

Returns the class of the object in the given type T. Read more

Returns the interface T of the object. Read more

Similar to Self::set_property but fails instead of panicking.

Sets the property property_name of the object to value value. Read more

Similar to Self::set_property but fails instead of panicking.

Sets the property property_name of the object to value value. Read more

Similar to Self::set_properties but fails instead of panicking.

Sets multiple properties of the object at once. Read more

Similar to Self::set_properties_from_value but fails instead of panicking.

Sets multiple properties of the object at once. Read more

Similar to Self::property but fails instead of panicking.

Gets the property property_name of the object and cast it to the type V. Read more

Similar to Self::property_value but fails instead of panicking.

Gets the property property_name of the object. Read more

Check if the object has a property property_name of the given type_. Read more

Get the type of the property property_name of this object. Read more

Get the ParamSpec of the property property_name of this object.

Return all ParamSpec of the properties of this object.

Freeze all property notifications until the return guard object is dropped. Read more

Set arbitrary data on this object with the given key. Read more

Return previously set arbitrary data of this object with the given key. Read more

Retrieve previously set arbitrary data of this object with the given key. Read more

Set arbitrary data on this object with the given key. Read more

Return previously set arbitrary data of this object with the given key. Read more

Retrieve previously set arbitrary data of this object with the given key. Read more

Block a given signal handler. Read more

Unblock a given signal handler.

Stop emission of the currently emitted signal.

Stop emission of the currently emitted signal by the (possibly detailed) signal name.

Similar to Self::connect but fails instead of panicking.

Connect to the signal signal_name on this object. Read more

Similar to Self::connect_id but fails instead of panicking.

Connect to the signal signal_id on this object. Read more

Similar to Self::connect_local but fails instead of panicking.

Connect to the signal signal_name on this object. Read more

Similar to Self::connect_local_id but fails instead of panicking.

Connect to the signal signal_id on this object. Read more

Similar to Self::connect_unsafe but fails instead of panicking.

Connect to the signal signal_name on this object. Read more

Similar to Self::connect_unsafe_id but fails instead of panicking.

Similar to Self::connect_closure but fails instead of panicking.

Connect a closure to the signal signal_name on this object. Read more

Similar to Self::connect_closure_id but fails instead of panicking.

Connect a closure to the signal signal_id on this object. Read more

Limits the lifetime of closure to the lifetime of the object. When the object’s reference count drops to zero, the closure will be invalidated. An invalidated closure will ignore any calls to invoke_with_values, or invoke when using Rust closures. Read more

Connect to the signal signal_id on this object. Read more

Similar to Self::emit but fails instead of panicking.

Emit signal by signal id. Read more

Similar to Self::emit_with_values but fails instead of panicking.

Same as Self::emit but takes Value for the arguments.

Similar to Self::emit_by_name but fails instead of panicking.

Emit signal by its name. Read more

Similar to Self::emit_by_name_with_values but fails instead of panicking.

Emit signal by its name. Read more

Similar to Self::emit_by_name_with_details but fails instead of panicking.

Emit signal by its name with details. Read more

Similar to Self::emit_by_name_with_details_and_values but fails instead of panicking.

Emit signal by its name with details. Read more

Similar to Self::emit_with_details but fails instead of panicking.

Emit signal by signal id with details. Read more

Similar to Self::emit_with_details_and_values but fails instead of panicking.

Emit signal by signal id with details. Read more

Disconnect a previously connected signal handler.

Connect to the notify signal of the object. Read more

Connect to the notify signal of the object. Read more

Connect to the notify signal of the object. Read more

Notify that the given property has changed its value. Read more

Notify that the given property has changed its value. Read more

Downgrade this object to a weak reference.

Add a callback to be notified when the Object is disposed.

Add a callback to be notified when the Object is disposed. Read more

Bind property source_property on this object to the target_property on the target object. Read more

Returns the strong reference count of this object.

Ensures that the type has been registered with the type system.

The resulting type after obtaining ownership.

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

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

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.