From 47ded57d3f529fed18f977cee21e9a676ab2b981 Mon Sep 17 00:00:00 2001 From: rephorm Date: Sun, 20 Aug 2006 22:30:44 +0000 Subject: [PATCH] save the last used gradient colors and use them the next time the dialog is shown SVN revision: 24959 --- src/bin/e_config.c | 16 +++++++++ src/bin/e_config.h | 9 ++++- src/bin/e_int_config_wallpaper_gradient.c | 42 ++++++++++++++++------- 3 files changed, 54 insertions(+), 13 deletions(-) diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 0bfe30941..9973549a5 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -473,6 +473,13 @@ e_config_init(void) E_CONFIG_VAL(D, T, wallpaper_import_last_dev, STR); E_CONFIG_VAL(D, T, wallpaper_import_last_path, STR); + + E_CONFIG_VAL(D, T, wallpaper_grad_c1_r, INT); + E_CONFIG_VAL(D, T, wallpaper_grad_c1_g, INT); + E_CONFIG_VAL(D, T, wallpaper_grad_c1_b, INT); + E_CONFIG_VAL(D, T, wallpaper_grad_c2_r, INT); + E_CONFIG_VAL(D, T, wallpaper_grad_c2_g, INT); + E_CONFIG_VAL(D, T, wallpaper_grad_c2_b, INT); e_config = e_config_domain_load("e", _e_config_edd); if (e_config) @@ -1168,6 +1175,15 @@ e_config_init(void) e_config->wallpaper_import_last_dev = evas_stringshare_add("~/"); e_config->wallpaper_import_last_path = evas_stringshare_add("/"); IFCFGEND; + + IFCFG(0x0098); + e_config->wallpaper_grad_c1_r = 0; + e_config->wallpaper_grad_c1_g = 0; + e_config->wallpaper_grad_c1_b = 0; + e_config->wallpaper_grad_c2_r = 255; + e_config->wallpaper_grad_c2_g = 255; + e_config->wallpaper_grad_c2_b = 255; + IFCFGEND; #if 0 /* example of new config */ IFCFG(0x0090); /* the version # where this value(s) was introduced */ diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 0e7208844..7c0240207 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -50,7 +50,7 @@ typedef Eet_Data_Descriptor E_Config_DD; /* increment this whenever a new set of config values are added but the users * config doesn't need top be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0097 +#define E_CONFIG_FILE_GENERATION 0x0098 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 @@ -236,6 +236,13 @@ struct _E_Config const char *wallpaper_import_last_dev; // INTERNAL const char *wallpaper_import_last_path; // INTERNAL + + int wallpaper_grad_c1_r; // INTERNAL + int wallpaper_grad_c1_g; // INTERNAL + int wallpaper_grad_c1_b; // INTERNAL + int wallpaper_grad_c2_r; // INTERNAL + int wallpaper_grad_c2_g; // INTERNAL + int wallpaper_grad_c2_b; // INTERNAL }; struct _E_Config_Module diff --git a/src/bin/e_int_config_wallpaper_gradient.c b/src/bin/e_int_config_wallpaper_gradient.c index e94a2c232..3e4a58840 100644 --- a/src/bin/e_int_config_wallpaper_gradient.c +++ b/src/bin/e_int_config_wallpaper_gradient.c @@ -57,6 +57,7 @@ static int _import_cb_edje_cc_exit(void *data, int type, void *event); static void _import_cb_delete(E_Win *win); static void _import_cb_close(void *data, E_Dialog *dia); static void _import_cb_ok(void *data, E_Dialog *dia); +static void _import_config_save(Import *import); EAPI E_Dialog * e_int_config_wallpaper_gradient(E_Config_Dialog *parent) @@ -69,10 +70,10 @@ e_int_config_wallpaper_gradient(E_Config_Dialog *parent) E_Radio_Group *rg; Evas_Coord w, h; E_Config_Dialog_Data *cfdata; - + import = E_NEW(Import, 1); if (!import) return NULL; - + dia = e_dialog_new(parent->con, "E", "_wallpaper_gradient_dialog"); if (!dia) { @@ -89,26 +90,31 @@ e_int_config_wallpaper_gradient(E_Config_Dialog *parent) import->dia = dia; cfdata->name = strdup("gradient"); - + evas = e_win_evas_get(dia->win); - + import->parent = parent; e_dialog_title_set(dia, _("Create a gradient...")); - // e_win_delete_callback_set(dia->win, _import_cb_delete); - + // e_win_delete_callback_set(dia->win, _import_cb_delete); + cfdata->color1 = calloc(1, sizeof(E_Color)); cfdata->color1->a = 255; cfdata->color2 = calloc(1, sizeof(E_Color)); cfdata->color2->a = 255; - // XXX load last used colors from config. + cfdata->color1->r = e_config->wallpaper_grad_c1_r; + cfdata->color1->g = e_config->wallpaper_grad_c1_g; + cfdata->color1->b = e_config->wallpaper_grad_c1_b; + cfdata->color2->r = e_config->wallpaper_grad_c2_r; + cfdata->color2->g = e_config->wallpaper_grad_c2_g; + cfdata->color2->b = e_config->wallpaper_grad_c2_b; ol = e_widget_list_add(evas, 0, 0); ot = e_widget_table_add(evas, 0); evas_object_show(ot); - + o = e_widget_label_add(evas, _("Name:")); evas_object_show(o); e_widget_table_object_append(ot, o, 1, 1, 1, 1, 0, 1, 0, 1); @@ -170,7 +176,7 @@ e_int_config_wallpaper_gradient(E_Config_Dialog *parent) e_dialog_button_add(dia, _("OK"), NULL, _import_cb_ok, cfdata); e_dialog_button_add(dia, _("Cancel"), NULL, _import_cb_close, cfdata); - + _import_opt_disabled_set(import, 1); e_dialog_resizable_set(dia, 0); e_dialog_show(dia); @@ -180,9 +186,10 @@ e_int_config_wallpaper_gradient(E_Config_Dialog *parent) void e_int_config_wallpaper_gradient_del(E_Dialog *dia) { - Import *import; + Import *import; - import = dia->win->data; + import = dia->win->data; + _import_config_save(import); if (import->exe_handler) ecore_event_handler_del(import->exe_handler); import->exe_handler = NULL; @@ -209,7 +216,18 @@ _import_opt_disabled_set(Import *import, int disabled) static void _import_config_save(Import *import) { - // XXX save last used colors + if (import->cfdata->color1) + { + e_config->wallpaper_grad_c1_r = import->cfdata->color1->r; + e_config->wallpaper_grad_c1_g = import->cfdata->color1->g; + e_config->wallpaper_grad_c1_b = import->cfdata->color1->b; + } + if (import->cfdata->color2) + { + e_config->wallpaper_grad_c2_r = import->cfdata->color2->r; + e_config->wallpaper_grad_c2_g = import->cfdata->color2->g; + e_config->wallpaper_grad_c2_b = import->cfdata->color2->b; + } e_config_save_queue(); }