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

Reply via email to