rendered paste bodystatic void
_fill_list(E_Config_Dialog_Data *cfdata)
{
Evas *evas;
Evas_Coord w;
Efreet_Menu *menu, *entry;
char buf[4096];
snprintf(buf, sizeof(buf), "%s/.e/e/applications/menu/favorite.menu",
e_user_homedir_get());
menu = efreet_menu_parse(buf);
if (!menu->entries) return;
evas = evas_object_evas_get(cfdata->o_list);
evas_event_freeze(evas);
edje_freeze();
e_widget_ilist_freeze(cfdata->o_list);
ecore_list_goto_first(menu->entries);
while ((entry = ecore_list_next(menu->entries)))
{
Evas_Object *icon = NULL;
const char *file;
if (entry->type != EFREET_MENU_ENTRY_DESKTOP) continue;
if (entry->icon)
{
if (entry->icon[0] == '/') file = entry->icon;
else
file = efreet_icon_path_find(e_config->icon_theme,
entry->icon, "24x24");
icon = e_icon_add(evas);
e_icon_file_set(icon, file);
e_icon_fill_inside_set(icon, 1);
}
e_widget_ilist_append(cfdata->o_list, icon, entry->name,
_list_cb_selected, cfdata, NULL);
}
if (entry) efreet_menu_free(entry);
if (menu) efreet_menu_free(menu);
e_widget_ilist_go(cfdata->o_list);
e_widget_min_size_get(cfdata->o_list, &w, NULL);
e_widget_min_size_set(cfdata->o_list, w, 200);
e_widget_ilist_thaw(cfdata->o_list);
edje_thaw();
evas_event_thaw(evas);
}
static void
_list_cb_selected(void *data)
{
E_Config_Dialog_Data *cfdata;
Efreet_Desktop *desk;
const char *name;
cfdata = data;
e_widget_disabled_set(cfdata->o_del, 0);
name = e_widget_ilist_selected_label_get(cfdata->o_list);
printf("Name: %s\n", name);
desk = efreet_util_desktop_name_find(name);
if (!desk) return;
printf("Desk: %s\n", desk->orig_path);
}