Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_int_border_menu.c 


Log Message:
Re-enable the "Add app to launcher" border menu item; fixed to use e_order
now.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -3 -r1.62 -r1.63
--- e_int_border_menu.c 16 Apr 2007 09:37:16 -0000      1.62
+++ e_int_border_menu.c 16 Apr 2007 10:27:45 -0000      1.63
@@ -31,6 +31,8 @@
 static void _e_border_menu_cb_lower(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_state_pre(void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void _e_border_menu_cb_fav_add(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_border_menu_cb_ibar_add_pre(void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void _e_border_menu_cb_ibar_add(void *data, E_Menu *m, E_Menu_Item *mi);
 
 EAPI void
 e_int_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key, 
Ecore_X_Time timestamp)
@@ -270,6 +272,11 @@
             e_menu_item_label_set(mi, _("Add To Favorites Menu"));
             e_menu_item_callback_set(mi, _e_border_menu_cb_fav_add, bd);
             e_util_menu_item_edje_icon_set(mi, "enlightenment/favorites");
+            
+            mi = e_menu_item_new(m);
+            e_menu_item_label_set(mi, _("Add To Launcher"));
+            e_menu_item_submenu_pre_callback_set(mi, 
_e_border_menu_cb_ibar_add_pre, bd);
+            e_util_menu_item_edje_icon_set(mi, 
"enlightenment/ibar_applications");
          }
        else if (bd->client.icccm.class) /* icons with no class useless to 
borders */
          {
@@ -802,4 +809,56 @@
    efreet_menu_desktop_insert(menu, bd->desktop, -1);
    efreet_menu_save(menu, buf);
    efreet_menu_free(menu);
+}
+
+static void 
+_e_border_menu_cb_ibar_add_pre(void *data, E_Menu *m, E_Menu_Item *mi) 
+{
+   E_Menu *sm;
+   E_Border *bd;
+   Ecore_List *dirs;
+   char buf[4096], *file;
+   
+   bd = data;
+   if (!bd) return;
+   snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar", 
+           e_user_homedir_get());
+   dirs = ecore_file_ls(buf);
+   if (!dirs) return;
+   
+   sm = e_menu_new();
+   while ((file = ecore_list_next(dirs))) 
+     {
+       E_Menu_Item *smi;
+       
+       if (file[0] == '.') continue;
+       snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s", 
+                e_user_homedir_get(), file);
+       if (ecore_file_is_dir(buf)) 
+         {
+            smi = e_menu_item_new(sm);
+            e_menu_item_label_set(smi, file);
+            e_menu_item_callback_set(smi, _e_border_menu_cb_ibar_add, file);
+         }
+     }
+   e_object_data_set(E_OBJECT(sm), bd);
+   e_menu_item_submenu_set(mi, sm);
+}
+
+static void 
+_e_border_menu_cb_ibar_add(void *data, E_Menu *m, E_Menu_Item *mi) 
+{
+   E_Order *od;
+   E_Border *bd;
+   char buf[4096];
+   
+   bd = e_object_data_get(E_OBJECT(m));
+   if (!bd) return;
+   if (!bd->desktop) return;
+   
+   snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s/.order", 
+           e_user_homedir_get(), (char *)data);
+   od = e_order_new(buf);
+   if (!od) return;
+   e_order_append(od, bd->desktop);
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to