Enlightenment CVS committal

Author  : urandom
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h 


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/bin/e_border.c,v
retrieving revision 1.556
retrieving revision 1.557
diff -u -3 -r1.556 -r1.557
--- e_border.c  21 Oct 2006 02:32:13 -0000      1.556
+++ e_border.c  24 Oct 2006 14:32:21 -0000      1.557
@@ -67,6 +67,7 @@
 static void _e_border_event_border_desk_set_free(void *data, void *ev);
 static void _e_border_event_border_stack_free(void *data, void *ev);
 static void _e_border_event_border_icon_change_free(void *data, void *ev);
+static void _e_border_event_border_urgent_change_free(void *data, void *ev);
 static void _e_border_event_border_focus_in_free(void *data, void *ev);
 static void _e_border_event_border_focus_out_free(void *data, void *ev);
 static void _e_border_event_border_resize_free(void *data, void *ev);
@@ -130,6 +131,7 @@
 EAPI int E_EVENT_BORDER_UNSTICK = 0;
 EAPI int E_EVENT_BORDER_STACK = 0;
 EAPI int E_EVENT_BORDER_ICON_CHANGE = 0;
+EAPI int E_EVENT_BORDER_URGENT_CHANGE = 0;
 EAPI int E_EVENT_BORDER_FOCUS_IN = 0;
 EAPI int E_EVENT_BORDER_FOCUS_OUT = 0;
 EAPI int E_EVENT_BORDER_PROPERTY = 0;
@@ -183,6 +185,7 @@
    E_EVENT_BORDER_UNSTICK = ecore_event_type_new();
    E_EVENT_BORDER_STACK = ecore_event_type_new();
    E_EVENT_BORDER_ICON_CHANGE = ecore_event_type_new();
+   E_EVENT_BORDER_URGENT_CHANGE = ecore_event_type_new();
    E_EVENT_BORDER_FOCUS_IN = ecore_event_type_new();
    E_EVENT_BORDER_FOCUS_OUT = ecore_event_type_new();
    E_EVENT_BORDER_PROPERTY = ecore_event_type_new();
@@ -6421,9 +6424,13 @@
          edje_object_signal_emit(bd->bg_object, "e,state,urgent", "e");
        else
          edje_object_signal_emit(bd->bg_object, "e,state,not_urgent", "e");
-       /* FIXME: we should probably do something with the pager or
-        * maybe raising the window if it becomes urgent
-        */
+       E_Event_Border_Urgent_Change *ev;
+
+       ev = calloc(1, sizeof(E_Event_Border_Urgent_Change));
+       ev->border = bd;
+       e_object_ref(E_OBJECT(bd));
+       ecore_event_add(E_EVENT_BORDER_URGENT_CHANGE, ev,
+             _e_border_event_border_urgent_change_free, NULL);
      }
    
    bd->new_client = 0;
@@ -6867,6 +6874,16 @@
 
    e = ev;
 //   e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event");
+   e_object_unref(E_OBJECT(e->border));
+   free(e);
+}
+
+static void
+_e_border_event_border_urgent_change_free(void *data, void *ev)
+{
+   E_Event_Border_Urgent_Change *e;
+
+   e = ev;
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -3 -r1.150 -r1.151
--- e_border.h  1 Sep 2006 15:37:23 -0000       1.150
+++ e_border.h  24 Oct 2006 14:32:22 -0000      1.151
@@ -87,6 +87,7 @@
 typedef struct _E_Event_Border_Desk_Set      E_Event_Border_Desk_Set;
 typedef struct _E_Event_Border_Stack         E_Event_Border_Stack;
 typedef struct _E_Event_Border_Icon_Change   E_Event_Border_Icon_Change;
+typedef struct _E_Event_Border_Urgent_Change E_Event_Border_Urgent_Change;
 typedef struct _E_Event_Border_Focus_In             E_Event_Border_Focus_In;
 typedef struct _E_Event_Border_Focus_Out     E_Event_Border_Focus_Out;
 typedef struct _E_Event_Border_Property      E_Event_Border_Property;
@@ -545,6 +546,11 @@
    E_Border *border;
 };
 
+struct _E_Event_Border_Urgent_Change
+{
+   E_Border *border;
+};
+
 struct _E_Event_Border_Property
 {
    E_Border *border;
@@ -642,6 +648,7 @@
 extern EAPI int E_EVENT_BORDER_DESK_SET;
 extern EAPI int E_EVENT_BORDER_STACK;
 extern EAPI int E_EVENT_BORDER_ICON_CHANGE;
+extern EAPI int E_EVENT_BORDER_URGENT_CHANGE;
 extern EAPI int E_EVENT_BORDER_FOCUS_IN;
 extern EAPI int E_EVENT_BORDER_FOCUS_OUT;
 extern EAPI int E_EVENT_BORDER_PROPERTY;



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