| Exo Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Signals | ||||
#include <exo/exo.h> struct ExoIconView; enum ExoIconViewDropPosition; enum ExoIconViewLayoutMode; GtkWidget * exo_icon_view_new (void); GtkWidget * exo_icon_view_new_with_model (GtkTreeModel *model); GtkTreeModel * exo_icon_view_get_model (const ExoIconView *icon_view); void exo_icon_view_set_model (ExoIconView *icon_view,GtkTreeModel *model); GtkOrientation exo_icon_view_get_orientation (const ExoIconView *icon_view); void exo_icon_view_set_orientation (ExoIconView *icon_view,GtkOrientation orientation); gint exo_icon_view_get_columns (const ExoIconView *icon_view); void exo_icon_view_set_columns (ExoIconView *icon_view,gint columns); gint exo_icon_view_get_item_width (const ExoIconView *icon_view); void exo_icon_view_set_item_width (ExoIconView *icon_view,gint item_width); gint exo_icon_view_get_spacing (const ExoIconView *icon_view); void exo_icon_view_set_spacing (ExoIconView *icon_view,gint spacing); gint exo_icon_view_get_row_spacing (const ExoIconView *icon_view); void exo_icon_view_set_row_spacing (ExoIconView *icon_view,gint row_spacing); gint exo_icon_view_get_column_spacing (const ExoIconView *icon_view); void exo_icon_view_set_column_spacing (ExoIconView *icon_view,gint column_spacing); gint exo_icon_view_get_margin (const ExoIconView *icon_view); void exo_icon_view_set_margin (ExoIconView *icon_view,gint margin); GtkSelectionMode exo_icon_view_get_selection_mode (const ExoIconView *icon_view); void exo_icon_view_set_selection_mode (ExoIconView *icon_view,GtkSelectionMode mode); ExoIconViewLayoutMode exo_icon_view_get_layout_mode (const ExoIconView *icon_view); void exo_icon_view_set_layout_mode (ExoIconView *icon_view,ExoIconViewLayoutMode layout_mode); gboolean exo_icon_view_get_single_click (const ExoIconView *icon_view); void exo_icon_view_set_single_click (ExoIconView *icon_view,gboolean single_click); guint exo_icon_view_get_single_click_timeout (const ExoIconView *icon_view); void exo_icon_view_set_single_click_timeout (ExoIconView *icon_view,guint single_click_timeout); void exo_icon_view_widget_to_icon_coords (const ExoIconView *icon_view,gint wx,gint wy,gint *ix,gint *iy); void exo_icon_view_icon_to_widget_coords (const ExoIconView *icon_view,gint ix,gint iy,gint *wx,gint *wy); GtkTreePath * exo_icon_view_get_path_at_pos (const ExoIconView *icon_view,gint x,gint y); gboolean exo_icon_view_get_item_at_pos (const ExoIconView *icon_view,gint x,gint y,GtkTreePath **path,GtkCellRenderer **cell); gboolean exo_icon_view_get_visible_range (const ExoIconView *icon_view,GtkTreePath **start_path,GtkTreePath **end_path); void (*ExoIconViewForeachFunc) (ExoIconView *icon_view,GtkTreePath *path,gpointer user_data); void exo_icon_view_selected_foreach (ExoIconView *icon_view,ExoIconViewForeachFunc func,gpointer data); void exo_icon_view_select_path (ExoIconView *icon_view,GtkTreePath *path); void exo_icon_view_unselect_path (ExoIconView *icon_view,GtkTreePath *path); gboolean exo_icon_view_path_is_selected (const ExoIconView *icon_view,GtkTreePath *path); gint exo_icon_view_get_item_column (ExoIconView *icon_view,GtkTreePath *path); gint exo_icon_view_get_item_row (ExoIconView *icon_view,GtkTreePath *path); GList * exo_icon_view_get_selected_items (const ExoIconView *icon_view); void exo_icon_view_select_all (ExoIconView *icon_view); void exo_icon_view_unselect_all (ExoIconView *icon_view); void exo_icon_view_selection_invert (ExoIconView *icon_view); void exo_icon_view_item_activated (ExoIconView *icon_view,GtkTreePath *path); gboolean exo_icon_view_get_cursor (const ExoIconView *icon_view,GtkTreePath **path,GtkCellRenderer **cell); void exo_icon_view_set_cursor (ExoIconView *icon_view,GtkTreePath *path,GtkCellRenderer *cell,gboolean start_editing); void exo_icon_view_scroll_to_path (ExoIconView *icon_view,GtkTreePath *path,gboolean use_align,gfloat row_align,gfloat col_align); void exo_icon_view_enable_model_drag_source (ExoIconView *icon_view,GdkModifierType start_button_mask,const GtkTargetEntry *targets,gint n_targets,GdkDragAction actions); void exo_icon_view_enable_model_drag_dest (ExoIconView *icon_view,const GtkTargetEntry *targets,gint n_targets,GdkDragAction actions); void exo_icon_view_unset_model_drag_source (ExoIconView *icon_view); void exo_icon_view_unset_model_drag_dest (ExoIconView *icon_view); void exo_icon_view_set_reorderable (ExoIconView *icon_view,gboolean reorderable); gboolean exo_icon_view_get_reorderable (ExoIconView *icon_view); void exo_icon_view_set_drag_dest_item (ExoIconView *icon_view,GtkTreePath *path,ExoIconViewDropPosition pos); void exo_icon_view_get_drag_dest_item (ExoIconView *icon_view,GtkTreePath **path,ExoIconViewDropPosition *pos); gboolean exo_icon_view_get_dest_item_at_pos (ExoIconView *icon_view,gint drag_x,gint drag_y,GtkTreePath **path,ExoIconViewDropPosition *pos); GdkPixmap * exo_icon_view_create_drag_icon (ExoIconView *icon_view,GtkTreePath *path); gboolean (*ExoIconViewSearchEqualFunc) (GtkTreeModel *model,gint column,const gchar *key,GtkTreeIter *iter,gpointer search_data); void (*ExoIconViewSearchPositionFunc) (ExoIconView *icon_view,GtkWidget *search_dialog,gpointer user_data); gboolean exo_icon_view_get_enable_search (const ExoIconView *icon_view); void exo_icon_view_set_enable_search (ExoIconView *icon_view,gboolean enable_search); gint exo_icon_view_get_search_column (const ExoIconView *icon_view); void exo_icon_view_set_search_column (ExoIconView *icon_view,gint search_column); ExoIconViewSearchEqualFunc exo_icon_view_get_search_equal_func (const ExoIconView *icon_view); void exo_icon_view_set_search_equal_func (ExoIconView *icon_view,ExoIconViewSearchEqualFunc search_equal_func,gpointer search_equal_data,GDestroyNotify search_equal_destroy); ExoIconViewSearchPositionFunc exo_icon_view_get_search_position_func (const ExoIconView *icon_view); void exo_icon_view_set_search_position_func (ExoIconView *icon_view,ExoIconViewSearchPositionFunc search_position_func,gpointer search_position_data,GDestroyNotify search_position_destroy);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----ExoIconView
"column-spacing" gint : Read / Write "columns" gint : Read / Write "enable-search" gboolean : Read / Write "item-width" gint : Read / Write "layout-mode" ExoIconViewLayoutMode : Read / Write "margin" gint : Read / Write "markup-column" gint : Read / Write "model" GtkTreeModel* : Read / Write "orientation" GtkOrientation : Read / Write "pixbuf-column" gint : Read / Write "reorderable" gboolean : Read / Write "row-spacing" gint : Read / Write "search-column" gint : Read / Write "selection-mode" GtkSelectionMode : Read / Write "single-click" gboolean : Read / Write "single-click-timeout" guint : Read / Write "spacing" gint : Read / Write "text-column" gint : Read / Write
"activate-cursor-item" :Action"item-activated" :Run Last"move-cursor" :Action"select-all" :Action"select-cursor-item" :Action"selection-changed" :Run First"set-scroll-adjustments" :Run Last"start-interactive-search" :Action"toggle-cursor-item" :Action"unselect-all" :Action
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.
typedef enum {
EXO_ICON_VIEW_NO_DROP,
EXO_ICON_VIEW_DROP_INTO,
EXO_ICON_VIEW_DROP_LEFT,
EXO_ICON_VIEW_DROP_RIGHT,
EXO_ICON_VIEW_DROP_ABOVE,
EXO_ICON_VIEW_DROP_BELOW
} ExoIconViewDropPosition;
Specifies whether to display the drop indicator, i.e. where to drop into the icon view.
| no drop indicator. | |
| drop indicator on an item. | |
| drop indicator on the left of an item. | |
| drop indicator on the right of an item. | |
| drop indicator above an item. | |
| drop indicator below an item. |
typedef enum {
EXO_ICON_VIEW_LAYOUT_ROWS,
EXO_ICON_VIEW_LAYOUT_COLS
} 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.
GtkWidget * exo_icon_view_new (void);
Creates a new ExoIconView widget
Returns : |
A newly created ExoIconView widget |
GtkWidget * exo_icon_view_new_with_model (GtkTreeModel *model);
Creates a new ExoIconView widget with the model model.
|
The model. |
Returns : |
A newly created ExoIconView widget. |
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.
|
a ExoIconView |
Returns : |
A GtkTreeModel, or NULL if none is currently being used. |
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.
|
A ExoIconView. |
|
The model. |
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.
|
a ExoIconView |
Returns : |
the relative position of texts and icons |
Since 0.3.1
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.
|
a ExoIconView |
|
the relative position of texts and icons |
Since 0.3.1
gint exo_icon_view_get_columns (const ExoIconView *icon_view);
Returns the value of the ::columns property.
|
a ExoIconView |
Returns : |
the number of columns, or -1 |
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.
|
a ExoIconView |
|
the number of columns |
Since 0.3.1
gint exo_icon_view_get_item_width (const ExoIconView *icon_view);
Returns the value of the ::item-width property.
|
a ExoIconView |
Returns : |
the width of a single item, or -1 |
Since 0.3.1
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.
|
a ExoIconView |
|
the width for each item |
Since 0.3.1
gint exo_icon_view_get_spacing (const ExoIconView *icon_view);
Returns the value of the ::spacing property.
|
a ExoIconView |
Returns : |
the space between cells |
Since 0.3.1
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.
|
a ExoIconView |
|
the spacing |
Since 0.3.1
gint exo_icon_view_get_row_spacing (const ExoIconView *icon_view);
Returns the value of the ::row-spacing property.
|
a ExoIconView |
Returns : |
the space between rows |
Since 0.3.1
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.
|
a ExoIconView |
|
the row spacing |
Since 0.3.1
gint exo_icon_view_get_column_spacing (const ExoIconView *icon_view);
Returns the value of the ::column-spacing property.
|
a ExoIconView |
Returns : |
the space between columns |
Since 0.3.1
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.
|
a ExoIconView |
|
the column spacing |
Since 0.3.1
gint exo_icon_view_get_margin (const ExoIconView *icon_view);
Returns the value of the ::margin property.
|
a ExoIconView |
Returns : |
the space at the borders |
Since 0.3.1
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.
|
a ExoIconView |
|
the margin |
Since 0.3.1
GtkSelectionMode exo_icon_view_get_selection_mode (const ExoIconView *icon_view);
Gets the selection mode of the icon_view.
|
A ExoIconView. |
Returns : |
the current selection mode |
void exo_icon_view_set_selection_mode (ExoIconView *icon_view,GtkSelectionMode mode);
Sets the selection mode of the icon_view.
|
A ExoIconView. |
|
The selection mode |
ExoIconViewLayoutMode exo_icon_view_get_layout_mode (const ExoIconView *icon_view);
Returns the ExoIconViewLayoutMode used to layout the
items in the icon_view.
|
A ExoIconView. |
Returns : |
the layout mode of icon_view. |
Since 0.3.1.5
void exo_icon_view_set_layout_mode (ExoIconView *icon_view,ExoIconViewLayoutMode layout_mode);
Sets the layout mode of icon_view to layout_mode.
|
a ExoIconView. |
|
the new ExoIconViewLayoutMode for icon_view. |
Since 0.3.1.5
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.
|
a ExoIconView. |
Returns : |
whether icon_view is currently in single click mode. |
Since 0.3.1.3
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.
|
a ExoIconView. |
|
TRUE for single click, FALSE for double click mode. |
Since 0.3.1.3
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.
|
a ExoIconView. |
Returns : |
the single click autoselect timeout or 0 if
the behavior is disabled. |
Since 0.3.1.5
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().
|
a ExoIconView. |
|
the new timeout or 0 to disable. |
Since 0.3.1.5
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).
|
a ExoIconView. |
|
widget x coordinate. |
|
widget y coordinate. |
|
return location for icon x coordinate or NULL. |
|
return location for icon y coordinate or NULL. |
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.
|
a ExoIconView. |
|
icon x coordinate. |
|
icon y coordinate. |
|
return location for widget x coordinate or NULL. |
|
return location for widget y coordinate or NULL. |
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.
|
A ExoIconView. |
|
The x position to be identified |
|
The y position to be identified |
Returns : |
The GtkTreePath corresponding to the icon or NULL
if no icon exists at that position. |
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().
|
A ExoIconView. |
|
The x position to be identified |
|
The y position to be identified |
|
Return location for the path, or NULL
|
|
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
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.
|
A ExoIconView |
|
Return location for start of region, or NULL
|
|
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
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.
|
an ExoIconView. |
|
the current path. |
|
the user data supplied to 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.
|
A ExoIconView. |
|
The funcion to call for each selected icon. |
|
User data to pass to the function. |
void exo_icon_view_select_path (ExoIconView *icon_view,GtkTreePath *path);
Selects the row at path.
|
A ExoIconView. |
|
The GtkTreePath to be selected. |
void exo_icon_view_unselect_path (ExoIconView *icon_view,GtkTreePath *path);
Unselects the row at path.
|
A ExoIconView. |
|
The GtkTreePath to be unselected. |
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.
|
A ExoIconView. |
|
A GtkTreePath to check selection on. |
Returns : |
TRUE if path is selected. |
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.
|
A ExoIconView. |
|
The GtkTreePath of the item. |
Returns : |
The column in which the item is displayed |
Since 0.7.1
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.
|
A ExoIconView. |
|
The GtkTreePath of the item. |
Returns : |
The row in which the item is displayed |
Since 0.7.1
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 3 4 5 |