Use pre-defined fileman.edc icons, if possible, in the list and icon

selector. Provide a fallback for both.


SVN revision: 26925
This commit is contained in:
Christopher Michael 2006-11-03 16:50:31 +00:00
parent 13ba37335f
commit bb821894d5
2 changed files with 27 additions and 3 deletions

View File

@ -128,15 +128,36 @@ _fill_list(E_Config_Dialog_Data *cfdata)
{
Evas_List *l;
Evas_Coord w, h;
char buf[4096];
e_widget_ilist_clear(cfdata->gui.list);
for (l = cfdata->mimes; l; l = l->next)
{
E_Config_Mime_Icon *mi;
Evas_Object *icon;
const char *tmp;
mi = l->data;
if (!mi) continue;
e_widget_ilist_append(cfdata->gui.list, NULL, mi->mime, _list_cb_sel, cfdata, NULL);
tmp = e_fm_mime_icon_get(mi->mime);
if (!tmp)
snprintf(buf, sizeof(buf), "e/icons/fileman/file");
else if (!strcmp(tmp, "THUMB"))
snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", mi->mime);
else if (!strncmp(tmp, "e/icons/fileman/mime/", 21))
snprintf(buf, sizeof(buf), "%s", tmp);
else
{
char *p;
p = strrchr(tmp, '.');
if ((p) && (!strcmp(p, ".edj")))
snprintf(buf, sizeof(buf), "%s", tmp);
}
icon = edje_object_add(evas_object_evas_get(cfdata->gui.list));
if (!e_theme_edje_object_set(icon, "base/theme/fileman", buf))
e_theme_edje_object_set(icon, "base/theme/fileman", "e/icons/fileman/file");
e_widget_ilist_append(cfdata->gui.list, icon, mi->mime, _list_cb_sel, cfdata, NULL);
}
e_widget_ilist_go(cfdata->gui.list);
e_widget_min_size_get(cfdata->gui.list, &w, &h);

View File

@ -216,7 +216,8 @@ _get_icon(void *data)
E_Config_Dialog_Data *cfdata;
Evas_Object *icon = NULL;
const char *tmp;
char buf[4096];
cfdata = data;
if (!cfdata) return icon;
@ -226,8 +227,10 @@ _get_icon(void *data)
switch (cfdata->type)
{
case THUMB:
snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", cfdata->mime);
icon = edje_object_add(evas_object_evas_get(cfdata->gui.icon));
e_theme_edje_object_set(icon, "base/theme/fileman", "e/icons/fileman/file");
if (!e_theme_edje_object_set(icon, "base/theme/fileman", buf))
e_theme_edje_object_set(icon, "base/theme/fileman", "e/icons/fileman/file");
break;
case EDJ:
icon = edje_object_add(evas_object_evas_get(cfdata->gui.icon));