diff options
author | Michaël Bouchaud (yoz) <yoz@efl.so> | 2016-12-09 22:33:03 +0100 |
---|---|---|
committer | Michaël Bouchaud (yoz) <yoz@efl.so> | 2017-01-08 12:12:08 +0100 |
commit | 2abbab50430fe5b5c080a5bf160f003a600213f1 (patch) | |
tree | 4a550cbc7fb253975e395e541825bef3e57421e4 | |
parent | 8c8cb30cef329542a232b2dad2eae86e742d9b2d (diff) | |
download | enlightenment-2abbab50430fe5b5c080a5bf160f003a600213f1.tar.gz |
e_clock: make clock external config
-rw-r--r-- | src/modules/Makefile_clock.mk | 2 | ||||
-rw-r--r-- | src/modules/clock/config_descriptor.c | 46 | ||||
-rw-r--r-- | src/modules/clock/config_descriptor.h | 51 | ||||
-rw-r--r-- | src/modules/clock/e_mod_main.c | 34 | ||||
-rw-r--r-- | src/modules/clock/e_mod_main.h | 28 |
5 files changed, 106 insertions, 55 deletions
diff --git a/src/modules/Makefile_clock.mk b/src/modules/Makefile_clock.mk index 2d30da128b..2babeaf8ef 100644 --- a/src/modules/Makefile_clock.mk +++ b/src/modules/Makefile_clock.mk @@ -14,6 +14,8 @@ src_modules_clock_module_la_CPPFLAGS = $(MOD_CPPFLAGS) src_modules_clock_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_clock_module_la_SOURCES = src/modules/clock/e_mod_main.h \ src/modules/clock/e_mod_main.c \ + src/modules/clock/config_descriptor.c \ + src/modules/clock/config_descriptor.h \ src/modules/clock/e_mod_config.c PHONIES += clock install-clock diff --git a/src/modules/clock/config_descriptor.c b/src/modules/clock/config_descriptor.c new file mode 100644 index 0000000000..593e394e39 --- /dev/null +++ b/src/modules/clock/config_descriptor.c @@ -0,0 +1,46 @@ +#include <e.h> +#include "config_descriptor.h" + +static E_Config_DD *conf_edd = NULL; +static E_Config_DD *conf_item_edd = NULL; + +void +config_descriptor_init(void) +{ + conf_item_edd = E_CONFIG_DD_NEW("Config_Item", Config_Item); +#undef T +#undef D +#define T Config_Item +#define D conf_item_edd + E_CONFIG_VAL(D, T, id, STR); + E_CONFIG_VAL(D, T, weekend.start, INT); + E_CONFIG_VAL(D, T, weekend.len, INT); + E_CONFIG_VAL(D, T, week.start, INT); + E_CONFIG_VAL(D, T, digital_clock, INT); + E_CONFIG_VAL(D, T, digital_24h, INT); + E_CONFIG_VAL(D, T, show_seconds, INT); + E_CONFIG_VAL(D, T, show_date, INT); + + conf_edd = E_CONFIG_DD_NEW("Config", Config); +#undef T +#undef D +#define T Config +#define D conf_edd + E_CONFIG_LIST(D, T, items, conf_item_edd); +} + +void +config_descriptor_shutdown(void) +{ + E_CONFIG_DD_FREE(conf_edd); + E_CONFIG_DD_FREE(conf_item_edd); +} + + +E_Config_DD * +config_descriptor_get(void) +{ + return conf_edd; +} + + diff --git a/src/modules/clock/config_descriptor.h b/src/modules/clock/config_descriptor.h new file mode 100644 index 0000000000..f5d7ab4682 --- /dev/null +++ b/src/modules/clock/config_descriptor.h @@ -0,0 +1,51 @@ +#ifndef CLOCK_CONFIG_DESCRIPTOR_H +#define CLOCK_CONFIG_DESCRIPTOR_H + +#undef _Config +#undef Config +#undef _Config_Item +#undef Config_Item +#undef config_descriptor_init +#undef config_descriptor_shutdown +#undef config_descriptor_get + +#define _Config _Clock_Config +#define Config Clock_Config +#define _Config_Item _Clock_Config_Item +#define Config_Item Clock_Config_Item +#define config_descriptor_init clock_config_descriptor_init +#define config_descriptor_shutdown clock_config_descriptor_shutdown +#define config_descriptor_get clock_config_descriptor_get + +typedef struct _Config Config; +typedef struct _Config_Item Config_Item; + +struct _Config +{ + Eina_List *items; + + E_Module *module; + E_Config_Dialog *config_dialog; +}; + +struct _Config_Item +{ + const char *id; + struct { + int start, len; // 0->6 0 == sun, 6 == sat, number of days + } weekend; + struct { + int start; // 0->6 0 == sun, 6 == sat + } week; + int digital_clock; + int digital_24h; + int show_seconds; + int show_date; + Eina_Bool changed; +}; + +void config_descriptor_init(void); +void config_descriptor_shutdown(void); +E_Config_DD *config_descriptor_get(void); + +#endif /* CLOCK_CONFIG_DESCRIPTOR_H */ diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c index b2356a6718..2c2436b20f 100644 --- a/src/modules/clock/e_mod_main.c +++ b/src/modules/clock/e_mod_main.c @@ -41,8 +41,6 @@ static Eio_Monitor *clock_tzetc_monitor = NULL; static Eina_List *clock_eio_handlers = NULL; Config *clock_config = NULL; -static E_Config_DD *conf_edd = NULL; -static E_Config_DD *conf_item_edd = NULL; static Eina_List *clock_instances = NULL; static E_Action *act = NULL; static Ecore_Timer *update_today = NULL; @@ -849,28 +847,9 @@ E_API E_Module_Api e_modapi = E_API void * e_modapi_init(E_Module *m) { - conf_item_edd = E_CONFIG_DD_NEW("Config_Item", Config_Item); -#undef T -#undef D -#define T Config_Item -#define D conf_item_edd - E_CONFIG_VAL(D, T, id, STR); - E_CONFIG_VAL(D, T, weekend.start, INT); - E_CONFIG_VAL(D, T, weekend.len, INT); - E_CONFIG_VAL(D, T, week.start, INT); - E_CONFIG_VAL(D, T, digital_clock, INT); - E_CONFIG_VAL(D, T, digital_24h, INT); - E_CONFIG_VAL(D, T, show_seconds, INT); - E_CONFIG_VAL(D, T, show_date, INT); - - conf_edd = E_CONFIG_DD_NEW("Config", Config); -#undef T -#undef D -#define T Config -#define D conf_edd - E_CONFIG_LIST(D, T, items, conf_item_edd); - - clock_config = e_config_domain_load("module.clock", conf_edd); + config_descriptor_init(); + + clock_config = e_config_domain_load("module.clock", config_descriptor_get()); if (!clock_config) clock_config = E_NEW(Config, 1); @@ -932,10 +911,7 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED) free(clock_config); clock_config = NULL; } - E_CONFIG_DD_FREE(conf_edd); - E_CONFIG_DD_FREE(conf_item_edd); - conf_item_edd = NULL; - conf_edd = NULL; + config_descriptor_shutdown(); e_gadcon_provider_unregister(&_gadcon_class); @@ -957,7 +933,7 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED) E_API int e_modapi_save(E_Module *m EINA_UNUSED) { - e_config_domain_save("module.clock", conf_edd, clock_config); + e_config_domain_save("module.clock", config_descriptor_get(), clock_config); return 1; } diff --git a/src/modules/clock/e_mod_main.h b/src/modules/clock/e_mod_main.h index bde714fb42..c246c97fad 100644 --- a/src/modules/clock/e_mod_main.h +++ b/src/modules/clock/e_mod_main.h @@ -1,38 +1,14 @@ #ifndef E_MOD_MAIN_H #define E_MOD_MAIN_H +#include "config_descriptor.h" + E_API extern E_Module_Api e_modapi; E_API void *e_modapi_init (E_Module *m); E_API int e_modapi_shutdown (E_Module *m); E_API int e_modapi_save (E_Module *m); -typedef struct _Config Config; -typedef struct _Config_Item Config_Item; - -struct _Config -{ - Eina_List *items; - - E_Module *module; - E_Config_Dialog *config_dialog; -}; - -struct _Config_Item -{ - const char *id; - struct { - int start, len; // 0->6 0 == sun, 6 == sat, number of days - } weekend; - struct { - int start; // 0->6 0 == sun, 6 == sat - } week; - int digital_clock; - int digital_24h; - int show_seconds; - int show_date; - Eina_Bool changed; -}; void e_int_config_clock_module(Evas_Object *parent, Config_Item *ci); void e_int_clock_instances_redo(Eina_Bool all); |