Enlightenment CVS committal Author : handyande Project : misc Module : engage
Dir : misc/engage/src/module Modified Files: e_mod_main.c e_mod_main.h Log Message: Keep and Remove icons from engage - thanks to Florian Zaehringer =================================================================== RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -3 -r1.62 -r1.63 --- e_mod_main.c 27 Jul 2005 10:04:05 -0000 1.62 +++ e_mod_main.c 13 Aug 2005 10:33:48 -0000 1.63 @@ -123,6 +123,8 @@ static void _engage_bar_cb_menu_tray(void *data, E_Menu *m, E_Menu_Item *mi); static void _engage_bar_cb_menu_edit_icon(void *data, E_Menu *m, E_Menu_Item *mi); +static void _engage_bar_cb_menu_keep_icon(void *data, E_Menu *m, E_Menu_Item *mi); +static void _engage_bar_cb_menu_remove_icon(void *data, E_Menu *m, E_Menu_Item *mi); static int _engage_zoom_function(double d, double *zoom, double *disp, Engage_Bar *eb); static int _engage_border_ignore(E_Border *bd); @@ -524,7 +526,40 @@ static void _engage_dotorder_app_del(Engage *e, char *name) { - printf("FIXME, remove an app from .order\n"); + FILE *f; + char buf[4096]; + char *buf_ptr; + char *dotorder; + Ecore_List *list = ecore_list_new(); + + dotorder = _engage_dotorder_locate(e); + if (!dotorder) + return; + + if ((f = fopen(dotorder, "r+")) == NULL) + return; + + while (fgets(buf, 4096, f)) + { + if (strncmp(name, buf, strlen(name)) != 0) + ecore_list_append(list, strdup(buf)); + } + fclose(f); + ecore_list_goto_first(list); + + if ((f = fopen(dotorder, "w")) == NULL) + return; + + while((buf_ptr = ecore_list_next(list))) + { + snprintf(buf, 4096, "%s", buf_ptr); + fputs(buf_ptr, f); + free(buf_ptr); + } + free(dotorder); + fclose(f); + ecore_list_destroy(list); + } static Engage_Bar * @@ -736,6 +771,21 @@ e_menu_item_callback_set(mi, _engage_bar_cb_menu_zoom_huge, eb); mn = e_menu_new(); + eb->icon_menu = mn; + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, "Edit Icon"); + e_menu_item_callback_set(mi, _engage_bar_cb_menu_edit_icon, eb); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, "Keep Icon"); + e_menu_item_callback_set(mi, _engage_bar_cb_menu_keep_icon, eb); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, "Remove Icon"); + e_menu_item_callback_set(mi, _engage_bar_cb_menu_remove_icon, eb); + + mn = e_menu_new(); eb->menu = mn; mi = e_menu_item_new(mn); @@ -768,9 +818,9 @@ e_menu_item_separator_set(mi, 1); mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, "Edit Icon"); - e_menu_item_callback_set(mi, _engage_bar_cb_menu_edit_icon, eb); - + e_menu_item_label_set(mi, "Icon Options"); + e_menu_item_submenu_set(mi, eb->icon_menu); + mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); @@ -2403,6 +2453,28 @@ } static void +_engage_bar_cb_menu_keep_icon(void *data, E_Menu *m, E_Menu_Item *mi) +{ + Engage_Bar *eb; + eb = data; + char *file; + + file = ecore_file_get_file(eb->selected_ic->app->path); + _engage_dotorder_app_add(eb->engage, file); +} + +static void +_engage_bar_cb_menu_remove_icon(void *data, E_Menu *m, E_Menu_Item *mi) +{ + Engage_Bar *eb; + eb = data; + char *file; + + file = ecore_file_get_file(eb->selected_ic->app->path); + _engage_dotorder_app_del(eb->engage, file); +} + +static void _engage_bar_cb_menu_context_change(void *data, E_Menu *m, E_Menu_Item *mi) { Engage_Bar *eb; =================================================================== RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- e_mod_main.h 24 Jun 2005 08:46:34 -0000 1.17 +++ e_mod_main.h 13 Aug 2005 10:33:48 -0000 1.18 @@ -61,6 +61,7 @@ Evas *evas; E_Menu *menu; E_Menu *zoom_menu; + E_Menu *icon_menu; E_Menu *context_menu; Evas_Object *bar_object; ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs