Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_int_config_shelf.c e_shelf.c 


Log Message:
Always keep shelf list sorted on id.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_shelf.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e_int_config_shelf.c        2 Jul 2006 16:19:51 -0000       1.12
+++ e_int_config_shelf.c        20 Jul 2006 13:36:02 -0000      1.13
@@ -137,33 +137,21 @@
 _cb_add(void *data, void *data2)
 {
    E_Config_Dialog_Data *cfdata;
-   Evas_List *shelves;
-   
-   cfdata = data;
-   while ((shelves = e_shelf_list()))
-     {
-       E_Shelf *es;
-       
-       es = shelves->data;
-       e_object_del(E_OBJECT(es));
-     }
-   ////
-     {
-       E_Config_Shelf *cfg;
-       
-       cfg = E_NEW(E_Config_Shelf, 1);
-       cfg->name = evas_stringshare_add("shelf");
-       cfg->container = cfdata->cfd->con->num;
-       cfg->zone = cfdata->cfd->dia->win->border->zone->num;
-       cfg->popup = 1;
-       cfg->layer = 200;
-       cfg->orient = E_GADCON_ORIENT_CORNER_BR;
-       cfg->fit_along = 1;
-       cfg->fit_size = 0;
-       cfg->style = evas_stringshare_add("default");
-       cfg->size = 40;
-       e_config->shelves = evas_list_append(e_config->shelves, cfg);
-     }
+   E_Config_Shelf *cfg;
+
+   cfg = E_NEW(E_Config_Shelf, 1);
+   cfg->name = evas_stringshare_add("shelf");
+   cfg->container = cfdata->cfd->con->num;
+   cfg->zone = cfdata->cfd->dia->win->border->zone->num;
+   cfg->popup = 1;
+   cfg->layer = 200;
+   cfg->orient = E_GADCON_ORIENT_CORNER_BR;
+   cfg->fit_along = 1;
+   cfg->fit_size = 0;
+   cfg->style = evas_stringshare_add("default");
+   cfg->size = 40;
+   e_config->shelves = evas_list_append(e_config->shelves, cfg);
+
    e_shelf_config_init();
    e_config_save_queue();
    
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- e_shelf.c   23 Jun 2006 07:20:24 -0000      1.30
+++ e_shelf.c   20 Jul 2006 13:36:02 -0000      1.31
@@ -19,9 +19,9 @@
 static void _e_shelf_cb_mouse_up(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
 static void _e_shelf_cb_mouse_in(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
 static void _e_shelf_cb_mouse_out(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
+static int  _e_shelf_cb_id_sort(void *data1, void *data2);
 
 static Evas_List *shelves = NULL;
-static int shelf_id = 0;
 
 /* externally accessible functions */
 EAPI int
@@ -41,6 +41,14 @@
 {
    Evas_List *l;
    
+   while (shelves)
+     {
+       E_Shelf *es;
+
+       es = shelves->data;
+       e_object_del(E_OBJECT(es));
+     }
+
    for (l = e_config->shelves; l; l = l->next)
      {
        E_Config_Shelf *cf_es;
@@ -133,13 +141,11 @@
        evas_object_layer_set(es->o_event, layer);
        evas_object_layer_set(es->o_base, layer);
      }
-   if (id < 0)
-     {
-       es->id = evas_list_count(shelves);
-       shelf_id++;
-     }
+   if (id <= 0)
+     es->id = evas_list_count(shelves);
    else
      es->id = id;
+
    snprintf(buf, sizeof(buf), "%i", es->id);
    es->gadcon = e_gadcon_swallowed_new(es->name, buf, es->o_base, "items");
    e_gadcon_min_size_request_callback_set(es->gadcon,
@@ -161,6 +167,7 @@
                                      es);
    
    shelves = evas_list_append(shelves, es);
+   shelves = evas_list_sort(shelves, -1, _e_shelf_cb_id_sort);
    return es;
 }
 
@@ -880,4 +887,14 @@
    es = data;
    ev = event_info;
    edje_object_signal_emit(es->o_base, "inactive", "");
+}
+
+static int
+_e_shelf_cb_id_sort(void *data1, void *data2)
+{
+   E_Shelf *es1, *es2;
+
+   es1 = data1;
+   es2 = data2;
+   return (es1->id) > (es2->id);
 }



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