static inline unsigned int
_e_fm2_icon_mime_size_normalize(const E_Fm2_Icon *ic)
{
- const unsigned int *itr, known_sizes[] = {
- 16, 22, 24, 32, 36, 48, 64, 72, 96, 128, 192, -1
- };
- unsigned int desired = _e_fm2_icon_w_get(ic->sd);
- for (itr = known_sizes; *itr > 0; itr++)
- if (*itr >= desired)
- return *itr;
-
- return 256; /* largest know size? */
+ return e_util_icon_size_normalize(_e_fm2_icon_w_get(ic->sd));
}
/**
return 0;
}
+EAPI unsigned int
+e_util_icon_size_normalize(unsigned int desired)
+{
+ const unsigned int *itr, known_sizes[] = {
+ 16, 22, 24, 32, 36, 48, 64, 72, 96, 128, 192, 256, -1
+ };
+ for (itr = known_sizes; *itr > 0; itr++)
+ if (*itr >= desired)
+ return *itr;
+
+ return 256; /* largest know size? */
+}
+
EAPI int
e_util_menu_item_fdo_icon_set(E_Menu_Item *mi, const char *icon)
{
char *path = NULL;
+ unsigned int size;
if ((!icon) || (!icon[0])) return 0;
- path = efreet_icon_path_find(e_config->icon_theme, icon, 16);
+ size = e_util_icon_size_normalize(16 * e_scale);
+ path = efreet_icon_path_find(e_config->icon_theme, icon, size);
if (!path) return 0;
e_menu_item_icon_file_set(mi, path);
E_FREE(path);
EAPI int e_util_edje_icon_check(const char *name);
EAPI int e_util_edje_icon_set(Evas_Object *obj, const char *name);
EAPI int e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name);
+EAPI unsigned int e_util_icon_size_normalize(unsigned int desired);
EAPI int e_util_menu_item_fdo_icon_set(E_Menu_Item *mi, const char *icon);
EAPI E_Container *e_util_container_window_find(Ecore_X_Window win);
EAPI E_Border *e_util_desk_border_above(E_Border *bd);