ExoIconView

ExoIconView — A widget which displays a list of icons in a grid

Functions

GtkWidget * exo_icon_view_new ()
GtkWidget * exo_icon_view_new_with_model ()
GtkTreeModel * exo_icon_view_get_model ()
void exo_icon_view_set_model ()
GtkOrientation exo_icon_view_get_orientation ()
void exo_icon_view_set_orientation ()
gint exo_icon_view_get_columns ()
void exo_icon_view_set_columns ()
gint exo_icon_view_get_item_width ()
void exo_icon_view_set_item_width ()
gint exo_icon_view_get_spacing ()
void exo_icon_view_set_spacing ()
gint exo_icon_view_get_row_spacing ()
void exo_icon_view_set_row_spacing ()
gint exo_icon_view_get_column_spacing ()
void exo_icon_view_set_column_spacing ()
gint exo_icon_view_get_margin ()
void exo_icon_view_set_margin ()
GtkSelectionMode exo_icon_view_get_selection_mode ()
void exo_icon_view_set_selection_mode ()
ExoIconViewLayoutMode exo_icon_view_get_layout_mode ()
void exo_icon_view_set_layout_mode ()
gboolean exo_icon_view_get_single_click ()
void exo_icon_view_set_single_click ()
guint exo_icon_view_get_single_click_timeout ()
void exo_icon_view_set_single_click_timeout ()
void exo_icon_view_widget_to_icon_coords ()
void exo_icon_view_icon_to_widget_coords ()
GtkTreePath * exo_icon_view_get_path_at_pos ()
gboolean exo_icon_view_get_item_at_pos ()
gboolean exo_icon_view_get_visible_range ()
void (*ExoIconViewForeachFunc) ()
void exo_icon_view_selected_foreach ()
void exo_icon_view_select_path ()
void exo_icon_view_unselect_path ()
gboolean exo_icon_view_path_is_selected ()
gint exo_icon_view_get_item_column ()
gint exo_icon_view_get_item_row ()
GList * exo_icon_view_get_selected_items ()
void exo_icon_view_select_all ()
void exo_icon_view_unselect_all ()
void exo_icon_view_selection_invert ()
void exo_icon_view_item_activated ()
gboolean exo_icon_view_get_cursor ()
void exo_icon_view_set_cursor ()
void exo_icon_view_scroll_to_path ()
void exo_icon_view_enable_model_drag_source ()
void exo_icon_view_enable_model_drag_dest ()
void exo_icon_view_unset_model_drag_source ()
void exo_icon_view_unset_model_drag_dest ()
void exo_icon_view_set_reorderable ()
gboolean exo_icon_view_get_reorderable ()
void exo_icon_view_set_drag_dest_item ()
void exo_icon_view_get_drag_dest_item ()
gboolean exo_icon_view_get_dest_item_at_pos ()
cairo_surface_t * exo_icon_view_create_drag_icon ()
gboolean (*ExoIconViewSearchEqualFunc) ()
void (*ExoIconViewSearchPositionFunc) ()
gboolean exo_icon_view_get_enable_search ()
void exo_icon_view_set_enable_search ()
gint exo_icon_view_get_search_column ()
void exo_icon_view_set_search_column ()
ExoIconViewSearchEqualFunc exo_icon_view_get_search_equal_func ()
void exo_icon_view_set_search_equal_func ()
ExoIconViewSearchPositionFunc exo_icon_view_get_search_position_func ()
void exo_icon_view_set_search_position_func ()

Properties

gint column-spacing Read / Write
gint columns Read / Write
gboolean enable-search Read / Write
gint icon-column Read / Write
gint item-width Read / Write
ExoIconViewLayoutMode layout-mode Read / Write
gint margin Read / Write
gint markup-column Read / Write
GtkTreeModel * model Read / Write
GtkOrientation orientation Read / Write
gint pixbuf-column Read / Write
gboolean reorderable Read / Write
gint row-spacing Read / Write
gint search-column Read / Write
GtkSelectionMode selection-mode Read / Write
gboolean single-click Read / Write
guint single-click-timeout Read / Write
gint spacing Read / Write
gint text-column Read / Write

Signals

gboolean activate-cursor-item Action
void item-activated Run Last
gboolean move-cursor Action
void select-all Action
void select-cursor-item Action
void selection-changed Run First
void set-scroll-adjustments Run Last
gboolean start-interactive-search Action
void toggle-cursor-item Action
void unselect-all Action

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkObject
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── ExoIconView

Implemented Interfaces

ExoIconView implements AtkImplementorIface, GtkBuildable and GtkCellLayout.

Includes

#include <exo/exo.h>

Description

ExoIconView provides an alternative view on a list model. 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 exo_icon_view_set_selection_mode()). In addition to selection with the arrow keys, ExoIconView supports rubberband selection, which is controlled by dragging the pointer.

Functions

exo_icon_view_new ()

GtkWidget *
exo_icon_view_new (void);

Creates a new ExoIconView widget

Returns

A newly created ExoIconView widget


exo_icon_view_new_with_model ()

GtkWidget *
exo_icon_view_new_with_model (GtkTreeModel *model);

Creates a new ExoIconView widget with the model model .

Parameters

model

The model.

 

Returns

A newly created ExoIconView widget.


exo_icon_view_get_model ()

GtkTreeModel *
exo_icon_view_get_model (const ExoIconView *icon_view);

Returns the model the ExoIconView is based on. Returns NULL if the model is unset.

Parameters

icon_view

a ExoIconView

 

Returns

A GtkTreeModel, or NULL if none is currently being used.


exo_icon_view_set_model ()

void
exo_icon_view_set_model (ExoIconView *icon_view,
                         GtkTreeModel *model);

Sets the model for a ExoIconView. 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.

Parameters

icon_view

A ExoIconView.

 

model

The model.

 

exo_icon_view_get_orientation ()

GtkOrientation
exo_icon_view_get_orientation (const ExoIconView *icon_view);

Returns the value of the ::orientation property which determines whether the labels are drawn beside the icons instead of below.

Parameters

icon_view

a ExoIconView

 

Returns

the relative position of texts and icons

Since: 0.3.1


exo_icon_view_set_orientation ()

void
exo_icon_view_set_orientation (ExoIconView *icon_view,
                               GtkOrientation orientation);

Sets the ::orientation property which determines whether the labels are drawn beside the icons instead of below.

Parameters

icon_view

a ExoIconView

 

orientation

the relative position of texts and icons

 

Since: 0.3.1


exo_icon_view_get_columns ()

gint
exo_icon_view_get_columns (const ExoIconView *icon_view);

Returns the value of the ::columns property.

Parameters

icon_view

a ExoIconView

 

Returns

the number of columns, or -1


exo_icon_view_set_columns ()

void
exo_icon_view_set_columns (ExoIconView *icon_view,
                           gint columns);

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.

Parameters

icon_view

a ExoIconView

 

columns

the number of columns

 

Since: 0.3.1


exo_icon_view_get_item_width ()

gint
exo_icon_view_get_item_width (const ExoIconView *icon_view);

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

Parameters

icon_view

a ExoIconView

 

Returns

the width of a single item, or -1

Since: 0.3.1


exo_icon_view_set_item_width ()

void
exo_icon_view_set_item_width (ExoIconView *icon_view,
                              gint item_width);

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.

Parameters

icon_view

a ExoIconView

 

item_width

the width for each item

 

Since: 0.3.1


exo_icon_view_get_spacing ()

gint
exo_icon_view_get_spacing (const ExoIconView *icon_view);

Returns the value of the ::spacing property.

Parameters

icon_view

a ExoIconView

 

Returns

the space between cells

Since: 0.3.1


exo_icon_view_set_spacing ()

void
exo_icon_view_set_spacing (ExoIconView *icon_view,
                           gint 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.

Parameters

icon_view

a ExoIconView

 

spacing

the spacing

 

Since: 0.3.1


exo_icon_view_get_row_spacing ()

gint
exo_icon_view_get_row_spacing (const ExoIconView *icon_view);

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

Parameters

icon_view

a ExoIconView

 

Returns

the space between rows

Since: 0.3.1


exo_icon_view_set_row_spacing ()

void
exo_icon_view_set_row_spacing (ExoIconView *icon_view,
                               gint row_spacing);

Sets the ::row-spacing property which specifies the space which is inserted between the rows of the icon view.

Parameters

icon_view

a ExoIconView

 

row_spacing

the row spacing

 

Since: 0.3.1


exo_icon_view_get_column_spacing ()

gint
exo_icon_view_get_column_spacing (const ExoIconView *icon_view);

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

Parameters

icon_view

a ExoIconView

 

Returns

the space between columns

Since: 0.3.1


exo_icon_view_set_column_spacing ()

void
exo_icon_view_set_column_spacing (ExoIconView *icon_view,
                                  gint column_spacing);

Sets the ::column-spacing property which specifies the space which is inserted between the columns of the icon view.

Parameters

icon_view

a ExoIconView

 

column_spacing

the column spacing

 

Since: 0.3.1


exo_icon_view_get_margin ()

gint
exo_icon_view_get_margin (const ExoIconView *icon_view);

Returns the value of the ::margin property.

Parameters

icon_view

a ExoIconView

 

Returns

the space at the borders

Since: 0.3.1


exo_icon_view_set_margin ()

void
exo_icon_view_set_margin (ExoIconView *icon_view,
                          gint margin);

Sets the ::margin property which specifies the space which is inserted at the top, bottom, left and right of the icon view.

Parameters

icon_view

a ExoIconView

 

margin

the margin

 

Since: 0.3.1


exo_icon_view_get_selection_mode ()

GtkSelectionMode
exo_icon_view_get_selection_mode (const ExoIconView *icon_view);

Gets the selection mode of the icon_view .

Parameters

icon_view

A ExoIconView.

 

Returns

the current selection mode


exo_icon_view_set_selection_mode ()

void
exo_icon_view_set_selection_mode (ExoIconView *icon_view,
                                  GtkSelectionMode mode);

Sets the selection mode of the icon_view .

Parameters

icon_view

A ExoIconView.

 

mode

The selection mode

 

exo_icon_view_get_layout_mode ()

ExoIconViewLayoutMode
exo_icon_view_get_layout_mode (const ExoIconView *icon_view);

Returns the ExoIconViewLayoutMode used to layout the items in the icon_view .

Parameters

icon_view

A ExoIconView.

 

Returns

the layout mode of icon_view .

Since: 0.3.1.5


exo_icon_view_set_layout_mode ()

void
exo_icon_view_set_layout_mode (ExoIconView *icon_view,
                               ExoIconViewLayoutMode layout_mode);

Sets the layout mode of icon_view to layout_mode .

Parameters

icon_view

a ExoIconView.

 

layout_mode

the new ExoIconViewLayoutMode for icon_view .

 

Since: 0.3.1.5


exo_icon_view_get_single_click ()

gboolean
exo_icon_view_get_single_click (const ExoIconView *icon_view);

Returns TRUE if icon_view is currently in single click mode, else FALSE will be returned.

Parameters

icon_view

a ExoIconView.

 

Returns

whether icon_view is currently in single click mode.

Since: 0.3.1.3


exo_icon_view_set_single_click ()

void
exo_icon_view_set_single_click (ExoIconView *icon_view,
                                gboolean single_click);

If single_click is TRUE, icon_view will be in single click mode afterwards, else icon_view will be in double click mode.

Parameters

icon_view

a ExoIconView.

 

single_click

TRUE for single click, FALSE for double click mode.

 

Since: 0.3.1.3


exo_icon_view_get_single_click_timeout ()

guint
exo_icon_view_get_single_click_timeout
                               (const ExoIconView *icon_view);

Returns the amount of time in milliseconds after which the item under the mouse cursor will be selected automatically in single click mode. A value of 0 means that the behavior is disabled and the user must alter the selection manually.

Parameters

icon_view

a ExoIconView.

 

Returns

the single click autoselect timeout or 0 if the behavior is disabled.

Since: 0.3.1.5


exo_icon_view_set_single_click_timeout ()

void
exo_icon_view_set_single_click_timeout
                               (ExoIconView *icon_view,
                                guint single_click_timeout);

If single_click_timeout is a value greater than zero, it specifies the amount of time in milliseconds after which the item under the mouse cursor will be selected automatically in single click mode. A value of 0 for single_click_timeout disables the autoselection for icon_view .

This setting does not have any effect unless the icon_view is in single-click mode, see exo_icon_view_set_single_click().

Parameters

icon_view

a ExoIconView.

 

single_click_timeout

the new timeout or 0 to disable.

 

Since: 0.3.1.5


exo_icon_view_widget_to_icon_coords ()

void
exo_icon_view_widget_to_icon_coords (const ExoIconView *icon_view,
                                     gint wx,
                                     gint wy,
                                     gint *ix,
                                     gint *iy);

Converts widget coordinates to coordinates for the icon window (the full scrollable area of the icon view).

Parameters

icon_view

a ExoIconView.

 

wx

widget x coordinate.

 

wy

widget y coordinate.

 

ix

return location for icon x coordinate or NULL.

 

iy

return location for icon y coordinate or NULL.

 

exo_icon_view_icon_to_widget_coords ()

void
exo_icon_view_icon_to_widget_coords (const ExoIconView *icon_view,
                                     gint ix,
                                     gint iy,
                                     gint *wx,
                                     gint *wy);

Converts icon view coordinates (coordinates in full scrollable area of the icon view) to widget coordinates.

Parameters

icon_view

a ExoIconView.

 

ix

icon x coordinate.

 

iy

icon y coordinate.

 

wx

return location for widget x coordinate or NULL.

 

wy

return location for widget y coordinate or NULL.

 

exo_icon_view_get_path_at_pos ()

GtkTreePath *
exo_icon_view_get_path_at_pos (const ExoIconView *icon_view,
                               gint x,
                               gint y);

Finds the path at the point (x , y ), relative to widget coordinates. See exo_icon_view_get_item_at_pos(), if you are also interested in the cell at the specified position.

Parameters

icon_view

A ExoIconView.

 

x

The x position to be identified

 

y

The y position to be identified

 

Returns

The GtkTreePath corresponding to the icon or NULL if no icon exists at that position.


exo_icon_view_get_item_at_pos ()

gboolean
exo_icon_view_get_item_at_pos (const ExoIconView *icon_view,
                               gint x,
                               gint y,
                               GtkTreePath **path,
                               GtkCellRenderer **cell);

Finds the path at the point (x , y ), relative to widget coordinates. In contrast to exo_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().

Parameters

icon_view

A ExoIconView.

 

x

The x position to be identified

 

y

The y position to be identified

 

path

Return location for the path, or NULL

 

cell

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

 

Returns

TRUE if an item exists at the specified position

Since: 0.3.1


exo_icon_view_get_visible_range ()

gboolean
exo_icon_view_get_visible_range (const ExoIconView *icon_view,
                                 GtkTreePath **start_path,
                                 GtkTreePath **end_path);

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.

Parameters

icon_view

A ExoIconView

 

start_path

Return location for start of region, or NULL

 

end_path

Return location for end of region, or NULL

 

Returns

TRUE, if valid paths were placed in start_path and end_path

Since: 0.3.1


ExoIconViewForeachFunc ()

void
(*ExoIconViewForeachFunc) (ExoIconView *icon_view,
                           GtkTreePath *path,
                           gpointer user_data);

Callback function prototype, invoked for every selected path in the icon_view . See exo_icon_view_selected_foreach() for details.

Parameters

icon_view

an ExoIconView.

 

path

the current path.

 

user_data

the user data supplied to exo_icon_view_selected_foreach().

 

exo_icon_view_selected_foreach ()

void
exo_icon_view_selected_foreach (ExoIconView *icon_view,
                                ExoIconViewForeachFunc func,
                                gpointer data);

Calls a function for each selected icon. Note that the model or selection cannot be modified from within this function.

Parameters

icon_view

A ExoIconView.

 

func

The funcion to call for each selected icon.

 

data

User data to pass to the function.

 

exo_icon_view_select_path ()

void
exo_icon_view_select_path (ExoIconView *icon_view,
                           GtkTreePath *path);

Selects the row at path .

Parameters

icon_view

A ExoIconView.

 

path

The GtkTreePath to be selected.

 

exo_icon_view_unselect_path ()

void
exo_icon_view_unselect_path (ExoIconView *icon_view,
                             GtkTreePath *path);

Unselects the row at path .

Parameters

icon_view

A ExoIconView.

 

path

The GtkTreePath to be unselected.

 

exo_icon_view_path_is_selected ()

gboolean
exo_icon_view_path_is_selected (const ExoIconView *icon_view,
                                GtkTreePath *path);

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

Parameters

icon_view

A ExoIconView.

 

path

A GtkTreePath to check selection on.

 

Returns

TRUE if path is selected.


exo_icon_view_get_item_column ()

gint
exo_icon_view_get_item_column (ExoIconView *icon_view,
                               GtkTreePath *path);

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

Parameters

icon_view

A ExoIconView.

 

path

The GtkTreePath of the item.

 

Returns

The column in which the item is displayed

Since: 0.7.1


exo_icon_view_get_item_row ()

gint
exo_icon_view_get_item_row (ExoIconView *icon_view,
                            GtkTreePath *path);

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

Parameters

icon_view

A ExoIconView.

 

path

The GtkTreePath of the item.

 

Returns

The row in which the item is displayed

Since: 0.7.1


exo_icon_view_get_selected_items ()

GList *
exo_icon_view_get_selected_items (const ExoIconView *icon_view);

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:

1
2
g_list_foreach (list, gtk_tree_path_free, NULL);
g_list_free (list);

Parameters

icon_view

A ExoIconView.

 

Returns

A GList containing a GtkTreePath for each selected row.


exo_icon_view_select_all ()

void
exo_icon_view_select_all (ExoIconView *icon_view);

Selects all the icons. icon_view must has its selection mode set to GTK_SELECTION_MULTIPLE.

Parameters

icon_view

A ExoIconView.

 

exo_icon_view_unselect_all ()

void
exo_icon_view_unselect_all (ExoIconView *icon_view);

Unselects all the icons.

Parameters

icon_view

A ExoIconView.

 

exo_icon_view_selection_invert ()

void
exo_icon_view_selection_invert (ExoIconView *icon_view);

Selects all the icons that are currently not selected. icon_view must has its selection mode set to GTK_SELECTION_MULTIPLE.

Parameters

icon_view

A ExoIconView.

 

exo_icon_view_item_activated ()

void
exo_icon_view_item_activated (ExoIconView *icon_view,
                              GtkTreePath *path);

Activates the item determined by path .

Parameters

icon_view

a ExoIconView

 

path

the GtkTreePath to be activated

 

exo_icon_view_get_cursor ()

gboolean
exo_icon_view_get_cursor (const ExoIconView *icon_view,
                          GtkTreePath **path,
                          GtkCellRenderer **cell);

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.

The returned GtkTreePath must be freed with gtk_tree_path_free().

Parameters

icon_view

A ExoIconView

 

path

Return location for the current cursor path, or NULL

 

cell

Return location the current focus cell, or NULL

 

Returns

TRUE if the cursor is set.

Since: 0.3.1


exo_icon_view_set_cursor ()

void
exo_icon_view_set_cursor (ExoIconView *icon_view,
                          GtkTreePath *path,
                          GtkCellRenderer *cell,
                          gboolean start_editing);

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.

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.

Parameters

icon_view

a ExoIconView

 

path

a GtkTreePath

 

cell

a GtkCellRenderer or NULL

 

start_editing

TRUE if the specified cell should start being edited.

 

Since: 0.3.1


exo_icon_view_scroll_to_path ()

void
exo_icon_view_scroll_to_path (ExoIconView *icon_view,
                              GtkTreePath *path,
                              gboolean use_align,
                              gfloat row_align,
                              gfloat col_align);

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.

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 tree_view is realized, the centered path will be modified to reflect this change.

Parameters

icon_view

A ExoIconView.

 

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

 

Since: 0.3.1


exo_icon_view_enable_model_drag_source ()

void
exo_icon_view_enable_model_drag_source
                               (ExoIconView *icon_view,
                                GdkModifierType start_button_mask,
                                const GtkTargetEntry *targets,
                                gint n_targets,
                                GdkDragAction actions);

Turns icon_view into a drag source for automatic DND.

Parameters

icon_view

a GtkIconTreeView

 

start_button_mask

Mask of allowed buttons to start drag

 

targets

the table of targets that the drag will support

 

n_targets

the number of items in targets

 

actions

the bitmask of possible actions for a drag from this widget

 

Since: 0.3.1


exo_icon_view_enable_model_drag_dest ()

void
exo_icon_view_enable_model_drag_dest (ExoIconView *icon_view,
                                      const GtkTargetEntry *targets,
                                      gint n_targets,
                                      GdkDragAction actions);

Turns icon_view into a drop destination for automatic DND.

Parameters

icon_view

a ExoIconView

 

targets

the table of targets that the drag will support

 

n_targets

the number of items in targets

 

actions

the bitmask of possible actions for a drag from this widget

 

Since: 0.3.1


exo_icon_view_unset_model_drag_source ()

void
exo_icon_view_unset_model_drag_source (ExoIconView *icon_view);

Undoes the effect of exo_icon_view_enable_model_drag_source().

Parameters

icon_view

a ExoIconView

 

Since: 0.3.1


exo_icon_view_unset_model_drag_dest ()

void
exo_icon_view_unset_model_drag_dest (ExoIconView *icon_view);

Undoes the effect of exo_icon_view_enable_model_drag_dest().

Parameters

icon_view

a ExoIconView

 

Since: 0.3.1


exo_icon_view_set_reorderable ()

void
exo_icon_view_set_reorderable (ExoIconView *icon_view,
                               gboolean reorderable);

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.

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.

Parameters

icon_view

A ExoIconView.

 

reorderable

TRUE, if the list of items can be reordered.

 

Since: 0.3.1


exo_icon_view_get_reorderable ()

gboolean
exo_icon_view_get_reorderable (ExoIconView *icon_view);

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

Parameters

icon_view

a ExoIconView

 

Returns

TRUE if the list can be reordered.

Since: 0.3.1


exo_icon_view_set_drag_dest_item ()

void
exo_icon_view_set_drag_dest_item (ExoIconView *icon_view,
                                  GtkTreePath *path,
                                  ExoIconViewDropPosition pos);

Sets the item that is highlighted for feedback.

Parameters

icon_view

a ExoIconView

 

path

The path of the item to highlight, or NULL.

 

pos

Specifies whether to drop, relative to the item

 

Since: 0.3.1


exo_icon_view_get_drag_dest_item ()

void
exo_icon_view_get_drag_dest_item (ExoIconView *icon_view,
                                  GtkTreePath **path,
                                  ExoIconViewDropPosition *pos);

Gets information about the item that is highlighted for feedback.

Parameters

icon_view

a ExoIconView

 

path

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

 

pos

Return location for the drop position, or NULL

 

Since: 0.3.1


exo_icon_view_get_dest_item_at_pos ()

gboolean
exo_icon_view_get_dest_item_at_pos (ExoIconView *icon_view,
                                    gint drag_x,
                                    gint drag_y,
                                    GtkTreePath **path,
                                    ExoIconViewDropPosition *pos);

Determines the destination item for a given position.

Both drag_x and drag_y are given in icon window coordinates. Use exo_icon_view_widget_to_icon_coords() if you need to translate widget coordinates first.

Parameters

icon_view

a ExoIconView

 

drag_x

the position to determine the destination item for

 

drag_y

the position to determine the destination item for

 

path

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

 

pos

Return location for the drop position, or NULL

 

Returns

whether there is an item at the given position.

Since: 0.3.1


exo_icon_view_create_drag_icon ()

cairo_surface_t *
exo_icon_view_create_drag_icon (ExoIconView *icon_view,
                                GtkTreePath *path);

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

Parameters

icon_view

a ExoIconView

 

path

a GtkTreePath in icon_view

 

Returns

a newly-allocated pixmap of the drag icon.

Since: 0.3.1


ExoIconViewSearchEqualFunc ()

gboolean
(*ExoIconViewSearchEqualFunc) (GtkTreeModel *model,
                               gint column,
                               const gchar *key,
                               GtkTreeIter *iter,
                               gpointer search_data);

A function used for checking whether a row in model matches a search key string entered by the user. Note the return value is reversed from what you would normally expect, though it has some similarity to strcmp() returning 0 for equal strings.

Parameters

model

the GtkTreeModel being searched.

 

column

the search column set by exo_icon_view_set_search_column().

 

key

the key string to compare with.

 

iter

the GtkTreeIter of the current item.

 

search_data

user data from exo_icon_view_set_search_equal_func().

 

Returns

FALSE if the row matches, TRUE otherwise.


ExoIconViewSearchPositionFunc ()

void
(*ExoIconViewSearchPositionFunc) (ExoIconView *icon_view,
                                  GtkWidget *search_dialog,
                                  gpointer user_data);

A function used to place the search_dialog for the icon_view .

Parameters

icon_view

an ExoIconView.

 

search_dialog

the search dialog window to place.

 

user_data

user data from exo_icon_view_set_search_position_func().

 

exo_icon_view_get_enable_search ()

gboolean
exo_icon_view_get_enable_search (const ExoIconView *icon_view);

Returns whether or not the icon_view allows to start interactive searching by typing in text.

Parameters

icon_view

an ExoIconView.

 

Returns

whether or not to let the user search interactively.

Since: 0.3.1.3


exo_icon_view_set_enable_search ()

void
exo_icon_view_set_enable_search (ExoIconView *icon_view,
                                 gboolean enable_search);

If enable_search is set, then the user can type in text to search through the icon_view interactively (this is sometimes called "typeahead find").

Note that even if this is FALSE, the user can still initiate a search using the "start-interactive-search" key binding.

Parameters

icon_view

an ExoIconView.

 

enable_search

TRUE if the user can search interactively.

 

Since: 0.3.1.3


exo_icon_view_get_search_column ()

gint
exo_icon_view_get_search_column (const ExoIconView *icon_view);

Returns the column searched on by the interactive search code.

Parameters

icon_view

an ExoIconView.

 

Returns

the column the interactive search code searches in.

Since: 0.3.1.3


exo_icon_view_set_search_column ()

void
exo_icon_view_set_search_column (ExoIconView *icon_view,
                                 gint search_column);

Sets search_column as the column where the interactive search code should search in.

If the search column is set, user can use the "start-interactive-search" key binding to bring up search popup. The "enable-search" property controls whether simply typing text will also start an interactive search.

Note that search_column refers to a column of the model.

Parameters

icon_view

an ExoIconView.

 

search_column

the column of the model to search in, or -1 to disable searching.

 

Since: 0.3.1.3


exo_icon_view_get_search_equal_func ()

ExoIconViewSearchEqualFunc
exo_icon_view_get_search_equal_func (const ExoIconView *icon_view);

Returns the compare function currently in use.

Parameters

icon_view

an ExoIconView.

 

Returns

the currently used compare function for the search code.

Since: 0.3.1.3


exo_icon_view_set_search_equal_func ()

void
exo_icon_view_set_search_equal_func (ExoIconView *icon_view,
                                     ExoIconViewSearchEqualFunc search_equal_func,
                                     gpointer search_equal_data,
                                     GDestroyNotify search_equal_destroy);

Sets the compare function for the interactive search capabilities; note that some like strcmp() returning 0 for equality ExoIconViewSearchEqualFunc returns FALSE on matches.

Specifying NULL for search_equal_func will reset icon_view to use the default search equal function.

Parameters

icon_view

an ExoIconView.

 

search_equal_func

the compare function to use during the search, or NULL.

 

search_equal_data

user data to pass to search_equal_func , or NULL.

 

search_equal_destroy

destroy notifier for search_equal_data , or NULL.

 

Since: 0.3.1.3


exo_icon_view_get_search_position_func ()

ExoIconViewSearchPositionFunc
exo_icon_view_get_search_position_func
                               (const ExoIconView *icon_view);

Returns the search dialog positioning function currently in use.

Parameters

icon_view

an ExoIconView.

 

Returns

the currently used function for positioning the search dialog.

Since: 0.3.1.3


exo_icon_view_set_search_position_func ()

void
exo_icon_view_set_search_position_func
                               (ExoIconView *icon_view,
                                ExoIconViewSearchPositionFunc search_position_func,
                                gpointer search_position_data,
                                GDestroyNotify search_position_destroy);

Sets the function to use when positioning the seach dialog.

Specifying NULL for search_position_func will reset icon_view to use the default search position function.

Parameters

icon_view

an ExoIconView.

 

search_position_func

the function to use to position the search dialog, or NULL.

 

search_position_data

user data to pass to search_position_func , or NULL.

 

search_position_destroy

destroy notifier for search_position_data , or NULL.

 

Since: 0.3.1.3

Types and Values

struct ExoIconView

struct ExoIconView;

ExoIconView provides an alternative view on a list model. 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 exo_icon_view_set_selection_mode()). In addition to selection with the arrow keys, ExoIconView supports rubberband selection, which is controlled by dragging the pointer.


