Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_gadcon.c e_gadcon.h e_int_gadcon_config.c 


Log Message:
Functions to create new config and del config.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -3 -r1.57 -r1.58
--- e_gadcon.c  30 Dec 2006 18:12:53 -0000      1.57
+++ e_gadcon.c  30 Dec 2006 21:00:19 -0000      1.58
@@ -632,6 +632,43 @@
 }
 
 EAPI E_Config_Gadcon_Client *
+e_gadcon_client_config_new(E_Gadcon *gc, const char *name)
+{
+   Evas_List              *l;
+   E_Config_Gadcon        *cf_gc;
+   E_Config_Gadcon_Client *cf_gcc;
+   int                     id = 0;
+   char                    buf[256];
+
+   E_OBJECT_CHECK_RETURN(gc, NULL);
+   E_OBJECT_TYPE_CHECK_RETURN(gc, E_GADCON_TYPE, NULL);
+   if (!name) return NULL;
+
+   cf_gc = e_gadcon_config_get(gc->name, gc->id);
+   if (!cf_gc) return NULL;
+   for (l = cf_gc->clients; l; l = l->next)
+     {
+       cf_gcc = l->data;
+       if (!strcmp(name, cf_gcc->name)) id++;
+     }
+   snprintf(buf, sizeof(buf), "%s.%s.%i", cf_gc->id, name, id);
+
+   cf_gcc = E_NEW(E_Config_Gadcon_Client, 1);
+   if (!cf_gcc) return NULL;
+   cf_gcc->name = evas_stringshare_add(name);
+   cf_gcc->id = evas_stringshare_add(buf);
+   cf_gcc->geom.res = 800;
+   cf_gcc->geom.size = 80;
+   cf_gcc->geom.pos = cf_gcc->geom.res - cf_gcc->geom.size;
+   cf_gcc->style = NULL;
+   cf_gcc->autoscroll = 0;
+   cf_gcc->resizable = 0;
+   cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc);
+   e_config_save_queue();
+   return cf_gcc;
+}
+
+EAPI E_Config_Gadcon_Client *
 e_gadcon_client_config_get(E_Gadcon *gc, const char *name, const char *id)
 {
    Evas_List              *l;
@@ -640,19 +677,18 @@
 
    E_OBJECT_CHECK_RETURN(gc, NULL);
    E_OBJECT_TYPE_CHECK_RETURN(gc, E_GADCON_TYPE, NULL);
-   if (!name) return NULL;
 
    cf_gc = e_gadcon_config_get(gc->name, gc->id);
    if (!cf_gc) return NULL;
    for (l = cf_gc->clients; l; l = l->next)
      {
        cf_gcc = l->data;
-       if ((!strcmp(cf_gcc->name, name)) &&
-           (!strcmp(cf_gcc->id, id)))
+       if (!strcmp(cf_gcc->id, id))
          {
             return cf_gcc;
          }
      }
+   if (!name) return NULL;
 
    cf_gcc = E_NEW(E_Config_Gadcon_Client, 1);
    if (!cf_gcc) return NULL;
@@ -669,6 +705,27 @@
    return cf_gcc;
 }
  
+EAPI void
+e_gadcon_client_config_del(E_Gadcon *gc, const char *id)
+{
+   E_Config_Gadcon *cf_gc;
+   E_Config_Gadcon_Client *cf_gcc;
+
+   cf_gc = e_gadcon_config_get(gc->name, gc->id);
+   if (cf_gc)
+     {
+       cf_gcc = e_gadcon_client_config_get(gc, NULL, id);
+       if (cf_gcc)
+         {
+            if (cf_gcc->name) evas_stringshare_del(cf_gcc->name);
+            if (cf_gcc->id) evas_stringshare_del(cf_gcc->id);
+            if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
+            cf_gc->clients = evas_list_remove(cf_gc->clients, cf_gcc);
+            free(cf_gcc);
+         }
+     }
+}
+
 EAPI E_Gadcon_Client *
 e_gadcon_client_new(E_Gadcon *gc, const char *style, Evas_Object *base_obj)
 {
@@ -1903,29 +1960,16 @@
    //       This should result in a reorder, not a remove.
    E_Gadcon_Client *gcc;
    E_Gadcon        *gc;
-   E_Config_Gadcon *cf_gc = NULL;
-   E_Config_Gadcon_Client *cf_gcc;
-   
+
    gcc = drag->data;
    gc = gcc->gadcon;
-   cf_gc = e_gadcon_config_get(gc->name, gc->id);
-   if (cf_gc)
-     {
-       cf_gcc = e_gadcon_client_config_get(gc, gcc->name, gcc->id);
-       if (cf_gcc)
-         {
-            if (cf_gcc->name) evas_stringshare_del(cf_gcc->name);
-            if (cf_gcc->id) evas_stringshare_del(cf_gcc->id);
-            if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
-            cf_gc->clients = evas_list_remove(cf_gc->clients, cf_gcc);
-            free(cf_gcc);
-         }
-     }
+   e_gadcon_client_config_del(gc, gcc->id);
    e_object_unref(E_OBJECT(drag->data));
 
    e_gadcon_unpopulate(gc);
    e_gadcon_populate(gc);
    e_config_save_queue();
+   e_gadcon_edit_begin(gc);
 }
 
 /* a smart object JUST for gadcon */
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- e_gadcon.h  30 Dec 2006 17:54:26 -0000      1.31
+++ e_gadcon.h  30 Dec 2006 21:00:19 -0000      1.32
@@ -178,7 +178,9 @@
 EAPI void             e_gadcon_dnd_window_set(E_Gadcon *gc, Ecore_X_Window 
win);
 EAPI Ecore_X_Window   e_gadcon_dnd_window_get(E_Gadcon *gc);
     
+EAPI E_Config_Gadcon_Client *e_gadcon_client_config_new(E_Gadcon *gc, const 
char *name);
 EAPI E_Config_Gadcon_Client *e_gadcon_client_config_get(E_Gadcon *gc, const 
char *name, const char *id);
+EAPI void             e_gadcon_client_config_del(E_Gadcon *gc, const char *id);
 EAPI E_Gadcon_Client *e_gadcon_client_new(E_Gadcon *gc, const char *style, 
Evas_Object *base_obj);
 EAPI void             e_gadcon_client_edit_begin(E_Gadcon_Client *gcc);
 EAPI void             e_gadcon_client_edit_end(E_Gadcon_Client *gcc);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_gadcon_config.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- e_int_gadcon_config.c       30 Dec 2006 17:54:26 -0000      1.35
+++ e_int_gadcon_config.c       30 Dec 2006 21:00:19 -0000      1.36
@@ -93,23 +93,12 @@
 static void
 _cb_add_instance(void *data, void *data2)
 {
-   char buf[1024];
-   int id = 0;
    E_Config_Dialog_Data *cfdata;
-   E_Config_Gadcon_Client *cf_gcc;
-   Evas_List *l;
 
    cfdata = data;
    if (!cfdata) return;
    
-   for (l = cfdata->cf_gc->clients; l; l = l->next)
-     {
-       cf_gcc = l->data;
-       if (!strcmp(cfdata->name_add, cf_gcc->name)) id++;
-     }
-   snprintf(buf, sizeof(buf), "%s.%s.%i", cfdata->cf_gc->id, cfdata->name_add, 
id);
-
-   e_gadcon_client_config_get(cfdata->gc, cfdata->name_add, buf);
+   e_gadcon_client_config_new(cfdata->gc, cfdata->name_add);
  
    e_gadcon_unpopulate(cfdata->gc);
    e_gadcon_populate(cfdata->gc);
@@ -124,29 +113,12 @@
 _cb_remove_instance(void *data, void *data2)
 {
    E_Config_Dialog_Data *cfdata;
-   Evas_List *l;
    int i;
    
    cfdata = data;
    i = e_widget_ilist_selected_get(cfdata->o_instances);
-   
-   for (l = cfdata->cf_gc->clients; l; l = l->next) 
-     {
-       E_Config_Gadcon_Client *cf_gcc;
 
-       cf_gcc = l->data;
-       if (!cf_gcc) continue;
-       if (!cf_gcc->name) continue;
-       if (!strcmp(cf_gcc->id, cfdata->id_remove))
-         {
-            if (cf_gcc->name) evas_stringshare_del(cf_gcc->name);
-            if (cf_gcc->id) evas_stringshare_del(cf_gcc->id);
-            if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
-            cfdata->cf_gc->clients = evas_list_remove(cfdata->cf_gc->clients, 
cf_gcc);
-            free(cf_gcc);
-            break;
-         }     
-     }
+   e_gadcon_client_config_del(cfdata->gc, cfdata->id_remove);
 
    _load_selected_gadgets(cfdata);
 



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