Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h e_exec.c e_exec.h e_fm.c 
        e_int_border_menu.c e_int_menus.c e_utils.c e_utils.h 


Log Message:
Convert borders to efreet.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.575
retrieving revision 1.576
diff -u -3 -r1.575 -r1.576
--- e_border.c  25 Mar 2007 13:49:29 -0000      1.575
+++ e_border.c  25 Mar 2007 17:23:48 -0000      1.576
@@ -169,7 +169,9 @@
 
    handlers = evas_list_append(handlers, 
ecore_event_handler_add(E_EVENT_POINTER_WARP, _e_border_cb_pointer_warp, NULL));
 
+#if 0
    e_app_change_callback_add(_e_border_app_change, NULL);
+#endif
 
    E_EVENT_BORDER_ADD = ecore_event_type_new();
    E_EVENT_BORDER_REMOVE = ecore_event_type_new();
@@ -205,7 +207,9 @@
        ecore_event_handler_del(h);
      }
    
+#if 0
    e_app_change_callback_del(_e_border_app_change, NULL);
+#endif
    
    return 1;
 }
@@ -2572,15 +2576,9 @@
 e_border_icon_add(E_Border *bd, Evas *evas)
 {
    Evas_Object *o;
-   E_App *a = NULL;
-   
+ 
    E_OBJECT_CHECK_RETURN(bd, NULL);
    E_OBJECT_TYPE_CHECK_RETURN(bd, E_BORDER_TYPE, NULL);
-   if (bd->app)
-     {
-       e_object_unref(E_OBJECT(bd->app));
-       bd->app = NULL;
-     }
 
    o = NULL;
    if (bd->internal)
@@ -2620,20 +2618,9 @@
      }
    if (!o)
      {
-       if ((bd->client.icccm.name) && (bd->client.icccm.class))
-         {
-            a = e_app_border_find(bd);
-         }
-       if (!a)
-         {
-            a = e_app_launch_id_pid_find(bd->client.netwm.startup_id,
-                                         bd->client.netwm.pid);
-         }
-       if (a)
+       if (bd->desktop)
          {
-            o = e_app_icon_add(a, evas);
-            bd->app = a;
-            e_object_ref(E_OBJECT(bd->app));
+            o = e_util_desktop_icon_add(bd->desktop, "24x24", evas);
          }
        else if (bd->client.netwm.icons)
          {
@@ -3062,12 +3049,7 @@
        e_object_unref(E_OBJECT(bd->cur_mouse_action));
        bd->cur_mouse_action = NULL;
      }
-   if (bd->app)
-     {
-       e_object_unref(E_OBJECT(bd->app));
-       bd->app = NULL;
-     }
-   
+
    E_FREE(bd->shape_rects);
    bd->shape_rects_num = 0;
 /*   
@@ -6403,6 +6385,11 @@
             evas_object_del(bd->icon_object);
             bd->icon_object = NULL;
          }
+       bd->desktop = efreet_util_desktop_wm_class_find(bd->client.icccm.name,
+                                                       bd->client.icccm.class);
+       if (!bd->desktop)
+         bd->desktop = e_exec_startup_id_pid_find(bd->client.netwm.startup_id,
+                                                  bd->client.netwm.pid);
        bd->icon_object = e_border_icon_add(bd, bd->bg_evas);
        if ((bd->focused) && (bd->icon_object))
          edje_object_signal_emit(bd->icon_object, "e,state,focused", "e");
@@ -7187,6 +7174,7 @@
    return id;
 }
 
+#if 0
 static void
 _e_border_app_change(void *data, E_App *app, E_App_Change change)
 {
@@ -7223,6 +7211,7 @@
        break;
      }
 }
+#endif
 
 static void
 _e_border_pointer_resize_begin(E_Border *bd)
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -3 -r1.156 -r1.157
--- e_border.h  2 Mar 2007 17:00:20 -0000       1.156
+++ e_border.h  25 Mar 2007 17:23:48 -0000      1.157
@@ -454,7 +454,7 @@
    E_Border  *parent;
    Evas_List *transients;
 
-   E_App *app;
+   Efreet_Desktop *desktop;
    E_Pointer *pointer;
 };
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_exec.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_exec.c    25 Mar 2007 10:16:05 -0000      1.4
+++ e_exec.c    25 Mar 2007 17:23:48 -0000      1.5
@@ -14,6 +14,7 @@
 
 typedef struct _E_Exec_Launch   E_Exec_Launch;
 typedef struct _E_Exec_Instance E_Exec_Instance;
+typedef struct _E_Exec_Search   E_Exec_Search;
 
 struct _E_Exec_Launch
 {
@@ -25,11 +26,18 @@
 {
    Efreet_Desktop *desktop;
    Ecore_Exe      *exe;
-   int             launch_id;
+   int             startup_id;
    double          launch_time;
    Ecore_Timer    *expire_timer;
 };
 
+struct _E_Exec_Search
+{
+   Efreet_Desktop *desktop;
+   int             startup_id;
+   pid_t           pid;
+};
+
 struct _E_Config_Dialog_Data
 {
    Efreet_Desktop *desktop;
@@ -49,6 +57,8 @@
 static int  _e_exec_cb_expire_timer(void *data);
 static int  _e_exec_cb_exit(void *data, int type, void *event);
 
+static Evas_Bool _e_exec_startup_id_pid_find(Evas_Hash *hash, const char *key, 
void *value, void *data);
+
 static void         _e_exec_error_dialog(Efreet_Desktop *desktop, const char 
*exec, Ecore_Exe_Event_Del *event, Ecore_Exe_Event_Data *error, 
Ecore_Exe_Event_Data *read);
 static void         _fill_data(E_Config_Dialog_Data *cfdata);
 static void        *_create_data(E_Config_Dialog *cfd);
@@ -122,6 +132,18 @@
    return 1;
 }
 
+EAPI Efreet_Desktop *
+e_exec_startup_id_pid_find(int startup_id, pid_t pid)
+{
+   E_Exec_Search search;
+
+   search.desktop = NULL;
+   search.startup_id = startup_id;
+   search.pid = pid;
+   evas_hash_foreach(e_exec_instances, _e_exec_startup_id_pid_find, &search);
+   return search.desktop;
+}
+
 /* local subsystem functions */
 static void
 _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
@@ -218,7 +240,7 @@
 
        inst->desktop = desktop;
        inst->exe = exe;
-       inst->launch_id = startup_id;
+       inst->startup_id = startup_id;
        inst->launch_time = ecore_time_get();
        inst->expire_timer = ecore_timer_add(10.0, _e_exec_cb_expire_timer, 
inst);
 
@@ -303,6 +325,29 @@
    e_exec_start_pending = evas_list_remove(e_exec_start_pending, 
inst->desktop);
    if (inst->expire_timer) ecore_timer_del(inst->expire_timer);
    free(inst);
+   return 1;
+}
+
+static Evas_Bool
+_e_exec_startup_id_pid_find(Evas_Hash *hash, const char *key, void *value, 
void *data)
+{
+   E_Exec_Search *search;
+   Evas_List     *instances, *l;
+
+   search = data;
+   instances = value;
+   for (l = instances; l; l = l->next)
+     {
+       E_Exec_Instance *inst;
+
+       inst = l->data;
+       if (((search->startup_id > 0) && (search->startup_id == 
inst->startup_id)) ||
+           ((search->pid > 1) && (search->pid == 
ecore_exe_pid_get(inst->exe))))
+         {
+            search->desktop = inst->desktop;
+            return 0;
+         }
+     }
    return 1;
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_exec.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_exec.h    24 Mar 2007 21:23:48 -0000      1.2
+++ e_exec.h    25 Mar 2007 17:23:49 -0000      1.3
@@ -11,5 +11,7 @@
 EAPI int  e_exec_shutdown(void);
 EAPI int  e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec, 
Ecore_List *files, const char *launch_method);
 
