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