All pastes #422796 Raw Edit

Someone

public text v1 · immutable
·published 2007-04-03 18:25 UTC
rendered paste body
static 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);
}