From 467e98990373ccffa8052264da6cb2be7e7c5213 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Tue, 20 Dec 2005 23:07:52 +0000 Subject: [PATCH] Basic Dropshadow Config Dialogue. Still needs work SVN revision: 19188 --- src/modules/dropshadow/Makefile.am | 4 +- src/modules/dropshadow/e_mod_config.c | 202 +++++++++++++++ src/modules/dropshadow/e_mod_config.h | 8 + src/modules/dropshadow/e_mod_main.c | 357 +++----------------------- src/modules/dropshadow/e_mod_main.h | 2 + 5 files changed, 256 insertions(+), 317 deletions(-) create mode 100644 src/modules/dropshadow/e_mod_config.c create mode 100644 src/modules/dropshadow/e_mod_config.h diff --git a/src/modules/dropshadow/Makefile.am b/src/modules/dropshadow/Makefile.am index fdc8eb904..4bc5855c8 100644 --- a/src/modules/dropshadow/Makefile.am +++ b/src/modules/dropshadow/Makefile.am @@ -32,7 +32,9 @@ INCLUDES = -I. \ pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) pkg_LTLIBRARIES = module.la module_la_SOURCES = e_mod_main.c \ - e_mod_main.h + e_mod_main.h \ + e_mod_config.c \ + e_mod_config.h module_la_LIBADD = @e_libs@ @dlopen_libs@ module_la_LDFLAGS = -module -avoid-version module_la_DEPENDENCIES = $(top_builddir)/config.h diff --git a/src/modules/dropshadow/e_mod_config.c b/src/modules/dropshadow/e_mod_config.c new file mode 100644 index 000000000..102f7ab63 --- /dev/null +++ b/src/modules/dropshadow/e_mod_config.c @@ -0,0 +1,202 @@ +#include "e.h" +#include "e_mod_main.h" +#include "config.h" + +typedef struct _cfdata CFData; +typedef struct _Cfg_File_Data Cfg_File_Data; + +struct _cfdata +{ + int quality; + int blur_size; + int shadow_x; + int darkness; + double shadow_darkness; +}; + +struct _Cfg_File_Data +{ + E_Config_Dialog *cfd; + char *file; +}; + +/* Protos */ +static void *_create_data(E_Config_Dialog *cfd); +static void _free_data(E_Config_Dialog *cfd, CFData *cfdata); +static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata); +static int _basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata); + +void +_config_dropshadow_module(E_Container *con, Dropshadow *ds) +{ + E_Config_Dialog *cfd; + E_Config_Dialog_View v; + + v.create_cfdata = _create_data; + v.free_cfdata = _free_data; + v.basic.apply_cfdata = _basic_apply_data; + v.basic.create_widgets = _basic_create_widgets; + v.advanced.apply_cfdata = NULL; + v.advanced.create_widgets = NULL; + + cfd = e_config_dialog_new(con, _("Dropshadow Configuration"), NULL, 0, &v, ds); +} + +static void +_fill_data(Dropshadow *ds, CFData *cfdata) +{ + cfdata->quality = ds->conf->quality; + cfdata->blur_size = ds->conf->blur_size; + cfdata->shadow_x = ds->conf->shadow_x; + if (cfdata->shadow_x >= 32) + { + cfdata->shadow_x = 32; + } + else if ((cfdata->shadow_x < 32) && (cfdata->shadow_x >= 16)) + { + cfdata->shadow_x = 16; + } + else if ((cfdata->shadow_x < 16) && (cfdata->shadow_x >= 8)) + { + cfdata->shadow_x = 8; + } + else if ((cfdata->shadow_x < 8) && (cfdata->shadow_x >= 4)) + { + cfdata->shadow_x = 4; + } + + cfdata->shadow_darkness = ds->conf->shadow_darkness; + if (cfdata->shadow_darkness == 1.0) + { + cfdata->darkness = 0; + } + else if (cfdata->shadow_darkness == 0.75) + { + cfdata->darkness = 1; + } + else if (cfdata->shadow_darkness == 0.5) + { + cfdata->darkness = 2; + } + else if (cfdata->shadow_darkness == 0.25) + { + cfdata->darkness = 3; + } +} + +static void +*_create_data(E_Config_Dialog *cfd) +{ + CFData *cfdata; + Dropshadow *ds; + + ds = cfd->data; + cfdata = E_NEW(CFData, 1); + _fill_data(ds, cfdata); + return cfdata; +} + +static void +_free_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + free(cfdata); +} + +static Evas_Object +*_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) +{ + Evas_Object *o, *ob, *of; + E_Radio_Group *rg; + Dropshadow *ds; + + ds = cfd->data; + _fill_data(ds, cfdata); + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Quality"), 0); + rg = e_widget_radio_group_new(&(cfdata->quality)); + ob = e_widget_radio_add(evas, _("High Quality"), 1, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Medium Quality"), 2, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Low Quality"), 4, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Blur Type"), 0); + rg = e_widget_radio_group_new(&(cfdata->blur_size)); + ob = e_widget_radio_add(evas, _("Very Fuzzy"), 80, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Fuzzy"), 40, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Medium"), 20, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Sharp"), 10, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Very Sharp"), 5, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Shadow Distance"), 0); + rg = e_widget_radio_group_new(&(cfdata->shadow_x)); + ob = e_widget_radio_add(evas, _("Very Far"), 32, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Far"), 16, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Near"), 8, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Very Near"), 4, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Shadow Darkness"), 0); + rg = e_widget_radio_group_new(&(cfdata->darkness)); + ob = e_widget_radio_add(evas, _("Very Dark"), 0, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Dark"), 1, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Light"), 2, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Very Light"), 3, rg); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} + +static int +_basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata) +{ + Dropshadow *ds; + + ds = cfd->data; + e_border_button_bindings_ungrab_all(); + + ds->conf->quality = cfdata->quality; + ds->conf->blur_size = cfdata->blur_size; + ds->conf->shadow_x = cfdata->shadow_x; + ds->conf->shadow_y = cfdata->shadow_x; + switch (cfdata->darkness) + { + case 0: + ds->conf->shadow_darkness = 1.0; + break; + case 1: + ds->conf->shadow_darkness = 0.75; + break; + case 2: + ds->conf->shadow_darkness = 0.5; + break; + case 3: + ds->conf->shadow_darkness = 0.25; + break; + } + + e_config_save_queue(); + e_border_button_bindings_grab_all(); + + /* Update Config */ + _dropshadow_cb_config_updated(ds); + return 1; +} diff --git a/src/modules/dropshadow/e_mod_config.h b/src/modules/dropshadow/e_mod_config.h new file mode 100644 index 000000000..542920688 --- /dev/null +++ b/src/modules/dropshadow/e_mod_config.h @@ -0,0 +1,8 @@ +#ifdef E_TYPEDEFS +#else +#ifndef E_MOD_CONFIG_H +#define E_MOD_CONFIG_H +#include "e_mod_main.h" +EAPI void _config_dropshadow_module(E_Container *con, Dropshadow *ds); +#endif +#endif diff --git a/src/modules/dropshadow/e_mod_main.c b/src/modules/dropshadow/e_mod_main.c index a663355bf..d059e00f6 100644 --- a/src/modules/dropshadow/e_mod_main.c +++ b/src/modules/dropshadow/e_mod_main.c @@ -17,22 +17,7 @@ /* module private routines */ static Dropshadow *_ds_init(E_Module *m); static void _ds_shutdown(Dropshadow *ds); -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); -static void _ds_menu_medium(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_sharp(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_very_sharp(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_very_dark(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_dark(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_light(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_very_light(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_very_far(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_far(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_close(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_very_close(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_extremely_close(void *data, E_Menu *m, E_Menu_Item *mi); -static void _ds_menu_under(void *data, E_Menu *m, E_Menu_Item *mi); +//static E_Menu *_ds_config_menu_new(Dropshadow *ds); static void _ds_menu_high_quality(void *data, E_Menu *m, E_Menu_Item *mi); static void _ds_menu_medium_quality(void *data, E_Menu *m, E_Menu_Item *mi); static void _ds_menu_low_quality(void *data, E_Menu *m, E_Menu_Item *mi); @@ -102,7 +87,7 @@ e_modapi_init(E_Module *m) Dropshadow *ds; ds = _ds_init(m); - m->config_menu = _ds_config_menu_new(ds); + //m->config_menu = _ds_config_menu_new(ds); #if 0 { Shpix *sh; @@ -148,16 +133,7 @@ e_modapi_shutdown(E_Module *m) Dropshadow *ds; ds = m->data; - if (ds) - { - if (m->config_menu) - { - e_menu_deactivate(m->config_menu); - e_object_del(E_OBJECT(m->config_menu)); - m->config_menu = NULL; - } - _ds_shutdown(ds); - } + if (ds) _ds_shutdown(ds); return 1; } @@ -191,6 +167,19 @@ e_modapi_about(E_Module *m) return 1; } +int +e_modapi_config(E_Module *m) +{ + Dropshadow *ds; + E_Container *con; + + ds = m->data; + if (!ds) return 0; + con = e_container_current_get(e_manager_current_get()); + _config_dropshadow_module(con, ds); + return 1; +} + /* module private routines */ static Dropshadow * _ds_init(E_Module *m) @@ -285,6 +274,7 @@ _ds_shutdown(Dropshadow *ds) free(ds); } +/* static E_Menu * _ds_config_menu_new(Dropshadow *ds) { @@ -294,150 +284,6 @@ _ds_config_menu_new(Dropshadow *ds) mn = e_menu_new(); - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Very Fuzzy")); - snprintf(buf, sizeof(buf), "%s/menu_icon_very_fuzzy.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_very_fuzzy, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Fuzzy")); - snprintf(buf, sizeof(buf), "%s/menu_icon_fuzzy.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_fuzzy, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Medium")); - snprintf(buf, sizeof(buf), "%s/menu_icon_medium.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_medium, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Sharp")); - snprintf(buf, sizeof(buf), "%s/menu_icon_sharp.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_sharp, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Very Sharp")); - snprintf(buf, sizeof(buf), "%s/menu_icon_very_sharp.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_very_sharp, ds); - - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Very Dark")); - snprintf(buf, sizeof(buf), "%s/menu_icon_very_dark.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_very_dark, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Dark")); - snprintf(buf, sizeof(buf), "%s/menu_icon_dark.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_dark, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Light")); - snprintf(buf, sizeof(buf), "%s/menu_icon_light.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_light, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Very Light")); - snprintf(buf, sizeof(buf), "%s/menu_icon_very_light.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_very_light, ds); - - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Very Far")); - snprintf(buf, sizeof(buf), "%s/menu_icon_very_far.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_very_far, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Far")); - snprintf(buf, sizeof(buf), "%s/menu_icon_very_far.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_far, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Near")); - snprintf(buf, sizeof(buf), "%s/menu_icon_far.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_close, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Very Near")); - snprintf(buf, sizeof(buf), "%s/menu_icon_close.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_very_close, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Extremely Near")); - snprintf(buf, sizeof(buf), "%s/menu_icon_underneath.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_extremely_close, ds); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Immediately Underneath")); - snprintf(buf, sizeof(buf), "%s/menu_icon_underneath.png", e_module_dir_get(ds->module)); - 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); - e_menu_item_callback_set(mi, _ds_menu_under, ds); - - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("High Quality")); snprintf(buf, sizeof(buf), "%s/menu_icon_hi_quality.png", e_module_dir_get(ds->module)); @@ -466,146 +312,10 @@ _ds_config_menu_new(Dropshadow *ds) e_menu_item_radio_group_set(mi, 4); if (ds->conf->quality == 4) e_menu_item_toggle_set(mi, 1); else e_menu_item_toggle_set(mi, 0); - e_menu_item_callback_set(mi, _ds_menu_low_quality, ds); - + e_menu_item_callback_set(mi, _ds_menu_low_quality, ds); return mn; } -static void -_ds_menu_very_fuzzy(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_blur_set(ds, 80); -} - -static void -_ds_menu_fuzzy(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_blur_set(ds, 40); -} - -static void -_ds_menu_medium(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_blur_set(ds, 20); -} - -static void -_ds_menu_sharp(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_blur_set(ds, 10); -} - -static void -_ds_menu_very_sharp(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_blur_set(ds, 5); -} - -static void -_ds_menu_very_dark(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_darkness_set(ds, 1.0); -} - -static void -_ds_menu_dark(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_darkness_set(ds, 0.75); -} - -static void -_ds_menu_light(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_darkness_set(ds, 0.5); -} - -static void -_ds_menu_very_light(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_darkness_set(ds, 0.25); -} - -static void -_ds_menu_very_far(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_shadow_xy_set(ds, 32, 32); -} - -static void -_ds_menu_far(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_shadow_xy_set(ds, 16, 16); -} - -static void -_ds_menu_close(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_shadow_xy_set(ds, 8, 8); -} - -static void -_ds_menu_very_close(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_shadow_xy_set(ds, 4, 4); -} - -static void -_ds_menu_extremely_close(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_shadow_xy_set(ds, 2, 2); -} - -static void -_ds_menu_under(void *data, E_Menu *m, E_Menu_Item *mi) -{ - Dropshadow *ds; - - ds = data; - _ds_config_shadow_xy_set(ds, 0, 0); -} - static void _ds_menu_high_quality(void *data, E_Menu *m, E_Menu_Item *mi) { @@ -632,6 +342,7 @@ _ds_menu_low_quality(void *data, E_Menu *m, E_Menu_Item *mi) ds = data; _ds_config_quality_set(ds, 4); } +*/ static void _ds_container_shapes_add(Dropshadow *ds, E_Container *con) @@ -1406,8 +1117,8 @@ _ds_config_darkness_set(Dropshadow *ds, double v) 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; @@ -1434,7 +1145,7 @@ _ds_config_darkness_set(Dropshadow *ds, double v) 255 * ds->conf->shadow_darkness); } } - e_config_save_queue(); + //e_config_save_queue(); } static void @@ -1442,9 +1153,9 @@ _ds_config_shadow_xy_set(Dropshadow *ds, int x, int y) { 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; if (ds->conf->shadow_x >= ds->conf->blur_size) ds->conf->shadow_x = ds->conf->blur_size - 1; if (ds->conf->shadow_y >= ds->conf->blur_size) @@ -1466,8 +1177,8 @@ _ds_config_blur_set(Dropshadow *ds, int blur) 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; if (ds->conf->shadow_x >= ds->conf->blur_size) ds->conf->shadow_x = ds->conf->blur_size - 1; @@ -2579,3 +2290,17 @@ _tilebuf_free_render_rects(Evas_List *rects) free(r); } } + +void +_dropshadow_cb_config_updated(void *data) +{ + Dropshadow *ds; + + ds = data; + if (!ds) return; + + _ds_config_quality_set(ds, ds->conf->quality); + _ds_config_darkness_set(ds, ds->conf->shadow_darkness); + _ds_config_shadow_xy_set(ds, ds->conf->shadow_x, ds->conf->shadow_y); + _ds_config_blur_set(ds, ds->conf->blur_size); +} diff --git a/src/modules/dropshadow/e_mod_main.h b/src/modules/dropshadow/e_mod_main.h index 6f358631c..1328f890e 100644 --- a/src/modules/dropshadow/e_mod_main.h +++ b/src/modules/dropshadow/e_mod_main.h @@ -105,4 +105,6 @@ EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_info (E_Module *m); EAPI int e_modapi_about (E_Module *m); +EAPI void _dropshadow_cb_config_updated(void *data); + #endif