Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/pager


Modified Files:
        e_mod_main.c e_mod_main.h 


Log Message:


handle iconify, de-iconify
handle icon changes...

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -3 -r1.67 -r1.68
--- e_mod_main.c        19 Mar 2005 17:39:25 -0000      1.67
+++ e_mod_main.c        20 Mar 2005 11:49:32 -0000      1.68
@@ -46,6 +46,7 @@
 static int         _pager_face_cb_event_border_desk_set(void *data, int type, 
void *event);
 static int         _pager_face_cb_event_border_raise(void *data, int type, 
void *event);
 static int         _pager_face_cb_event_border_lower(void *data, int type, 
void *event);
+static int         _pager_face_cb_event_border_icon_change(void *data, int 
type, void *event);
 static int         _pager_face_cb_event_zone_desk_count_set(void *data, int 
type, void *event);
 static int         _pager_face_cb_event_desk_show(void *data, int type, void 
*event);
 static void        _pager_face_cb_menu_enabled(void *data, E_Menu *m, 
E_Menu_Item *mi);
@@ -311,6 +312,9 @@
    face->ev_handler_border_desk_set =
       ecore_event_handler_add(E_EVENT_BORDER_LOWER,
                              _pager_face_cb_event_border_lower, face);
+   face->ev_handler_border_icon_change =
+      ecore_event_handler_add(E_EVENT_BORDER_ICON_CHANGE,
+                             _pager_face_cb_event_border_icon_change, face);
    face->ev_handler_zone_desk_count_set =
       ecore_event_handler_add(E_EVENT_ZONE_DESK_COUNT_SET,
                              _pager_face_cb_event_zone_desk_count_set, face);
@@ -374,6 +378,9 @@
    ecore_event_handler_del(face->ev_handler_border_stick);
    ecore_event_handler_del(face->ev_handler_border_unstick);
    ecore_event_handler_del(face->ev_handler_border_desk_set);
+   ecore_event_handler_del(face->ev_handler_border_raise);
+   ecore_event_handler_del(face->ev_handler_border_lower);
+   ecore_event_handler_del(face->ev_handler_border_icon_change);
    ecore_event_handler_del(face->ev_handler_zone_desk_count_set);
    ecore_event_handler_del(face->ev_handler_desk_show);
 
@@ -589,7 +596,7 @@
        o = edje_object_add(pd->face->evas);
        pw->icon_object = o;
        edje_object_file_set(o, app->path, "icon");
-       if (visible) evas_object_show(o);
+       evas_object_show(o);
        edje_object_part_swallow(pw->window_object, "icon", o);
      }
 
@@ -851,8 +858,11 @@
        pw = _pager_desk_border_find(pd, ev->border);
        if (pw)
          {
-            if (ev->border->desk->visible)
-              evas_object_hide(pw->window_object);
+             if (ev->border->desk->visible)
+              {
+                 pd->wins = evas_list_remove(pd->wins, pw);
+                 _pager_window_free(pw);
+              }
          }
      }
    return 1;
@@ -880,6 +890,27 @@
             if (ev->border->desk->visible)
               evas_object_show(pw->window_object);
          }
+       else
+         {
+            if (ev->border->sticky)
+              {
+                 /* create it and add it */
+                 pw = _pager_window_new(pd, ev->border);
+                 if (pw)
+                   pd->wins = evas_list_append(pd->wins, pw);
+              }
+            else
+              {
+                 if (ev->border->desk == pd->desk)
+                   {
+                      Pager_Win          *pw;
+                      
+                      pw = _pager_window_new(pd, ev->border);
+                      if (pw)
+                        pd->wins = evas_list_append(pd->wins, pw);
+                   }
+              }
+         }
      }
    return 1;
 }
@@ -1122,6 +1153,49 @@
 }
 
 static int
+_pager_face_cb_event_border_icon_change(void *data, int type, void *event)
+{
+   E_Event_Border_Icon_Change  *ev;
+   Pager_Face                  *face;
+   Evas_List                   *l;
+
+   face = data;
+   ev = event;
+   if (face->zone != ev->border->zone) return 1;
+   for (l = face->desks; l; l = l->next)
+     {
+       Pager_Desk *pd;
+       Pager_Win *pw, *pw2 = NULL;
+       
+       pd = l->data;
+       pw = _pager_desk_border_find(pd, ev->border);
+       if (pw)
+         {
+            E_App *app;
+            
+            if (pw->icon_object)
+              {
+                 evas_object_del(pw->icon_object);
+                 pw->icon_object = NULL;
+              }
+            app = e_app_window_name_class_find(ev->border->client.icccm.name,
+                                               ev->border->client.icccm.class);
+            if (app)
+              {
+                 Evas_Object *o;
+                 
+                 o = edje_object_add(pd->face->evas);
+                 pw->icon_object = o;
+                 edje_object_file_set(o, app->path, "icon");
+                 evas_object_show(o);
+                 edje_object_part_swallow(pw->window_object, "icon", o);
+              }
+         }
+     }
+   return 1;
+}
+
+static int
 _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event)
 {
    E_Event_Zone_Desk_Count_Set *ev;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- e_mod_main.h        18 Mar 2005 16:30:49 -0000      1.17
+++ e_mod_main.h        20 Mar 2005 11:49:32 -0000      1.18
@@ -70,6 +70,7 @@
    Ecore_Event_Handler *ev_handler_border_desk_set;
    Ecore_Event_Handler *ev_handler_border_raise;
    Ecore_Event_Handler *ev_handler_border_lower;
+   Ecore_Event_Handler *ev_handler_border_icon_change;
    Ecore_Event_Handler *ev_handler_zone_desk_count_set;
    Ecore_Event_Handler *ev_handler_desk_show;
 };




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to