Enlightenment CVS committal

Author  : urandom
Project : e17
Module  : apps/e

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


Modified Files:
        e_mod_main.c 


Log Message:
the pager and iconbox now emit a signal when a border changes state from urgent
to normal and the other way around.

for the themers: the iconbox icon, the pager window and the pager desk, receive
 the signals e,state,urgent and e,state,not_urgent, so you can do something nice
 with those.


===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/pager/e_mod_main.c,v
retrieving revision 1.190
retrieving revision 1.191
diff -u -3 -r1.190 -r1.191
--- e_mod_main.c        24 Sep 2006 13:37:37 -0000      1.190
+++ e_mod_main.c        24 Oct 2006 14:32:22 -0000      1.191
@@ -109,6 +109,7 @@
 static int _pager_cb_event_border_desk_set(void *data, int type, void *event);
 static int _pager_cb_event_border_stack(void *data, int type, void *event);
 static int _pager_cb_event_border_icon_change(void *data, int type, void 
*event);
+static int _pager_cb_event_border_urgent_change(void *data, int type, void 
*event);
 static int _pager_cb_event_zone_desk_count_set(void *data, int type, void 
*event);
 static int _pager_cb_event_desk_show(void *data, int type, void *event);
 static int _pager_cb_event_desk_name_change(void *data, int type, void *event);
@@ -1144,6 +1145,48 @@
 }
 
 static int
+_pager_cb_event_border_urgent_change(void *data, int type, void *event)
+{
+   E_Event_Border_Urgent_Change  *ev;
+   Evas_List                   *l, *l2;
+
+   ev = event;
+   for (l = pager_config->instances; l; l = l->next)
+     {
+       Instance *inst;
+
+       inst = l->data;
+        if (inst->pager->zone != ev->border->zone) continue;
+       for (l2 = inst->pager->desks; l2; l2 = l2->next)
+         {
+            Pager_Desk *pd;
+            Pager_Win *pw;
+
+            pd = l2->data;
+            pw = _pager_desk_window_find(pd, ev->border);
+            if (pw)
+              {
+                 if (ev->border->client.icccm.urgent)
+                   {
+                      edje_object_signal_emit(pd->o_desk, 
+                            "e,state,urgent", "e");
+                      edje_object_signal_emit(pw->o_window, 
+                            "e,state,urgent", "e");
+                   }
+                 else
+                   {
+                      edje_object_signal_emit(pd->o_desk, 
+                            "e,state,not_urgent", "e");
+                      edje_object_signal_emit(pw->o_window, 
+                            "e,state,not_urgent", "e");
+                   }
+              }
+         }
+     }
+   return 1;
+}
+
+static int
 _pager_cb_event_zone_desk_count_set(void *data, int type, void *event)
 {
    Evas_List *l;
@@ -1714,6 +1757,10 @@
    pager_config->handlers = evas_list_append
      (pager_config->handlers, ecore_event_handler_add
       (E_EVENT_BORDER_ICON_CHANGE, _pager_cb_event_border_icon_change, NULL));
+   pager_config->handlers = evas_list_append
+     (pager_config->handlers, ecore_event_handler_add
+      (E_EVENT_BORDER_URGENT_CHANGE, 
+       _pager_cb_event_border_urgent_change, NULL));
    pager_config->handlers = evas_list_append
      (pager_config->handlers, ecore_event_handler_add
       (E_EVENT_ZONE_DESK_COUNT_SET, _pager_cb_event_zone_desk_count_set, 
NULL));



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to