Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/modules/dropshadow Modified Files: e_mod_main.c e_mod_main.h Log Message: fix up config code so i can do lists and structs etc. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/dropshadow/e_mod_main.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_mod_main.c 27 Nov 2004 00:10:20 -0000 1.2 +++ e_mod_main.c 5 Dec 2004 07:43:51 -0000 1.3 @@ -4,7 +4,6 @@ /* TODO List: * * * bug in shadow_x < 0 and shadow_y < 0 needs to be fixed (not urgent though) - * * bug in ecore_config ? when we change shadow darkness in examine, _ds_config_listen_shadow_darkness does not get called - only when we change other values like x, y, blur and when it gets called we are not getting the value set in examine - always getting 0.5 * * add alpha-pixel only pixel space to image objects in evas and make use of it to save cpu and ram * * when blurring ALSO cut out the overlayed rect frrom the blur algorithm * * handle shaped windows efficiently (as possible). @@ -14,10 +13,6 @@ /* module private routines */ static Dropshadow *_ds_init(E_Module *m); static void _ds_shutdown(Dropshadow *ds); -static int _ds_config_listen_shadow_x(const char *key, const Ecore_Config_Type type, const int tag, void *data); -static int _ds_config_listen_shadow_y(const char *key, const Ecore_Config_Type type, const int tag, void *data); -static int _ds_config_listen_blur(const char *key, const Ecore_Config_Type type, const int tag, void *data); -static int _ds_config_listen_shadow_darkness(const char *key, const Ecore_Config_Type type, const int tag, void *data); static E_Menu *_ds_config_menu_new(Dropshadow *ds); static void _ds_menu_very_fuzzy(void *data, E_Menu *m, E_Menu_Item *mi); static void _ds_menu_fuzzy(void *data, E_Menu *m, E_Menu_Item *mi); @@ -108,10 +103,12 @@ ds = m->data; if (!ds) return; - ecore_config_int_set("e.module.dropshadow.shadow.x", ds->conf.shadow_x); - ecore_config_int_set("e.module.dropshadow.shadow.y", ds->conf.shadow_y); - ecore_config_int_set("e.module.dropshadow.blur", ds->conf.blur_size); - ecore_config_float_set("e.module.dropshadow.shadow.darkness", ds->conf.shadow_darkness); + printf("SAVE: %i %i, %i, %3.3f\n", + ds->conf->shadow_x, + ds->conf->shadow_y, + ds->conf->blur_size, + ds->conf->shadow_darkness); + e_config_domain_save("module.dropshadow", ds->conf_edd, ds->conf); return 1; } @@ -147,49 +144,29 @@ if (!ds) return NULL; ds->module = m; - ecore_config_int_create_bound - ("e.module.dropshadow.shadow.x", - 4, -200, 200, 1, - 0, "", - "Dropshadow module: Shadow X offset"); - ecore_config_int_create_bound - ("e.module.dropshadow.shadow.y", - 4, -200, 200, 1, - 0, "", - "Dropshadow module: Shadow Y offset"); - ecore_config_int_create_bound - ("e.module.dropshadow.blur", - 10, 1, 120, 1, - 0, "", - "Dropshadow module: Shadow blur radius"); - ecore_config_float_create_bound - ("e.module.dropshadow.shadow.darkness", - 0.5, 0.0, 1.0, 0.001, - 0, "", - "Dropshadow module: Shadow darkness"); - - ecore_config_load(); - - ds->conf.shadow_x = ecore_config_int_get("e.module.dropshadow.shadow.x"); - ecore_config_listen("e.module.dropshadow.shadow.x", - "e.module.dropshadow.shadow.x", - _ds_config_listen_shadow_x, - 0, ds); - ds->conf.shadow_y = ecore_config_int_get("e.module.dropshadow.shadow.y"); - ecore_config_listen("e.module.dropshadow.shadow.y", - "e.module.dropshadow.shadow.y", - _ds_config_listen_shadow_y, - 0, ds); - ds->conf.blur_size = ecore_config_int_get("e.module.dropshadow.blur"); - ecore_config_listen("e.module.dropshadow.blur", - "e.module.dropshadow.blur", - _ds_config_listen_blur, - 0, ds); - ds->conf.shadow_darkness = ecore_config_float_get("e.module.dropshadow.shadow.darkness"); - ecore_config_listen("e.module.dropshadow.shadow.darkness", - "e.module.dropshadow.shadow.darkness", - _ds_config_listen_shadow_darkness, - 0, ds); + ds->conf_edd = E_CONFIG_DD_NEW("Dropshadow_Config", Config); +#undef T +#undef D +#define T Config +#define D ds->conf_edd + E_CONFIG_VAL(D, T, shadow_x, INT); + E_CONFIG_VAL(D, T, shadow_y, INT); + E_CONFIG_VAL(D, T, blur_size, INT); + E_CONFIG_VAL(D, T, shadow_darkness, DOUBLE); + + ds->conf = e_config_domain_load("module.dropshadow", ds->conf_edd); + if (!ds->conf) + { + ds->conf = E_NEW(Config, 1); + ds->conf->shadow_x = 4; + ds->conf->shadow_y = 4; + ds->conf->blur_size = 10; + ds->conf->shadow_darkness = 0.5; + } + E_CONFIG_LIMIT(ds->conf->shadow_x, -200, 200); + E_CONFIG_LIMIT(ds->conf->shadow_y, -200, 200); + E_CONFIG_LIMIT(ds->conf->blur_size, 1, 120); + E_CONFIG_LIMIT(ds->conf->shadow_darkness, 0.0, 1.0); _ds_blur_init(ds); @@ -216,18 +193,8 @@ static void _ds_shutdown(Dropshadow *ds) { - ecore_config_deaf("e.module.dropshadow.shadow.x", - "e.module.dropshadow.shadow.x", - _ds_config_listen_shadow_x); - ecore_config_deaf("e.module.dropshadow.shadow.y", - "e.module.dropshadow.shadow.y", - _ds_config_listen_shadow_y); - ecore_config_deaf("e.module.dropshadow.blur", - "e.module.dropshadow.blur", - _ds_config_listen_blur); - ecore_config_deaf("e.module.dropshadow.shadow.darkness", - "e.module.dropshadow.shadow.darkness", - _ds_config_listen_shadow_darkness); + free(ds->conf); + E_CONFIG_DD_FREE(ds->conf_edd); while (ds->cons) { E_Container *con; @@ -248,62 +215,6 @@ free(ds); } -static int -_ds_config_listen_shadow_x(const char *key, const Ecore_Config_Type type, const int tag, void *data) -{ - Dropshadow *ds; - int v; - - ds = data; - v = ecore_config_int_get("e.module.dropshadow.shadow.x"); - if (v < -200) v = -200; - else if (v > 200) v = 200; - _ds_config_shadow_xy_set(ds, v, ds->conf.shadow_y); - return 1; -} - -static int -_ds_config_listen_shadow_y(const char *key, const Ecore_Config_Type type, const int tag, void *data) -{ - Dropshadow *ds; - int v; - - ds = data; - v = ecore_config_int_get("e.module.dropshadow.shadow.y"); - if (v < -200) v = -200; - else if (v > 200) v = 200; - _ds_config_shadow_xy_set(ds, ds->conf.shadow_x, v); - return 1; -} - -static int -_ds_config_listen_blur(const char *key, const Ecore_Config_Type type, const int tag, void *data) -{ - Dropshadow *ds; - int v; - - ds = data; - v = ecore_config_int_get("e.module.dropshadow.blur"); - if (v < 1) v = 1; - else if (v > 120) v= 120; - _ds_config_blur_set(ds, v); - return 1; -} - -static int -_ds_config_listen_shadow_darkness(const char *key, const Ecore_Config_Type type, const int tag, void *data) -{ - Dropshadow *ds; - double v; - - ds = data; - v = ecore_config_float_get("e.module.dropshadow.shadow.darkness"); - if (v < 0.0) v = 0.0; - else if (v > 1.0) v = 1.0; - _ds_config_darkness_set(ds, v); - return 1; -} - static E_Menu * _ds_config_menu_new(Dropshadow *ds) { @@ -319,7 +230,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (ds->conf.blur_size == 80) e_menu_item_toggle_set(mi, 1); + if (ds->conf->blur_size == 80) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_very_fuzzy, ds); mi = e_menu_item_new(mn); @@ -328,7 +239,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (ds->conf.blur_size == 40) e_menu_item_toggle_set(mi, 1); + if (ds->conf->blur_size == 40) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_fuzzy, ds); mi = e_menu_item_new(mn); @@ -337,7 +248,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (ds->conf.blur_size == 20) e_menu_item_toggle_set(mi, 1); + if (ds->conf->blur_size == 20) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_medium, ds); mi = e_menu_item_new(mn); @@ -346,7 +257,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (ds->conf.blur_size == 10) e_menu_item_toggle_set(mi, 1); + if (ds->conf->blur_size == 10) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_sharp, ds); mi = e_menu_item_new(mn); @@ -355,7 +266,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (ds->conf.blur_size == 5) e_menu_item_toggle_set(mi, 1); + if (ds->conf->blur_size == 5) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_very_sharp, ds); mi = e_menu_item_new(mn); @@ -367,7 +278,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); - if (ds->conf.shadow_darkness == 1.0) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_darkness == 1.0) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_very_dark, ds); mi = e_menu_item_new(mn); @@ -376,7 +287,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); - if (ds->conf.shadow_darkness == 0.75) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_darkness == 0.75) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_dark, ds); mi = e_menu_item_new(mn); @@ -385,7 +296,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); - if (ds->conf.shadow_darkness == 0.5) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_darkness == 0.5) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_light, ds); mi = e_menu_item_new(mn); @@ -394,7 +305,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 2); - if (ds->conf.shadow_darkness == 0.25) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_darkness == 0.25) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_very_light, ds); mi = e_menu_item_new(mn); @@ -406,7 +317,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 3); - if (ds->conf.shadow_x == 32) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_x == 32) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_very_far, ds); mi = e_menu_item_new(mn); @@ -415,7 +326,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 3); - if (ds->conf.shadow_x == 16) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_x == 16) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_far, ds); mi = e_menu_item_new(mn); @@ -424,7 +335,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 3); - if (ds->conf.shadow_x == 8) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_x == 8) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_close, ds); mi = e_menu_item_new(mn); @@ -433,7 +344,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 3); - if (ds->conf.shadow_x == 4) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_x == 4) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_very_close, ds); mi = e_menu_item_new(mn); @@ -442,7 +353,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 3); - if (ds->conf.shadow_x == 2) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_x == 2) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_extremely_close, ds); mi = e_menu_item_new(mn); @@ -451,7 +362,7 @@ e_menu_item_icon_file_set(mi, buf); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 3); - if (ds->conf.shadow_x == 0) e_menu_item_toggle_set(mi, 1); + if (ds->conf->shadow_x == 0) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _ds_menu_under, ds); return mn; } @@ -701,7 +612,7 @@ evas_object_resize(sh->object[i], 0, 0); evas_object_color_set(sh->object[i], 255, 255, 255, - 255 * sh->ds->conf.shadow_darkness); + 255 * sh->ds->conf->shadow_darkness); } } @@ -767,23 +678,23 @@ if (sh->square) { evas_object_move(sh->object[0], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, - sh->y + sh->ds->conf.shadow_y - sh->ds->conf.blur_size); + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, + sh->y + sh->ds->conf->shadow_y - sh->ds->conf->blur_size); evas_object_move(sh->object[1], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, sh->y); evas_object_move(sh->object[2], sh->x + sh->w, sh->y); evas_object_move(sh->object[3], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, sh->y + sh->h); } else { evas_object_move(sh->object[0], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, - sh->y + sh->ds->conf.shadow_y - sh->ds->conf.blur_size); + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, + sh->y + sh->ds->conf->shadow_y - sh->ds->conf->blur_size); } } @@ -836,8 +747,8 @@ Evas_List *l; sh->square = 0; - pix_w = sh->w + (sh->ds->conf.blur_size * 2); - pix_h = sh->h + (sh->ds->conf.blur_size * 2); + pix_w = sh->w + (sh->ds->conf->blur_size * 2); + pix_h = sh->h + (sh->ds->conf->blur_size * 2); pix = calloc(1, pix_w * pix_h * sizeof(unsigned char)); /* for every rect in the shape - fill it */ @@ -850,10 +761,10 @@ } /* FIXME: need to find an optimal "inner rect" fromt he above rect list */ /* - sx = sh->ds->conf.blur_size; - sy = sh->ds->conf.blur_size; - sxx = pix_w - sh->ds->conf.blur_size; - syy = pix_h - sh->ds->conf.blur_size; + sx = sh->ds->conf->blur_size; + sy = sh->ds->conf->blur_size; + sxx = pix_w - sh->ds->conf->blur_size; + syy = pix_h - sh->ds->conf->blur_size; */ sx = 0; sy = 0; @@ -861,15 +772,15 @@ syy = 0; _ds_gauss_blur(pix, pix_w, pix_h, - sh->ds->table.gauss, sh->ds->conf.blur_size, + sh->ds->table.gauss, sh->ds->conf->blur_size, sx, sy, sxx, syy); evas_object_move(sh->object[0], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, - sh->y + sh->ds->conf.shadow_y - sh->ds->conf.blur_size); + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, + sh->y + sh->ds->conf->shadow_y - sh->ds->conf->blur_size); sx = 0; sy = 0; - ssw = sh->w + (sh->ds->conf.blur_size * 2); - ssh = sh->h + (sh->ds->conf.blur_size * 2); + ssw = sh->w + (sh->ds->conf->blur_size * 2); + ssh = sh->h + (sh->ds->conf->blur_size * 2); _ds_shadow_object_pixels_set(sh->object[0], pix, pix_w, pix_h, sx, sy, ssw, ssh); if (evas_object_visible_get(sh->object[0])) @@ -883,55 +794,55 @@ else { sh->square = 1; - pix_w = sh->w + (sh->ds->conf.blur_size * 2); - pix_h = sh->h + (sh->ds->conf.blur_size * 2); + pix_w = sh->w + (sh->ds->conf->blur_size * 2); + pix_h = sh->h + (sh->ds->conf->blur_size * 2); pix = calloc(1, pix_w * pix_h * sizeof(unsigned char)); - sx = sh->ds->conf.blur_size; - sy = sh->ds->conf.blur_size; - sxx = pix_w - sh->ds->conf.blur_size; - syy = pix_h - sh->ds->conf.blur_size; + sx = sh->ds->conf->blur_size; + sy = sh->ds->conf->blur_size; + sxx = pix_w - sh->ds->conf->blur_size; + syy = pix_h - sh->ds->conf->blur_size; _ds_gauss_fill(pix, pix_w, pix_h, 255, sx, sy, sxx, syy); - sx = sh->ds->conf.blur_size * 2; - sy = sh->ds->conf.blur_size * 2; - ssw = pix_w - (sh->ds->conf.blur_size * 4); - ssh = pix_h - (sh->ds->conf.blur_size * 4); + sx = sh->ds->conf->blur_size * 2; + sy = sh->ds->conf->blur_size * 2; + ssw = pix_w - (sh->ds->conf->blur_size * 4); + ssh = pix_h - (sh->ds->conf->blur_size * 4); _ds_gauss_blur(pix, pix_w, pix_h, - sh->ds->table.gauss, sh->ds->conf.blur_size, + sh->ds->table.gauss, sh->ds->conf->blur_size, sx, sy, ssw, ssh); evas_object_move(sh->object[0], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, - sh->y + sh->ds->conf.shadow_y - sh->ds->conf.blur_size); + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, + sh->y + sh->ds->conf->shadow_y - sh->ds->conf->blur_size); evas_object_move(sh->object[1], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, sh->y); evas_object_move(sh->object[2], sh->x + sh->w, sh->y); evas_object_move(sh->object[3], - sh->x + sh->ds->conf.shadow_x - sh->ds->conf.blur_size, + sh->x + sh->ds->conf->shadow_x - sh->ds->conf->blur_size, sh->y + sh->h); sx = 0; sy = 0; - ssw = sh->w + (sh->ds->conf.blur_size * 2); - ssh = sh->ds->conf.blur_size - sh->ds->conf.shadow_y; + ssw = sh->w + (sh->ds->conf->blur_size * 2); + ssh = sh->ds->conf->blur_size - sh->ds->conf->shadow_y; _ds_shadow_object_pixels_set(sh->object[0], pix, pix_w, pix_h, sx, sy, ssw, ssh); sx = 0; - sy = sh->ds->conf.blur_size - sh->ds->conf.shadow_y; - ssw = sh->ds->conf.blur_size - sh->ds->conf.shadow_x; + sy = sh->ds->conf->blur_size - sh->ds->conf->shadow_y; + ssw = sh->ds->conf->blur_size - sh->ds->conf->shadow_x; ssh = sh->h; _ds_shadow_object_pixels_set(sh->object[1], pix, pix_w, pix_h, sx, sy, ssw, ssh); - sx = sh->ds->conf.blur_size - sh->ds->conf.shadow_y + sh->w; - sy = sh->ds->conf.blur_size - sh->ds->conf.shadow_y; - ssw = sh->ds->conf.blur_size + sh->ds->conf.shadow_x; + sx = sh->ds->conf->blur_size - sh->ds->conf->shadow_y + sh->w; + sy = sh->ds->conf->blur_size - sh->ds->conf->shadow_y; + ssw = sh->ds->conf->blur_size + sh->ds->conf->shadow_x; ssh = sh->h; _ds_shadow_object_pixels_set(sh->object[2], pix, pix_w, pix_h, sx, sy, ssw, ssh); sx = 0; - sy = sh->ds->conf.blur_size - sh->ds->conf.shadow_y + sh->h; - ssw = sh->w + (sh->ds->conf.blur_size * 2); - ssh = sh->ds->conf.blur_size + sh->ds->conf.shadow_y; + sy = sh->ds->conf->blur_size - sh->ds->conf->shadow_y + sh->h; + ssw = sh->w + (sh->ds->conf->blur_size * 2); + ssh = sh->ds->conf->blur_size + sh->ds->conf->shadow_y; _ds_shadow_object_pixels_set(sh->object[3], pix, pix_w, pix_h, sx, sy, ssw, ssh); if (evas_object_visible_get(sh->object[0])) @@ -1040,8 +951,8 @@ if (v < 0.0) v = 0.0; else if (v > 1.0) v = 1.0; - if (ds->conf.shadow_darkness == v) return; - ds->conf.shadow_darkness = v; + if (ds->conf->shadow_darkness == v) return; + ds->conf->shadow_darkness = v; for (l = ds->shadows; l; l = l->next) { Shadow *sh; @@ -1051,7 +962,7 @@ for (i = 0; i < 4; i++) evas_object_color_set(sh->object[i], 255, 255, 255, - 255 * ds->conf.shadow_darkness); + 255 * ds->conf->shadow_darkness); } e_config_save_queue(); } @@ -1061,9 +972,9 @@ { Evas_List *l; - if ((ds->conf.shadow_x == x) && (ds->conf.shadow_y == y)) return; - ds->conf.shadow_x = x; - ds->conf.shadow_y = y; + if ((ds->conf->shadow_x == x) && (ds->conf->shadow_y == y)) return; + ds->conf->shadow_x = x; + ds->conf->shadow_y = y; for (l = ds->shadows; l; l = l->next) { Shadow *sh; @@ -1080,8 +991,8 @@ Evas_List *l; if (blur < 0) blur = 0; - if (ds->conf.blur_size == blur) return; - ds->conf.blur_size = blur; + if (ds->conf->blur_size == blur) return; + ds->conf->blur_size = blur; _ds_blur_init(ds); for (l = ds->shadows; l; l = l->next) @@ -1100,17 +1011,17 @@ int i; if (ds->table.gauss) free(ds->table.gauss); - ds->table.gauss_size = (ds->conf.blur_size * 2) - 1; + ds->table.gauss_size = (ds->conf->blur_size * 2) - 1; ds->table.gauss = calloc(1, ds->table.gauss_size * sizeof(unsigned char)); - ds->table.gauss[ds->conf.blur_size - 1] = 255; - for (i = 1; i < (ds->conf.blur_size - 1); i++) + ds->table.gauss[ds->conf->blur_size - 1] = 255; + for (i = 1; i < (ds->conf->blur_size - 1); i++) { double v; - v = (double)i / (ds->conf.blur_size - 2); - ds->table.gauss[ds->conf.blur_size - 1 + i] = - ds->table.gauss[ds->conf.blur_size - 1 - i] = + v = (double)i / (ds->conf->blur_size - 2); + ds->table.gauss[ds->conf->blur_size - 1 + i] = + ds->table.gauss[ds->conf->blur_size - 1 - i] = _ds_gauss_int(-1.5 + (v * 3.0)) * 255.0; } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/dropshadow/e_mod_main.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_mod_main.h 25 Nov 2004 05:31:20 -0000 1.2 +++ e_mod_main.h 5 Dec 2004 07:43:51 -0000 1.3 @@ -1,8 +1,16 @@ #ifndef E_MOD_MAIN_H #define E_MOD_MAIN_H +typedef struct _Config Config; typedef struct _Dropshadow Dropshadow; -typedef struct _Shadow Shadow; +typedef struct _Shadow Shadow; + +struct _Config +{ + int shadow_x, shadow_y; + int blur_size; + double shadow_darkness; +}; struct _Dropshadow { @@ -10,12 +18,9 @@ Evas_List *shadows; Evas_List *cons; E_Before_Idler *idler_before; - - struct { - int shadow_x, shadow_y; - int blur_size; - double shadow_darkness; - } conf; + + E_Config_DD *conf_edd; + Config *conf; struct { unsigned char *gauss; ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs