Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_main.c e_order.c e_order.h 


Log Message:
Keep track of order objects.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.214
retrieving revision 1.215
diff -u -3 -r1.214 -r1.215
--- e_main.c    4 Apr 2007 12:51:51 -0000       1.214
+++ e_main.c    4 Apr 2007 22:25:41 -0000       1.215
@@ -819,6 +819,14 @@
      }
    _e_main_shutdown_push(e_desklock_shutdown);
 
+   TS("order");
+   if (!e_order_init())
+     {
+       e_error_message_show(_("Enlightenment cannot set up its order file 
system."));
+       _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(e_order_shutdown);
+
    TS("add idle enterers");
    /* add in a handler that just before we go idle we flush x */
    _e_main_idle_enterer_flusher = ecore_idle_enterer_add(_e_main_cb_x_flusher, 
NULL);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_order.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- e_order.c   30 Mar 2007 12:14:32 -0000      1.10
+++ e_order.c   4 Apr 2007 22:25:41 -0000       1.11
@@ -14,7 +14,29 @@
 static void _e_order_read       (E_Order *eo);
 static void _e_order_save       (E_Order *eo);
 
+static Evas_List *orders = NULL;
+
 /* externally accessible functions */
+EAPI int
+e_order_init(void)
+{
+   return 1;
+}
+
+EAPI int
+e_order_shutdown(void)
+{
+   Evas_List *l, *tmp;
+
+   for (l = orders; l;)
+     {
+       tmp = l;
+       l = l->next;
+       e_object_del(E_OBJECT(tmp->data));
+     }
+   return 1;
+}
+
 EAPI E_Order *
 e_order_new(const char *path)
 {
@@ -29,6 +51,8 @@
    _e_order_read(eo);
    eo->monitor = ecore_file_monitor_add(path, _e_order_cb_monitor, eo);
 
+   orders = evas_list_append(orders, eo);
+
    return eo;
 }
 
@@ -121,6 +145,7 @@
    evas_list_free(eo->desktops);
    if (eo->path) evas_stringshare_del(eo->path);
    if (eo->monitor) ecore_file_monitor_del(eo->monitor);
+   orders = evas_list_remove(orders, eo);
    free(eo);
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_order.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_order.h   25 Mar 2007 10:16:05 -0000      1.5
+++ e_order.h   4 Apr 2007 22:25:41 -0000       1.6
@@ -25,6 +25,9 @@
    } cb;
 };
 
+EAPI int e_order_init(void);
+EAPI int e_order_shutdown(void);
+
 EAPI E_Order *e_order_new(const char *path);
 EAPI void     e_order_update_callback_set(E_Order *eo, void (*cb)(void *data, 
E_Order *eo), void *data);
 



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