Enlightenment CVS committal Author : devilhorns Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_config_apps_menu.c Log Message: TODO--: create a favorites.menu if it doesn't exist. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_apps_menu.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_int_config_apps_menu.c 6 Apr 2007 09:52:02 -0000 1.6 +++ e_int_config_apps_menu.c 6 Apr 2007 10:27:48 -0000 1.7 @@ -12,6 +12,7 @@ static void _list_cb_selected(void *data); static void _cb_add(void *data, void *data2); static void _cb_del(void *data, void *data2); +static void _create_fav_menu(const char *path); struct _E_Config_Dialog_Data { @@ -53,7 +54,11 @@ snprintf(buf, sizeof(buf), "%s/.e/e/applications/menu/favorite.menu", e_user_homedir_get()); cfdata->menu = efreet_menu_parse(buf); - /* TODO: If there is no menu, create an empty one */ + if (!cfdata->menu) + { + _create_fav_menu(buf); + cfdata->menu = efreet_menu_parse(buf); + } return cfdata; } @@ -169,7 +174,11 @@ Efreet_Menu *menu, *entry; menu = cfdata->menu; - if ((!menu) || (!menu->entries)) return; + if ((!menu) || (!menu->entries)) + { + e_widget_min_size_set(cfdata->o_list, 200, 200); + return; + } evas = evas_object_evas_get(cfdata->o_list); evas_event_freeze(evas); @@ -277,4 +286,35 @@ desk = efreet_desktop_get(cfdata->fav); if (!desk) return; efreet_menu_desktop_remove(cfdata->menu, desk); +} + +static void +_create_fav_menu(const char *path) +{ + FILE *f; + + if (ecore_file_exists(path)) return; + + f = fopen(path, "w"); + if (!f) return; + + fprintf(f, "<?xml version=\"1.0\"?>\n"); + fprintf(f, "<!DOCTYPE Menu PUBLIC \"-//freedesktop//DTD Menu 1.0//EN\" " + "\"http://standards.freedesktop.org/menu-spec/menu-1.0.dtd\">\n"); + fprintf(f, "<Menu>\n"); + fprintf(f, " <Name>Favorites</Name>\n"); + fprintf(f, " <DefaultAppDirs/>\n"); + fprintf(f, " <DefaultDirectoryDirs/>\n"); + fprintf(f, " <Layout>\n"); + fprintf(f, " <Filename>xterm.desktop</Filename>\n"); + fprintf(f, " <Filename>firefox.desktop</Filename>\n"); + fprintf(f, " <Filename>xmms.desktop</Filename>\n"); + fprintf(f, " </Layout>\n"); + fprintf(f, " <Include>\n"); + fprintf(f, " <Filename>xterm.desktop</Filename>\n"); + fprintf(f, " <Filename>firefox.desktop</Filename>\n"); + fprintf(f, " <Filename>xmms.desktop</Filename>\n"); + fprintf(f, " </Include>\n"); + fprintf(f, "</Menu>\n"); + fclose(f); } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs