![]() |
![]() |
![]() |
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 |