+EAPI Efreet_Desktop *e_exec_startup_id_pid_find(int startup_id, pid_t pid);
+
 #endif
 #endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.c,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -3 -r1.138 -r1.139
--- e_fm.c      25 Mar 2007 14:12:50 -0000      1.138
+++ e_fm.c      25 Mar 2007 17:23:49 -0000      1.139
@@ -769,7 +769,7 @@
 e_fm2_window_object_set(Evas_Object *obj, E_Object *eobj)
 {
    E_Fm2_Smart_Data *sd;
-   const char *drop[] = { "enlightenment/eapp", "enlightenment/border", 
"text/uri-list" };
+   const char *drop[] = { "enlightenment/desktop", "enlightenment/border", 
"text/uri-list" };
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return; // safety
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- e_int_border_menu.c 4 Mar 2007 07:03:10 -0000       1.58
+++ e_int_border_menu.c 25 Mar 2007 17:23:49 -0000      1.59
@@ -16,8 +16,6 @@
 static void _e_border_menu_cb_unmaximize(void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item 
*mi);
-static void _e_border_menu_cb_icon_add(void *data, E_Menu *m, E_Menu_Item *mi);
-static void _e_border_menu_cb_icon_add_pre(void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void _e_border_menu_cb_prop(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_on_top(void *data, E_Menu *m, E_Menu_Item *mi);
@@ -254,6 +252,7 @@
                                  "e/widgets/border/default/skip_winlist");
      }
    
+#if 0
    if (!bd->internal) 
      {
        mi = e_menu_item_new(m);
@@ -272,11 +271,8 @@
             e_menu_item_label_set(mi, _("Create Icon"));
             e_menu_item_callback_set(mi, _e_border_menu_cb_icon_edit, bd);
          }
-       mi = e_menu_item_new(m);
-       e_menu_item_label_set(mi, _("Add App To Launcher"));
-       e_menu_item_submenu_pre_callback_set(mi, 
_e_border_menu_cb_icon_add_pre, bd);
-       e_util_menu_item_edje_icon_set(mi, "enlightenment/applications");
      }
+#endif
    
    mi = e_menu_item_new(m);
    e_menu_item_separator_set(mi, 1);
@@ -535,6 +531,7 @@
      }
 }
 
