Icon

- Main Page
- Related Pages
- Data Structures
- Files
- Examples

Functions
Icon

## Functions
EINA_DEPRECATED Eina_Bool | elm_icon_file_set (Evas_Object *obj, const char *file, const char *group)
| Set the file that will be used as icon. More...
EINA_DEPRECATED Eina_Bool | elm_icon_memfile_set (Evas_Object *obj, const void *img, size_t size, const char *format, const char *key)
| Set a location in memory to be used as an icon. More...
EINA_DEPRECATED void | elm_icon_file_get (const Evas_Object *obj, const char **file, const char **group)
| Get the file that will be used as icon. More...
EINA_DEPRECATED void | elm_icon_smooth_set (Evas_Object *obj, Eina_Bool smooth)
| Set the smooth scaling for an icon object. More...
EINA_DEPRECATED Eina_Bool | elm_icon_smooth_get (const Evas_Object *obj)
| Get whether smooth scaling is enabled for an icon object. More...
EINA_DEPRECATED void | elm_icon_no_scale_set (Evas_Object *obj, Eina_Bool no_scale)
| Disable scaling of this object. More...
EINA_DEPRECATED Eina_Bool | elm_icon_no_scale_get (const Evas_Object *obj)
| Get whether scaling is disabled on the object. More...
EINA_DEPRECATED void | elm_icon_resizable_set (Evas_Object *obj, Eina_Bool size_up, Eina_Bool size_down)
| Set if the object is (up/down) resizable. More...
EINA_DEPRECATED void | elm_icon_resizable_get (const Evas_Object *obj, Eina_Bool *size_up, Eina_Bool *size_down)
| Get if the object is (up/down) resizable. More...
EINA_DEPRECATED void | elm_icon_size_get (const Evas_Object *obj, int *w, int *h)
| Get the object's image size. More...
EINA_DEPRECATED void | elm_icon_fill_outside_set (Evas_Object *obj, Eina_Bool fill_outside)
| Set if the icon fill the entire object area. More...
EINA_DEPRECATED Eina_Bool | elm_icon_fill_outside_get (const Evas_Object *obj)
| Get if the object is filled outside. More...
EINA_DEPRECATED void | elm_icon_prescale_set (Evas_Object *obj, int size)
| Set the prescale size for the icon. More...
EINA_DEPRECATED int | elm_icon_prescale_get (const Evas_Object *obj)
| Get the prescale size for the icon. More...
EINA_DEPRECATED Evas_Object * | elm_icon_object_get (Evas_Object *obj)
| Get the image object of the icon. More...
EINA_DEPRECATED void | elm_icon_preload_disabled_set (Evas_Object *obj, Eina_Bool disabled)
| Enable or disable preloading of the icon. More...
EINA_DEPRECATED Eina_Bool | elm_icon_animated_available_get (const Evas_Object *obj)
| Get if the icon supports animation or not. More...
EINA_DEPRECATED void | elm_icon_animated_set (Evas_Object *obj, Eina_Bool animated)
| Set animation mode of the icon. More...
EINA_DEPRECATED Eina_Bool | elm_icon_animated_get (const Evas_Object *obj)
| Get animation mode of the icon. More...
EINA_DEPRECATED void | elm_icon_animated_play_set (Evas_Object *obj, Eina_Bool play)
| Set animation play mode of the icon. More...
EINA_DEPRECATED Eina_Bool | elm_icon_animated_play_get (const Evas_Object *obj)
| Get animation play mode of the icon. More...
EINA_DEPRECATED void | elm_icon_aspect_fixed_set (Evas_Object *obj, Eina_Bool fixed)
| Set whether the original aspect ratio of the icon should be kept on resize. More...
EINA_DEPRECATED Eina_Bool | elm_icon_aspect_fixed_get (const Evas_Object *obj)
| Get if the object retains the original aspect ratio. More...
Evas_Object * | elm_icon_add (Evas_Object *parent)
| Add a new icon object to the parent. More...

## Detailed Description

An icon object is used to display standard icon images ("delete", "edit", "arrows", etc.) or images coming from a custom file (PNG, JPG, EDJE, etc.), on icon contexts.

The icon image requested can be in the Elementary theme in use, or in the `freedesktop.org` theme paths. It's possible to set the order of preference from where an image will be fetched.

This widget inherits from the Image one, so that all the functions acting on it also work for icon objects.