enum ExoIconViewDropPosition

Specifies whether to display the drop indicator, i.e. where to drop into the icon view.

Members

EXO_ICON_VIEW_NO_DROP

no drop indicator.

 

EXO_ICON_VIEW_DROP_INTO

drop indicator on an item.

 

EXO_ICON_VIEW_DROP_LEFT

drop indicator on the left of an item.

 

EXO_ICON_VIEW_DROP_RIGHT

drop indicator on the right of an item.

 

EXO_ICON_VIEW_DROP_ABOVE

drop indicator above an item.

 

EXO_ICON_VIEW_DROP_BELOW

drop indicator below an item.

 

enum ExoIconViewLayoutMode

Specifies the layouting mode of an ExoIconView. EXO_ICON_VIEW_LAYOUT_ROWS is the default, which lays out items vertically in rows from top to bottom. EXO_ICON_VIEW_LAYOUT_COLS lays out items horizontally in columns from left to right.

Members

EXO_ICON_VIEW_LAYOUT_ROWS

layout items in rows.

 

EXO_ICON_VIEW_LAYOUT_COLS

layout items in columns.

 

Property Details

The “column-spacing” property

  “column-spacing”           gint

The column-spacing property specifies the space which is inserted between the columns of the icon view.

Flags: Read / Write

