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