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]GtkBindingSignal 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]GtkBindingSignal which gets emitted when the user initiates a cursor movement.
A [keybinding signal]GtkBindingSignal which gets emitted when the user selects all items.
A [keybinding signal]GtkBindingSignal 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]GtkBindingSignal 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]GtkBindingSignal which gets emitted when the user unselects all items.
Converts widget coordinates to coordinates for the bin_window, as expected by e.g. gtk_icon_view_get_path_at_pos().
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
Finds the path at the point (@x, @y), relative to bin_window coordinates. In contrast to gtk_icon_view_get_path_at_pos(), this function also obtains the cell at the specified position. The returned path should be freed with gtk_tree_path_free(). See gtk_icon_view_convert_widget_to_bin_window_coords() for converting widget coordinates to bin_window coordinates.
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.
Finds the path at the point (@x, @y), relative to bin_window coordinates. See gtk_icon_view_get_item_at_pos(), if you are also interested in the cell at the specified position. See gtk_icon_view_convert_widget_to_bin_window_coords() for converting widget coordinates to bin_window coordinates.
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*
Removes all widgets from the container
Adds @widget to @container. Typically used for simple containers such as #GtkWindow, #GtkFrame, or #GtkButton; for more complicated layout containers such as #GtkBox or #GtkGrid, this function will pick default packing parameters that may not be correct. So consider functions such as gtk_box_pack_start() and gtk_grid_attach() as an alternative to gtk_container_add() in those cases. A widget may be added to only one container at a time; you can’t place the same widget inside two different containers.
Gets the value of a child property for @child and @container.
Gets the values of one or more child properties for @child and @container.
Emits a #GtkWidget::child-notify signal for the [child property][child-properties] @child_property on the child.
Emits a #GtkWidget::child-notify signal for the [child property][child-properties] specified by @pspec on the child.
Sets a child property for @child and @container.
Sets one or more child properties for @child and @container.
Returns the type of the children supported by the container.
Invokes @callback on each direct child of @container, including children that are considered “internal” (implementation details of the container). “Internal” children generally weren’t added by the user of the container, but were added by the container implementation itself.
Invokes @callback on each non-internal child of @container. See gtk_container_forall() for details on what constitutes an “internal” child. For all practical purposes, this function should iterate over precisely those child widgets that were added to the container by the application with explicit add() calls.
Retrieves the border width of the container. See gtk_container_set_border_width().
Returns the container’s non-internal children. See gtk_container_forall() for details on what constitutes an "internal" child.
Retrieves the focus chain of the container, if one has been set explicitly. If no focus chain has been explicitly set, GTK+ computes the focus chain based on the positions of the children. In that case, GTK+ stores %NULL in @focusable_widgets and returns %FALSE.
Returns the current focus child widget inside @container. This is not the currently focused widget. That can be obtained by calling gtk_window_get_focus().
Retrieves the horizontal focus adjustment for the container. See gtk_container_set_focus_hadjustment ().
Retrieves the vertical focus adjustment for the container. See gtk_container_set_focus_vadjustment().
Returns a newly created widget path representing all the widget hierarchy from the toplevel down to and including @child.
Returns the resize mode for the container. See gtk_container_set_resize_mode ().
When a container receives a call to the draw function, it must send synthetic #GtkWidget::draw calls to all children that don’t have their own #GdkWindows. This function provides a convenient way of doing this. A container, when it receives a call to its #GtkWidget::draw function, calls gtk_container_propagate_draw() once for each child, passing in the @cr the container received.
Removes @widget from @container. @widget must be inside @container. Note that @container will own a reference to @widget, and that this may be the last reference held; so removing a widget from its container can destroy that widget. If you want to use @widget again, you need to add a reference to it before removing it from a container, using g_object_ref(). If you don’t want to use @widget again it’s usually more efficient to simply destroy it directly using gtk_widget_destroy() since this will remove it from the container and help break any circular reference count cycles.
Sets the border width of the container.
Sets a focus chain, overriding the one computed automatically by GTK+.
Sets, or unsets if @child is %NULL, the focused child of @container.
Hooks up an adjustment to focus handling in a container, so when a child of the container is focused, the adjustment is scrolled to show that widget. This function sets the horizontal alignment. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment and gtk_container_set_focus_vadjustment() for setting the vertical adjustment.
Hooks up an adjustment to focus handling in a container, so when a child of the container is focused, the adjustment is scrolled to show that widget. This function sets the vertical alignment. See gtk_scrolled_window_get_vadjustment() for a typical way of obtaining the adjustment and gtk_container_set_focus_hadjustment() for setting the horizontal adjustment.
Sets the @reallocate_redraws flag of the container to the given value.
Sets the resize mode for the container.
Removes a focus chain explicitly set with gtk_container_set_focus_chain().
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. An example for this would be treeview headers. GTK+ can use this information to display overlayed graphics, like the overshoot indication, at the right position.
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 to determine whether horizontal scrolling should start below the minimum width or below the natural width.
Sets the vertical adjustment of the #GtkScrollable.
Sets the #GtkScrollablePolicy to determine whether vertical scrolling should start below the minimum height or below the natural height.
#GtkIconView provides an alternative view on a #GtkTreeModel. It displays the model as a grid of icons with labels. Like #GtkTreeView, it allows to select one or multiple items (depending on the selection mode, see gtk_icon_view_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
|[<!-- language="plain" --> iconview.view ╰── rubberband ]|
GtkIconView has a single CSS node with name iconview and style class .view. For rubberband selection, a subnode with name rubberband is used.