Allowed values: >= 0

Default value: 6

Since: 0.3.1


The “columns” property

  “columns”                  gint

The columns property contains the number of the columns in which the items should be displayed. If it is -1, the number of columns will be chosen automatically to fill the available area.

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 0.3.1


The “enable-search” property

  “enable-search”            gboolean

View allows user to search through columns interactively.

Flags: Read / Write

Default value: TRUE

Since: 0.3.1.3


The “icon-column” property

  “icon-column”              gint

The ::icon-column property contains the number of the model column containing an absolute path to an image file to render. The icon column must be of type G_TYPE_STRING. Setting this property to -1 turns off the display of icons.

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 0.10.2


The “item-width” property

  “item-width”               gint

The item-width property specifies the width to use for each item. If it is set to -1, the icon view will automatically determine a suitable item size.

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 0.3.1


The “layout-mode” property

  “layout-mode”              ExoIconViewLayoutMode

The layout-mode property specifies the way items are layed out in the ExoIconView. This can be either EXO_ICON_VIEW_LAYOUT_ROWS, which is the default, where items are layed out horizontally in rows from top to bottom, or EXO_ICON_VIEW_LAYOUT_COLS, where items are layed out vertically in columns from left to right.

Flags: Read / Write

Default value: EXO_ICON_VIEW_LAYOUT_ROWS

