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

Reply via email to