+#if 0
 static void
 _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi)
 {
@@ -621,74 +618,7 @@
                             "change."));
      }
 }
-
-static void 
-_e_border_menu_cb_icon_add(void *data, E_Menu *m, E_Menu_Item *mi)
-{
-   E_App *a, *bar_apps;
-   E_Border *bd;
-   Evas_List *l;
-   char buf[4096];
-   int found = 0;
-
-   bd = e_object_data_get(E_OBJECT(m));
-   a = bd->app;
-   if (!a)
-     return;
-   
-   snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s", 
e_user_homedir_get(), (char *)data);
-   bar_apps = e_app_new(buf, 0);
-   if (bar_apps)
-     e_app_subdir_scan(bar_apps, 0);
-   for (l = bar_apps->subapps; l; l = l->next) 
-     {
-       E_App *ap;
-       
-       ap = l->data;
-       if (!ap) continue;
-       if (!e_app_valid_exe_get(ap)) continue;
-       if (!strcmp(ap->name, a->name)) 
-         {
-            found = 1;
-            break;
-         }
-     }
-   if (!found)
-     e_app_list_append(a, bar_apps);
-}
-
-static void 
-_e_border_menu_cb_icon_add_pre(void *data, E_Menu *m, E_Menu_Item *mi)
-{
-   E_Menu *subm;
-   E_Menu_Item *submi;
-   E_Border *bd;
-   Ecore_List *dirs;
-   char buf[4096], *file;
-   
-   bd = data;
-
-   snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar", 
e_user_homedir_get());
-   dirs = ecore_file_ls(buf);
-   if (!dirs) return;
-   
-   subm = e_menu_new();
-   while ((file = ecore_list_next(dirs))) 
-     {
-       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)) 
-         {
-            submi = e_menu_item_new(subm);
-            e_menu_item_label_set(submi, file);
-            e_menu_item_callback_set(submi, _e_border_menu_cb_icon_add, file);
-         }
-     }
-
-   e_object_data_set(E_OBJECT(subm), bd);
-   e_menu_item_submenu_set(mi, subm);
-}
+#endif
 
 static void
 _e_border_menu_cb_prop(void *data, E_Menu *m, E_Menu_Item *mi)
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.205
retrieving revision 1.206
diff -u -3 -r1.205 -r1.206
--- e_int_menus.c       24 Mar 2007 22:58:40 -0000      1.205
+++ e_int_menus.c       25 Mar 2007 17:23:49 -0000      1.206
@@ -1368,7 +1368,6 @@
    for (l = borders; l; l = l->next)
      {
        E_Border *bd = l->data;
-       E_App *a;
        const char *title = "";
        
        title = e_border_name_get(bd);
@@ -1381,8 +1380,7 @@
        e_object_ref(E_OBJECT(bd));
 //     e_object_breadcrumb_add(E_OBJECT(bd), "lost_clients_menu");
        e_menu_item_callback_set(mi, _e_int_menus_lost_clients_item_cb, bd);
-       a = bd->app;
-       if (a) e_app_icon_add_to_menu_item(a, mi);
+       if (bd->desktop) e_util_desktop_menu_item_icon_add(bd->desktop, 
"24x24", mi);
      }
    e_object_free_attach_func_set(E_OBJECT(m), 
                                 _e_int_menus_lost_clients_free_hook);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_utils.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -3 -r1.61 -r1.62
--- e_utils.c   24 Mar 2007 19:18:20 -0000      1.61
+++ e_utils.c   25 Mar 2007 17:23:49 -0000      1.62
@@ -861,6 +861,33 @@
    return NULL;
 }
 
+EAPI void
+e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, const char *size, 
E_Menu_Item *mi)
+{
+   const char *path = NULL;
+
+   if ((!desktop) || (!desktop->icon)) return;
+
+   if (desktop->icon[0] == '/') path = desktop->icon;
+   else path = efreet_icon_path_find(e_config->icon_theme, desktop->icon, 
size);
+
+   if (path)
+     {
+       const char *ext;
+
+       ext = strrchr(path, '.');
+       if (ext)
+         {
+            if (strcmp(ext, ".edj") == 0)
+              e_menu_item_icon_edje_set(mi, path, "icon");
+            else
+              e_menu_item_icon_file_set(mi, path);
+         }
+       else
+         e_menu_item_icon_file_set(mi, path);
+     }
+}
+
 /* local subsystem functions */
 static void
 _e_util_container_fake_mouse_up_cb(void *data)
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_utils.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- e_utils.h   24 Mar 2007 19:18:20 -0000      1.32
+++ e_utils.h   25 Mar 2007 17:23:49 -0000      1.33
@@ -51,6 +51,7 @@
 EAPI void         e_util_library_path_restore(void);
 EAPI Evas_Object *e_util_icon_add(const char *path, Evas *evas);
 EAPI Evas_Object *e_util_desktop_icon_add(Efreet_Desktop *desktop, const char 
*size, Evas *evas);
+EAPI void         e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, 
const char *size, E_Menu_Item *mi);
 
 #endif
 #endif



-------------------------------------------------------------------------
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