You should be using an icon, instead of an image, whenever one of the following apply:

- you need a thumbnail version of an original image
- you need freedesktop.org provided icon images
- you need theme provided icon images (Edje groups)

Various calls on the icon's API are marked as deprecated, as they just wrap the image counterpart functions. Use the ones we point you to, for each case of deprecation here, instead – eventually the deprecated ones will be discarded (next major release).

Default images provided by Elementary's default theme are described below.

These are names that follow (more or less) the Freedesktop icon naming specification. Use of these names are preferred, at least if you want to give your user the ability to use other themes. All these icons can be seen in the elementary_test application, the test is called "Icon Standard".

- `"folder"` (since 1.13)
- `"user-home"` (since 1.13)
- `"user-trash"` (since 1.13)

- `"view-close"` (since 1.13)
- `"view-refresh"` (since 1.13)

- `"window-close"` (since 1.13)

- `"document-close"` (since 1.13)
- `"document-edit"` (since 1.13)

- `"dialog-info"` (since 1.13)
- `"dialog-close"` (since 1.13)

- `"arrow-up"` (since 1.13)
- `"arrow-down"` (since 1.13)
- `"arrow-left"` (since 1.13)
- `"arrow-right"` (since 1.13)
- `"arrow-up-left"` (since 1.13)
- `"arrow-up-right"` (since 1.13)
- `"arrow-down-left"` (since 1.13)
- `"arrow-down-right"` (since 1.13)

- `"edit-delete"` (since 1.13)

- `"application-chat"` (since 1.13)
- `"application-clock"` (since 1.13)

- `"media-seek-forward"` (since 1.13)
- `"media-seek-backward"` (since 1.13)
- `"media-skip-forward"` (since 1.13)
- `"media-skip-backward"` (since 1.13)
- `"media-playback-pause"` (since 1.13)
- `"media-playback-start"` (since 1.13)
- `"media-playback-stop"` (since 1.13)
- `"media-eject"` (since 1.13)

- `"audio-volume"` (since 1.13)
- `"audio-volume-muted"` (since 1.13)

These are names for icons that were first intended to be used in toolbars, but can be used in many other places too:

- `"home"`
- `"close"`
- `"apps"`
- `"arrow_up"`
- `"arrow_down"`
- `"arrow_left"`
- `"arrow_right"`
- `"chat"`
- `"clock"`
- `"delete"`
- `"edit"`
- `"refresh"`
- `"folder"`
- `"file"`

These are names for icons that were designed to be used in menus (but again, you can use them anywhere else):

- `"menu/home"`
- `"menu/close"`
- `"menu/apps"`
- `"menu/arrow_up"`
- `"menu/arrow_down"`
- `"menu/arrow_left"`
- `"menu/arrow_right"`
- `"menu/chat"`
- `"menu/clock"`
- `"menu/delete"`
- `"menu/edit"`
- `"menu/refresh"`
- `"menu/folder"`
- `"menu/file"`

And these are names for some media player specific icons:

- `"media_player/forward"`
- `"media_player/info"`
- `"media_player/next"`
- `"media_player/pause"`
- `"media_player/play"`
- `"media_player/prev"`
- `"media_player/rewind"`
- `"media_player/stop"`

This widget emits the following signals, besides the ones sent from Image:

- `"thumb,done"` - elm_icon_thumb_set() has completed with success (since 1.7)
- `"thumb,error"` - elm_icon_thumb_set() has failed (since 1.7)

Elementary icon objects support the following API calls:

- elm_object_signal_emit()
- elm_object_signal_callback_add()
- elm_object_signal_callback_del() for emitting and listening to signals on the object, when the internal image comes from an Edje object. This behavior was added unintentionally, though, and is deprecated. Expect it to be dropped on future releases.

An example of usage for this API follows:

- Icon example

## Function Documentation

Evas_Object* elm_icon_add | ( | Evas_Object * | parent | ) |

Add a new icon object to the parent.

Parameters

  parent | The parent object

Returns
  The new object or NULL if it cannot be created

See also
  elm_image_file_set()

Referenced by elm_hoversel_add(), elm_menu_parent_get(), elm_prefs_add(), elm_process_state_get(), elm_toolbar_add(), and elm_toolbar_transverse_expanded_get().

