fdo menu icons now scales.

SVN revision: 39353
This commit is contained in:
Gustavo Sverzut Barbieri 2009-03-04 00:39:49 +00:00
parent ad65729d12
commit beaf395663
3 changed files with 18 additions and 10 deletions

View File

@ -1817,15 +1817,7 @@ _e_fm2_icon_mime_type_special_match(const E_Fm2_Icon *ic)
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));
}
/**

View File

@ -397,13 +397,28 @@ e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name)
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);

View File

@ -33,6 +33,7 @@ EAPI int e_util_menu_item_edje_icon_list_set(E_Menu_Item *mi, const cha
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);