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