Since: 0.3.1.5


The “margin” property

  “margin”                   gint

The margin property specifies the space which is inserted at the edges of the icon view.

Flags: Read / Write

Allowed values: >= 0

Default value: 6

Since: 0.3.1


The “markup-column” property

  “markup-column”            gint

The markup-column property contains the number of the model column containing markup information to be displayed. The markup column must be of type G_TYPE_STRING. If this property and the text-column property are both set to column numbers, it overrides the text column. If both are set to -1, no texts are displayed.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “model” property

  “model”                    GtkTreeModel *

The model property contains the GtkTreeModel, which should be display by this icon view. Setting this property to NULL turns off the display of anything.

Flags: Read / Write


The “orientation” property

  “orientation”              GtkOrientation

The orientation property specifies how the cells (i.e. the icon and the text) of the item are positioned relative to each other.

Flags: Read / Write

Default value: GTK_ORIENTATION_VERTICAL


The “pixbuf-column” property

  “pixbuf-column”            gint

The ::pixbuf-column property contains the number of the model column containing the pixbufs which are displayed. The pixbuf column must be of type GDK_TYPE_PIXBUF. Setting this property to -1 turns off the display of pixbufs.

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “reorderable” property

  “reorderable”              gboolean

The reorderable property specifies if the items can be reordered by Drag and Drop.

