Sets our main struct and passes it to the parent class.
Creates a new #GtkIconView widget
Creates a new #GtkIconView widget using the specified @area to layout cells inside the icons.
Creates a new #GtkIconView widget with the model @model.
A [keybinding signal]GtkSignalAction which gets emitted when the user activates the currently focused item.
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.
The ::move-cursor signal is a [keybinding signal]GtkSignalAction which gets emitted when the user initiates a cursor movement.
A [keybinding signal]GtkSignalAction which gets emitted when the user selects all items.
A [keybinding signal]GtkSignalAction which gets emitted when the user selects the item that is currently focused.
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.
A [keybinding signal]GtkSignalAction which gets emitted when the user unselects all items.
Creates a #cairo_surface_t representation of the item at @path. This image is used for a drag icon.
Turns @icon_view into a drop destination for automatic DND. Calling this method sets #GtkIconView:reorderable to %FALSE.
Turns @icon_view into a drag source for automatic DND. Calling this method sets #GtkIconView:reorderable to %FALSE.
Gets the setting set by gtk_icon_view_set_activate_on_single_click().
Fills the bounding rectangle in widget coordinates for the cell specified by @path and @cell. If @cell is %NULL the main cell area is used.
Returns the value of the ::column-spacing property.
Returns the value of the ::columns property.
Fills in @path and @cell with the current cursor path and cell. If the cursor isn’t currently set, then *@path will be %NULL. If no cell currently has focus, then *@cell will be %NULL.
Determines the destination item for a given position.
Gets information about the item that is highlighted for feedback.
Get the main Gtk struct
Gets the path and cell for the icon at the given position.
Gets the column in which the item @path is currently displayed. Column numbers start at 0.
Returns the value of the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.
Returns the value of the ::item-padding property.
Gets the row in which the item @path is currently displayed. Row numbers start at 0.
Returns the value of the ::item-width property.
Returns the value of the ::margin property.
Returns the column with markup text for @icon_view.
Returns the model the #GtkIconView is based on. Returns %NULL if the model is unset.
Gets the path for the icon at the given position.
Returns the column with pixbufs for @icon_view.
Retrieves whether the user can reorder the list via drag-and-drop. See gtk_icon_view_set_reorderable().
Returns the value of the ::row-spacing property.
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().
Gets the selection mode of the @icon_view.
Returns the value of the ::spacing property.
the main Gtk struct as a void*
Returns the column with text for @icon_view.
Returns the column of @icon_view’s model which is being used for displaying tooltips on @icon_view’s rows.
This function is supposed to be used in a #GtkWidget::query-tooltip signal handler for #GtkIconView. The @x, @y and @keyboard_tip values which are received in the signal handler, should be passed to this function without modification.
Sets @start_path and @end_path to be the first and last visible path. Note that there may be invisible paths in between.
Activates the item determined by @path.
Returns %TRUE if the icon pointed to by @path is currently selected. If @path does not point to a valid location, %FALSE is returned.
Moves the alignments of @icon_view 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.
Selects all the icons. @icon_view must has its selection mode set to #GTK_SELECTION_MULTIPLE.
Selects the row at @path.
Calls a function for each selected icon. Note that the model or selection cannot be modified from within this function.
Causes the #GtkIconView::item-activated signal to be emitted on a single click instead of a double click.
Sets the ::column-spacing property which specifies the space which is inserted between the columns of the icon view.
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.
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 %NULL, 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.
Sets the item that is highlighted for feedback.
Sets the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.
Sets the #GtkIconView:item-padding property which specifies the padding around each of the icon view’s items.
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.
Sets the ::margin property which specifies the space which is inserted at the top, bottom, left and right of the icon view.
Sets the column with markup information for @icon_view 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().
Sets the model for a #GtkIconView. If the @icon_view already has a model set, it will remove it before setting the new model. If @model is %NULL, then it will unset the old model.
Sets the column with pixbufs for @icon_view to be @column. The pixbuf column must be of type #GDK_TYPE_PIXBUF
This function is a convenience function to allow you to reorder models that support the #GtkTreeDragSourceIface and the #GtkTreeDragDestIface. Both #GtkTreeStore and #GtkListStore 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.
Sets the ::row-spacing property which specifies the space which is inserted between the rows of the icon view.
Sets the selection mode of the @icon_view.
Sets the ::spacing property which specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.
Sets the column with text for @icon_view to be @column. The text column must be of type #G_TYPE_STRING.
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().
If you only plan to have simple (text-only) tooltips on full items, you can use this function to have #GtkIconView handle these automatically for you. @column should be set to the column in @icon_view’s model containing the tooltip texts, or -1 to disable this feature.
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().
Unselects all the icons.
Unselects the row at @path.
Undoes the effect of gtk_icon_view_enable_model_drag_dest(). Calling this method sets #GtkIconView:reorderable to %FALSE.
Undoes the effect of gtk_icon_view_enable_model_drag_source(). Calling this method sets #GtkIconView:reorderable to %FALSE.
the main Gtk struct
the main Gtk struct
Get the main Gtk struct
the main Gtk struct as a void*
Obtains the current default reading direction.
Sets the default reading direction for widgets.
Enable or disable an action installed with gtk_widget_class_install_action().
For widgets that can be “activated” (buttons, menu items, etc.) this function activates them.
Looks up the action in the action groups associated with @widget and its ancestors, and activates it.
Activates the default.activate action from @widget.
Adds @controller to @widget so that it will receive events.
Adds a style class to @widget.
Adds a widget to the list of mnemonic labels for this widget.
Queues an animation frame update and adds a callback to be called before each frame.
This function is only used by GtkWidget subclasses, to assign a size, position and (optionally) baseline to their child widgets.
Called by widgets as the user moves around the window using keyboard shortcuts.
Computes the bounds for @widget in the coordinate space of @target.
Computes whether a container should give this widget extra space when possible.
Translates the given @point in @widget's coordinates to coordinates relative to @target’s coordinate system.
Computes a matrix suitable to describe a transformation from @widget's coordinate system into @target's coordinate system.
Tests if the point at (@x, @y) is contained in @widget.
Creates a new PangoContext with the appropriate font map, font options, font description, and base direction for drawing text for this widget.
Creates a new PangoLayout with the appropriate font map, font description, and base direction for drawing text for this widget.
Checks to see if a drag movement has passed the GTK drag threshold.
Notifies the user about an input-related error on this widget.
Returns the baseline that has currently been allocated to @widget.
Returns the height that has currently been allocated to @widget.
Returns the width that has currently been allocated to @widget.
Retrieves the widget’s allocation.
Gets the first ancestor of @widget with type @widget_type.
Determines whether the input focus can enter @widget or any of its children.
Queries whether @widget can be the target of pointer events.
Gets the value set with gtk_widget_set_child_visible().
Gets the clipboard object for @widget.
Returns the list of style classes applied to @widget.
Returns the CSS name that is used for @self.
Queries the cursor set on @widget.
Gets the reading direction for a particular widget.
Get the GdkDisplay for the toplevel window associated with this widget.
Returns the widgets first child.
Returns the current focus child of @widget.
Returns whether the widget should grab focus when it is clicked with the mouse.
Determines whether @widget can own the input focus.
Gets the font map of @widget.
Returns the cairo_font_options_t used for Pango rendering.
Obtains the frame clock for a widget.
Gets the horizontal alignment of @widget.
Returns the current value of the has-tooltip property.
Returns the content height of the widget.
Gets whether the widget would like any available extra horizontal space.
Gets whether gtk_widget_set_hexpand() has been used to explicitly set the expand flag on this widget.
Returns the widgets last child.
Retrieves the layout manager used by @widget
Whether the widget is mapped.
Gets the bottom margin of @widget.
Gets the end margin of @widget.
Gets the start margin of @widget.
Gets the top margin of @widget.
Retrieves the name of a widget.
Returns the GtkNative widget that contains @widget.
Returns the widgets next sibling.
#Fetches the requested opacity for this widget.
Returns the widgets overflow value.
Gets a PangoContext with the appropriate font map, font description, and base direction for this widget.
Returns the parent widget of @widget.
Retrieves the minimum and natural size of a widget, taking into account the widget’s preference for height-for-width management.
Returns the widgets previous sibling.
Gets the primary clipboard of @widget.
Determines whether @widget is realized.
Determines whether @widget is always treated as the default widget within its toplevel when it has the focus, even if another widget is the default.
Gets whether the widget prefers a height-for-width layout or a width-for-height layout.
Returns the GtkRoot widget of @widget.
Retrieves the internal scale factor that maps from window coordinates to the actual device pixels.
Returns the widget’s sensitivity.
Gets the settings object holding the settings used for this widget.
Returns the content width or height of the widget.
Gets the size request that was explicitly set for the widget using gtk_widget_set_size_request().
Returns the widget state as a flag set.
Returns the style context associated to @widget.
Fetch an object build from the template XML for @widget_type in this @widget instance.
Gets the contents of the tooltip for @widget.
Gets the contents of the tooltip for @widget.
Gets the vertical alignment of @widget.
Gets whether the widget would like any available extra vertical space.
Gets whether gtk_widget_set_vexpand() has been used to explicitly set the expand flag on this widget.
Determines whether the widget is visible.
Returns the content width of the widget.
Causes @widget to have the keyboard focus for the GtkWindow it's inside.
Returns whether @css_class is currently applied to @widget.
Determines whether @widget is the current default widget within its toplevel.
Determines if the widget has the global input focus.
Determines if the widget should show a visible indication that it has the global input focus.
Reverses the effects of gtk_widget_show().
Returns whether the widget is currently being destroyed.
Creates and initializes child widgets defined in templates.
Inserts @group into @widget.
Inserts @widget into the child widget list of @parent.
Inserts @widget into the child widget list of @parent.
Determines whether @widget is somewhere inside @ancestor, possibly with intermediate containers.
Determines whether @widget can be drawn to.
Determines if the widget is the focus widget within its toplevel.
Returns the widget’s effective sensitivity.
Determines whether the widget and all its parents are marked as visible.
Emits the ::keynav-failed signal on the widget.
Returns the widgets for which this widget is the target of a mnemonic.
Causes a widget to be mapped if it isn’t already.
Measures @widget in the orientation @orientation and for the given @for_size.
Emits the GtkWidget::mnemonic-activate signal.
Returns a GListModel to track the children of @widget.
Returns a GListModel to track the [class@Gtk.EventController]s of @widget.
Finds the descendant of @widget closest to the screen at the point (@x, @y).
Flags the widget for a rerun of the GtkWidgetClass::size_allocate function.
Schedules this widget to be redrawn in paint phase of the current or the next frame.
Flags a widget to have its size renegotiated.
Creates the GDK resources associated with a widget.
Removes @controller from @widget, so that it doesn't process events anymore.
Removes a style from @widget.
Removes a widget from the list of mnemonic labels for this widget.
Removes a tick callback previously registered with gtk_widget_add_tick_callback().
Specifies whether the input focus can enter the widget or any of its children.
Sets whether @widget can be the target of pointer events.
Sets whether @widget should be mapped along with its parent.
Will clear all style classes applied to @widget and replace them with @classes.
Sets the cursor to be shown when pointer devices point towards @widget.
Sets a named cursor to be shown when pointer devices point towards @widget.
Sets the reading direction on a particular widget.
Set @child as the current focus child of @widget.
Sets whether the widget should grab focus when it is clicked with the mouse.
Specifies whether @widget can own the input focus.
Sets the font map to use for Pango rendering.
Sets the cairo_font_options_t used for Pango rendering in this widget.
Sets the horizontal alignment of @widget.
Sets the has-tooltip property on @widget to @has_tooltip.
Sets whether the widget would like any available extra horizontal space.
Sets whether the hexpand flag will be used.
Sets the layout manager delegate instance that provides an implementation for measuring and allocating the children of @widget.
Sets the bottom margin of @widget.
Sets the end margin of @widget.
Sets the start margin of @widget.
Sets the top margin of @widget.
Sets a widgets name.
Request the @widget to be rendered partially transparent.
Sets how @widget treats content that is drawn outside the widget's content area.
Sets @parent as the parent widget of @widget.
Specifies whether @widget will be treated as the default widget within its toplevel when it has the focus, even if another widget is the default.
Sets the sensitivity of a widget.
Sets the minimum size of a widget.
Turns on flag values in the current widget state.
Sets @markup as the contents of the tooltip, which is marked up with Pango markup.
Sets @text as the contents of the tooltip.
Sets the vertical alignment of @widget.
Sets whether the widget would like any available extra vertical space.
Sets whether the vexpand flag will be used.
Sets the visibility state of @widget.
Returns whether @widget should contribute to the measuring and allocation of its parent.
Flags a widget to be displayed.
Allocates widget with a transformation that translates the origin to the position in @allocation.
Snapshot the a child of @widget.
Translate coordinates relative to @src_widget’s allocation to coordinates relative to @dest_widget’s allocations.
Triggers a tooltip query on the display where the toplevel of @widget is located.
Causes a widget to be unmapped if it’s currently mapped.
Dissociate @widget from its parent.
Causes a widget to be unrealized (frees all GDK resources associated with the widget).
Turns off flag values for the current widget state.
Signals that all holders of a reference to the widget should release the reference that they hold.
Emitted when the text direction of a widget changes.
Emitted when @widget is hidden.
Emitted if keyboard navigation fails.
Emitted when @widget is going to be mapped.
Emitted when a widget is activated via a mnemonic.
Emitted when the focus is moved.
Emitted when the widgets tooltip is about to be shown.
Emitted when @widget is associated with a GdkSurface.
Emitted when @widget is shown.
Emitted when the widget state changes.
Emitted when @widget is going to be unmapped.
Emitted when the GdkSurface associated with @widget is destroyed.
Get the main Gtk struct
the main Gtk struct as a void*
Adds an attribute mapping to the list in @cell_layout.
Unsets all the mappings on all renderers on @cell_layout and removes all renderers from @cell_layout.
Clears all existing attributes previously set with gtk_cell_layout_set_attributes().
Returns the underlying #GtkCellArea which might be @cell_layout if called on a #GtkCellArea or might be %NULL if no #GtkCellArea is used by @cell_layout.
Returns the cell renderers which have been added to @cell_layout.
Adds the @cell to the end of @cell_layout. If @expand is %FALSE, then the @cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which @expand is %TRUE.
Packs the @cell into the beginning of @cell_layout. If @expand is %FALSE, then the @cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which @expand is %TRUE.
Re-inserts @cell at @position.
Sets the #GtkCellLayoutDataFunc to use for @cell_layout.
Get the main Gtk struct
the main Gtk struct as a void*
Returns the size of a non-scrolling border around the outside of the scrollable.
Retrieves the GtkAdjustment used for horizontal scrolling.
Gets the horizontal GtkScrollablePolicy.
Retrieves the GtkAdjustment used for vertical scrolling.
Gets the vertical GtkScrollablePolicy.
Sets the horizontal adjustment of the GtkScrollable.
Sets the GtkScrollablePolicy.
Sets the vertical adjustment of the GtkScrollable.
Sets the GtkScrollablePolicy.
GtkIconView is a widget which displays data in a grid of icons.
GtkIconView provides an alternative view on a GtkTreeModel. It displays the model as a grid of icons with labels. Like [class@Gtk.TreeView], it allows to select one or multiple items (depending on the selection mode, see [method@Gtk.IconView.set_selection_mode]). In addition to selection with the arrow keys, GtkIconView 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), #GtkIconView will only display the first level of the tree and ignore the tree’s branches.
CSS nodes
GtkIconView has a single CSS node with name iconview and style class .view. For rubberband selection, a subnode with name rubberband is used.