Basic Dropshadow Config Dialogue. Still needs work
authorChristopher Michael <cpmichael1@comcast.net>
Tue, 20 Dec 2005 23:07:52 +0000 (23:07 +0000)
committerChristopher Michael <cpmichael1@comcast.net>
Tue, 20 Dec 2005 23:07:52 +0000 (23:07 +0000)
SVN revision: 19188

src/modules/dropshadow/Makefile.am
src/modules/dropshadow/e_mod_config.c [new file with mode: 0644]
src/modules/dropshadow/e_mod_config.h [new file with mode: 0644]
src/modules/dropshadow/e_mod_main.c
src/modules/dropshadow/e_mod_main.h

index fdc8eb9..4bc5855 100644 (file)
@@ -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 (file)
index 0000000..102f7ab
--- /dev/null
@@ -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 (file)
index 0000000..5429206
--- /dev/null
@@ -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
index a663355..d059e00 100644 (file)
 /* 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)
 {
@@ -295,150 +285,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));
    e_menu_item_icon_file_set(mi, buf);
@@ -466,147 +312,11 @@ _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)
 {
    Dropshadow *ds;
@@ -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);   
+}
index 6f35863..1328f89 100644 (file)
@@ -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