Flags: Read / Write

Default value: FALSE

Since: 0.3.1


The “row-spacing” property

  “row-spacing”              gint

The row-spacing property specifies the space which is inserted between the rows of the icon view.

Flags: Read / Write

Allowed values: >= 0

Default value: 6

Since: 0.3.1


The “search-column” property

  “search-column”            gint

Model column to search through when searching through code.

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 0.3.1.3


The “selection-mode” property

  “selection-mode”           GtkSelectionMode

The selection-mode property specifies the selection mode of icon view. If the mode is GTK_SELECTION_MULTIPLE, rubberband selection is enabled, for the other modes, only keyboard selection is possible.

Flags: Read / Write

Default value: GTK_SELECTION_SINGLE


The “single-click” property

  “single-click”             gboolean

Determines whether items can be activated by single or double clicks.

Flags: Read / Write

Default value: FALSE

Since: 0.3.1.3


The “single-click-timeout” property

  “single-click-timeout”     guint

The amount of time in milliseconds after which a prelited item (an item which is hovered by the mouse cursor) will be selected automatically in single click mode. A value of 0 disables the automatic selection.

Flags: Read / Write

Default value: 0

Since: 0.3.1.5


The “spacing” property

  “spacing”                  gint

The spacing property specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.

Flags: Read / Write