EINA_DEPRECATED Eina_Bool elm_icon_animated_available_get | ( | const Evas_Object * | obj | ) |

Get if the icon supports animation or not.

Parameters

  obj | The icon object

Returns
  `EINA_TRUE` if the icon supports animation, `EINA_FALSE` otherwise.

Return if this elm icon's image can be animated. Currently Evas only supports gif animation. If the return value is EINA_FALSE, other elm_icon_animated_xxx APIs won't work.

Deprecated:
  Use elm_image_animated_available_get() instead.

References elm_image_animated_available_get().

EINA_DEPRECATED Eina_Bool elm_icon_animated_get | ( | const Evas_Object * | obj | ) |

Get animation mode of the icon.

Parameters

  obj | The icon object

Returns
  The animation mode of the icon object

See also
  elm_icon_animated_set

Deprecated:
  Use elm_image_animated_get() instead.

References elm_image_animated_get().

EINA_DEPRECATED Eina_Bool elm_icon_animated_play_get | ( | const Evas_Object * | obj | ) |

Get animation play mode of the icon.

Parameters

  obj | The icon object

Returns
  The play mode of the icon object

See also
  elm_icon_animated_play_get

Deprecated:
  Use elm_image_animated_play_get() instead.

References elm_image_animated_play_get().

EINA_DEPRECATED void elm_icon_animated_play_set | ( | Evas_Object * | obj,
|  | Eina_Bool | play
| ) |  |

Set animation play mode of the icon.

Parameters

  obj | The icon object
  play | `EINA_TRUE` the object play animation images, `EINA_FALSE` otherwise. Default is `EINA_FALSE`.

To play elm icon's animation, set play to EINA_TRUE. For example, you make gif player using this set/get API and click event. This literally lets you control current play or paused state. To have this work with animated GIF files for example, you first, before setting the file have to use elm_icon_animated_set() to enable animation at all on the icon.

1. Click event occurs
2. Check play flag using elm_icon_animated_play_get
3. If elm icon was playing, set play to EINA_FALSE. Then animation will be stopped and vice versa

Deprecated:
  Use elm_image_animated_play_set() instead.

References elm_image_animated_play_set().

EINA_DEPRECATED void elm_icon_animated_set | ( | Evas_Object * | obj,
|  | Eina_Bool | animated
| ) |  |

Set animation mode of the icon.

Parameters

  obj | The icon object
  animated | `EINA_TRUE` if the object do animation job, `EINA_FALSE` otherwise. Default is `EINA_FALSE`.

Since the default animation mode is set to EINA_FALSE, the icon is shown without animation. Files like animated GIF files can animate, and this is supported if you enable animated support on the icon. Set it to EINA_TRUE when the icon needs to be animated.

Deprecated:
  Use elm_image_animated_set() instead.

References elm_image_animated_set().

EINA_DEPRECATED Eina_Bool elm_icon_aspect_fixed_get | ( | const Evas_Object * | obj | ) |

Get if the object retains the original aspect ratio.

Parameters

  obj | The icon object.

Returns
  `EINA_TRUE` if the object keeps the original aspect, `EINA_FALSE` otherwise.

Deprecated:
  Use elm_image_aspect_fixed_get() instead.

EINA_DEPRECATED void elm_icon_aspect_fixed_set | ( | Evas_Object * | obj,
|  | Eina_Bool | fixed
| ) |  |

Set whether the original aspect ratio of the icon should be kept on resize.

Parameters

  obj | The icon object.
  fixed | `EINA_TRUE` if the icon should retain the aspect, `EINA_FALSE` otherwise.

The original aspect ratio (width / height) of the icon is usually distorted to match the object's size. Enabling this option will retain this original aspect, and the way that the icon is fit into the object's area depends on the option set by elm_icon_fill_outside_set().

See also
  elm_icon_aspect_fixed_get()
  elm_icon_fill_outside_set()

Deprecated:
  Use elm_image_aspect_fixed_set() instead.

EINA_DEPRECATED void elm_icon_file_get | ( | const Evas_Object * | obj,
|  | const char ** | file,
|  | const char ** | group
| ) |  |

Get the file that will be used as icon.

Parameters

  obj | The icon object
  file | The path to file that will be used as the icon image
  group | The group that the icon belongs to, in edje file

See also
  elm_image_file_set()

Deprecated:
  Use elm_image_file_get() instead.

References elm_image_file_get(), and elm_thumb_ethumb_client_connected_get().

EINA_DEPRECATED Eina_Bool elm_icon_file_set | ( | Evas_Object * | obj,
|  | const char * | file,
|  | const char * | group
| ) |  |

Set the file that will be used as icon.

Parameters

  obj | The icon object
  file | The path to file that will be used as icon image
  group | The group that the icon belongs to an edje file

Returns
  (`EINA_TRUE` = success, `EINA_FALSE` = error)

Note
  The icon image set by this function can be changed by elm_icon_standard_set().

See also
  elm_icon_file_get()

Deprecated:
  Use elm_image_file_set() instead.

EINA_DEPRECATED Eina_Bool elm_icon_fill_outside_get | ( | const Evas_Object * | obj | ) |

Get if the object is filled outside.

Parameters

  obj | The icon object

Returns
  `EINA_TRUE` if the object is filled outside, `EINA_FALSE` otherwise.

See also
  elm_icon_fill_outside_set()

Deprecated:
  Use elm_image_fill_outside_get() instead.

EINA_DEPRECATED void elm_icon_fill_outside_set | ( | Evas_Object * | obj,
|  | Eina_Bool | fill_outside
| ) |  |

Set if the icon fill the entire object area.

Parameters

  obj | The icon object
  fill_outside | `EINA_TRUE` if the object is filled outside, `EINA_FALSE` otherwise. Default is `EINA_FALSE`.

When the icon object is resized to a different aspect ratio from the original icon image, the icon image will still keep its aspect. This flag tells how the image should fill the object's area. They are: keep the entire icon inside the limits of height and width of the object (`fill_outside` is `EINA_FALSE`) or let the extra width or height go outside of the object, and the icon will fill the entire object (`fill_outside` is `EINA_TRUE`).

Note
  Unlike Image, there's no option in icon to set the aspect ratio retain property to false. Thus, the icon image will always keep its original aspect ratio.

See also
  elm_icon_fill_outside_get()

Deprecated:
  Use elm_image_fill_outside_set() instead.

EINA_DEPRECATED Eina_Bool elm_icon_memfile_set | ( | Evas_Object * | obj,
|  | const void * | img,
|  | size_t | size,
|  | const char * | format,
|  | const char * | key
| ) |  |

Set a location in memory to be used as an icon.

Parameters

  obj | The icon object
  img | The binary data that will be used as an image
  size | The size of binary data `img`
  format | Optional format of `img` to pass to the image loader
  key | Optional key of `img` to pass to the image loader (eg. if `img` is an edje file)

The `format` string should be something like "png", "jpg", "tga", "tiff", "bmp" etc. if it is provided (NULL if not). This improves the loader performance as it tries the "correct" loader first before trying a range of other possible loaders until one succeeds.

Returns
  (`EINA_TRUE` = success, `EINA_FALSE` = error)

Note
  The icon image set by this function can be changed by elm_icon_standard_set().

Deprecated:
  Use elm_image_memfile_set() instead.

EINA_DEPRECATED Eina_Bool elm_icon_no_scale_get | ( | const Evas_Object * | obj | ) |

Get whether scaling is disabled on the object.

Parameters

  obj | The icon object

Returns
  `EINA_TRUE` if scaling is disabled, `EINA_FALSE` otherwise

See also
  elm_icon_no_scale_set()

Deprecated:
  Use elm_image_no_scale_get() instead.

EINA_DEPRECATED void elm_icon_no_scale_set | ( | Evas_Object * | obj,
|  | Eina_Bool | no_scale
| ) |  |

Disable scaling of this object.

Parameters

  obj | The icon object.
  no_scale | `EINA_TRUE` if the object is not scalable, `EINA_FALSE` otherwise. Default is `EINA_FALSE`.

This function disables scaling of the icon object through the function elm_object_scale_set(). However, this does not affect the object size/resize in any way. For that effect, take a look at elm_icon_resizable_set().

See also
  elm_icon_no_scale_get()
  elm_icon_resizable_set()
  elm_object_scale_set()

Deprecated:
  Use elm_image_no_scale_set() instead.

EINA_DEPRECATED Evas_Object* elm_icon_object_get | ( | Evas_Object * | obj | ) |

Get the image object of the icon.

DO NOT MODIFY THIS.

Parameters

  obj | The icon object