Allowed values: >= 0

Default value: 0

Since: 0.3.1


The “text-column” property

  “text-column”              gint

The text-column property contains the number of the model column containing the texts which are displayed. The text column must be of type G_TYPE_STRING. If this property and the markup-column property are both set to -1, no texts are displayed.

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Signal Details

The “activate-cursor-item” signal

gboolean
user_function (ExoIconView *icon_view,
               gpointer     user_data)

A GtkBindingSignal 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.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “item-activated” signal

void
user_function (ExoIconView *icon_view,
               GtkTreePath *path,
               gpointer     user_data)

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

Parameters

icon_view

a ExoIconView.

 

path

the GtkTreePath of the activated item.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “move-cursor” signal

gboolean
user_function (ExoIconView    *icon_view,
               GtkMovementStep step,
               gint            count,
               gpointer        user_data)

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

Parameters

icon_view

a ExoIconView.

 

step

the granularity of the move, as a GtkMovementStep

 

count

the number of step units to move

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “select-all” signal

void
user_function (ExoIconView *icon_view,
               gpointer     user_data)

A GtkBindingSignal 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.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “select-cursor-item” signal

void
user_function (ExoIconView *icon_view,
               gpointer     user_data)

A GtkBindingSignal 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.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “selection-changed” signal

void
user_function (ExoIconView *icon_view,
               gpointer     user_data)

The ::selection-changed signal is emitted when the selection (i.e. the set of selected items) changes.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “set-scroll-adjustments” signal

void
user_function (ExoIconView   *icon_view,
               GtkAdjustment *hadjustment,
               GtkAdjustment *vadjustment,
               gpointer       user_data)

The ::set-scroll-adjustments signal is emitted when the scroll adjustments have changed.

Parameters

icon_view

a ExoIconView.

 

hadjustment

the new horizontal GtkAdjustment.

 

vadjustment

the new vertical GtkAdjustment.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “start-interactive-search” signal

gboolean
user_function (ExoIconView *icon_view,
               gpointer     user_data)

The ::start-interative-search signal is emitted when the user starts typing to jump to an item in the icon view.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “toggle-cursor-item” signal

void
user_function (ExoIconView *icon_view,
               gpointer     user_data)

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

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.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “unselect-all” signal

void
user_function (ExoIconView *icon_view,
               gpointer     user_data)

A GtkBindingSignal 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.

Parameters

icon_view

a ExoIconView.

 

user_data

user data set when the signal handler was connected.

 

Flags: Action