Returns
  The internal icon object

Deprecated:
  Use elm_image_object_get() instead.

EINA_DEPRECATED void elm_icon_preload_disabled_set | ( | Evas_Object * | obj,
|  | Eina_Bool | disabled
| ) |  |

Enable or disable preloading of the icon.

Parameters

  obj | The icon object
  disabled | If EINA_TRUE, preloading will be disabled

Deprecated:
  Use elm_image_preload_disabled_set() instead.

EINA_DEPRECATED int elm_icon_prescale_get | ( | const Evas_Object * | obj | ) |

Get the prescale size for the icon.

Parameters

  obj | The icon object

Returns
  The prescale size

See also
  elm_icon_prescale_set()

Deprecated:
  Use elm_image_prescale_get() instead.

References elm_image_prescale_get().

EINA_DEPRECATED void elm_icon_prescale_set | ( | Evas_Object * | obj,
|  | int | size
| ) |  |

Set the prescale size for the icon.

Parameters

  obj | The icon object
  size | The prescale size. This value is used for both width and height.

This function sets a new size for pixmap representation of the given icon. It allows the icon to be loaded already in the specified size, reducing the memory usage and load time when loading a big icon with load size set to a smaller size.

It's equivalent to the elm_bg_load_size_set() function for bg.

Note
  this is just a hint, the real size of the pixmap may differ depending on the type of icon being loaded, being bigger than requested.

See also
  elm_icon_prescale_get()
  elm_bg_load_size_set()

Deprecated:
  Use elm_image_prescale_set() instead.

References elm_image_prescale_set().

EINA_DEPRECATED void elm_icon_resizable_get | ( | const Evas_Object * | obj,
|  | Eina_Bool * | size_up,
|  | Eina_Bool * | size_down
| ) |  |

Get if the object is (up/down) resizable.

Parameters

  obj | The icon object
  size_up | A bool to set if the object is resizable up
  size_down | A bool to set if the object is resizable down

See also
  elm_icon_resizable_set()

Deprecated:
  Use elm_image_resizable_get() instead.

EINA_DEPRECATED void elm_icon_resizable_set | ( | Evas_Object * | obj,
|  | Eina_Bool | size_up,
|  | Eina_Bool | size_down
| ) |  |

Set if the object is (up/down) resizable.

Parameters

  obj | The icon object
  size_up | A bool to set if the object is resizable up. Default is `EINA_TRUE`.
  size_down | A bool to set if the object is resizable down. Default is `EINA_TRUE`.

This function limits the icon object resize ability. If `size_up` is set to `EINA_FALSE`, the object can't have its height or width resized to a value higher than the original icon size. Same is valid for `size_down`.

See also
  elm_icon_resizable_get()

Deprecated:
  Use elm_image_resizable_set() instead.

EINA_DEPRECATED void elm_icon_size_get | ( | const Evas_Object * | obj,
|  | int * | w,
|  | int * | h
| ) |  |

Get the object's image size.

Parameters

  obj | The icon object
  w | A pointer to store the width in
  h | A pointer to store the height in

Deprecated:
  Use elm_image_object_size_get() instead.

EINA_DEPRECATED Eina_Bool elm_icon_smooth_get | ( | const Evas_Object * | obj | ) |

Get whether smooth scaling is enabled for an icon object.

Parameters

  obj | The icon object

Returns
  `EINA_TRUE` if smooth scaling is enabled, `EINA_FALSE` otherwise.

See also
  elm_icon_smooth_set()

Deprecated:
  Use elm_image_smooth_get() instead.

EINA_DEPRECATED void elm_icon_smooth_set | ( | Evas_Object * | obj,
|  | Eina_Bool | smooth
| ) |  |

Set the smooth scaling for an icon object.

Parameters

  obj | The icon object
  smooth | `EINA_TRUE` if smooth scaling should be used, `EINA_FALSE` otherwise. Default is `EINA_TRUE`.

Set the scaling algorithm to be used when scaling the icon image. Smooth scaling provides a better resulting image, but is slower.

The smooth scaling should be disabled when making animations that change the icon size, since they will be faster. Animations that don't require resizing of the icon can keep the smooth scaling enabled (even if the icon is already scaled, since the scaled icon image will be cached).

See also
  elm_icon_smooth_get()

Deprecated:
  Use elm_image_smooth_set() instead.