From 250cd38661f0069659ee13e1604fd33d3c17fb1e Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Fri, 2 Apr 2010 17:24:02 +0000 Subject: [PATCH] Add ability to set softkey size. SVN revision: 47712 --- src/modules/illume-softkey/Makefile.am | 2 + src/modules/illume-softkey/e_mod_config.c | 51 ++++++++++++++++++ src/modules/illume-softkey/e_mod_config.h | 20 +++++++ src/modules/illume-softkey/e_mod_main.c | 15 +++++- src/modules/illume-softkey/e_mod_sft_win.c | 17 +++--- .../illume-softkey/images/module_icon.png | Bin 2815 -> 1156 bytes 6 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 src/modules/illume-softkey/e_mod_config.c create mode 100644 src/modules/illume-softkey/e_mod_config.h diff --git a/src/modules/illume-softkey/Makefile.am b/src/modules/illume-softkey/Makefile.am index e9b26d9cf..7dbce3ea8 100644 --- a/src/modules/illume-softkey/Makefile.am +++ b/src/modules/illume-softkey/Makefile.am @@ -32,6 +32,8 @@ pkg_LTLIBRARIES = module.la module_la_SOURCES = \ e_mod_sft_win.c \ e_mod_sft_win.h \ + e_mod_config.c \ + e_mod_config.h \ e_mod_main.c \ e_mod_main.h diff --git a/src/modules/illume-softkey/e_mod_config.c b/src/modules/illume-softkey/e_mod_config.c new file mode 100644 index 000000000..e808c6360 --- /dev/null +++ b/src/modules/illume-softkey/e_mod_config.c @@ -0,0 +1,51 @@ +#include "e.h" +#include "e_mod_main.h" +#include "e_mod_config.h" + +/* local variables */ +EAPI Il_Sft_Config *il_sft_cfg = NULL; +static E_Config_DD *conf_edd = NULL; + +int +il_sft_config_init(void) +{ + conf_edd = E_CONFIG_DD_NEW("Illume-Softkey_Cfg", Il_Sft_Config); + #undef T + #undef D + #define T Il_Sft_Config + #define D conf_edd + E_CONFIG_VAL(D, T, version, INT); + E_CONFIG_VAL(D, T, height, INT); + + il_sft_cfg = e_config_domain_load("module.illume-softkey", conf_edd); + if ((il_sft_cfg) && + ((il_sft_cfg->version >> 16) < IL_CONFIG_MAJ)) + { + E_FREE(il_sft_cfg); + } + if (!il_sft_cfg) + { + il_sft_cfg = E_NEW(Il_Sft_Config, 1); + il_sft_cfg->version = 0; + il_sft_cfg->height = 32; + } + if (il_sft_cfg) + il_sft_cfg->version = (IL_CONFIG_MAJ << 16) | IL_CONFIG_MIN; + + return 1; +} + +int +il_sft_config_shutdown(void) +{ + E_FREE(il_sft_cfg); + E_CONFIG_DD_FREE(conf_edd); + + return 1; +} + +int +il_sft_config_save(void) +{ + return e_config_domain_save("module.illume-softkey", conf_edd, il_sft_cfg); +} diff --git a/src/modules/illume-softkey/e_mod_config.h b/src/modules/illume-softkey/e_mod_config.h new file mode 100644 index 000000000..c4ea1e585 --- /dev/null +++ b/src/modules/illume-softkey/e_mod_config.h @@ -0,0 +1,20 @@ +#ifndef E_MOD_CONFIG_H +#define E_MOD_CONFIG_H + +#define IL_CONFIG_MIN 0 +#define IL_CONFIG_MAJ 0 + +typedef struct _Il_Sft_Config Il_Sft_Config; + +struct _Il_Sft_Config +{ + int version, height; +}; + +int il_sft_config_init(void); +int il_sft_config_shutdown(void); +int il_sft_config_save(void); + +extern EAPI Il_Sft_Config *il_sft_cfg; + +#endif diff --git a/src/modules/illume-softkey/e_mod_main.c b/src/modules/illume-softkey/e_mod_main.c index 0be948f57..a4258a486 100644 --- a/src/modules/illume-softkey/e_mod_main.c +++ b/src/modules/illume-softkey/e_mod_main.c @@ -1,5 +1,6 @@ #include "e.h" #include "e_mod_main.h" +#include "e_mod_config.h" #include "e_mod_sft_win.h" /* local variables */ @@ -22,6 +23,15 @@ e_modapi_init(E_Module *m) /* set module directory variable */ _sft_mod_dir = eina_stringshare_add(m->dir); + /* init config subsystem */ + if (!il_sft_config_init()) + { + /* clear module directory variable */ + if (_sft_mod_dir) eina_stringshare_del(_sft_mod_dir); + _sft_mod_dir = NULL; + return NULL; + } + /* loop through the managers (root windows) */ EINA_LIST_FOREACH(e_manager_list(), ml, man) { @@ -62,6 +72,9 @@ e_modapi_shutdown(E_Module *m) ecore_x_e_illume_softkey_geometry_set(ecore_x_window_root_first_get(), 0, 0, 0, 0); + /* shutdown config */ + il_sft_config_shutdown(); + /* clear module directory variable */ if (_sft_mod_dir) eina_stringshare_del(_sft_mod_dir); _sft_mod_dir = NULL; @@ -72,5 +85,5 @@ e_modapi_shutdown(E_Module *m) EAPI int e_modapi_save(E_Module *m) { - return 1; + return il_sft_config_save(); } diff --git a/src/modules/illume-softkey/e_mod_sft_win.c b/src/modules/illume-softkey/e_mod_sft_win.c index c95840e5c..5d3188913 100644 --- a/src/modules/illume-softkey/e_mod_sft_win.c +++ b/src/modules/illume-softkey/e_mod_sft_win.c @@ -1,5 +1,6 @@ #include "e.h" #include "e_mod_main.h" +#include "e_mod_config.h" #include "e_mod_sft_win.h" /* local function prototypes */ @@ -76,11 +77,11 @@ e_mod_sft_win_new(E_Zone *zone) _e_mod_sft_win_create_default_buttons(swin); /* set minimum size of this window */ - e_win_size_min_set(swin->win, zone->w, (32 * e_scale)); + e_win_size_min_set(swin->win, zone->w, (il_sft_cfg->height * e_scale)); /* position and resize this window */ e_win_move_resize(swin->win, zone->x, (zone->y + zone->h - (32 * e_scale)), - zone->w, (32 * e_scale)); + zone->w, (il_sft_cfg->height * e_scale)); /* show the window */ e_win_show(swin->win); @@ -93,8 +94,8 @@ e_mod_sft_win_new(E_Zone *zone) /* tell conformant apps our position and size */ ecore_x_e_illume_softkey_geometry_set(zone->black_win, - zone->x, (zone->h - (32 * e_scale)), - zone->w, (32 * e_scale)); + zone->x, (zone->h - (il_sft_cfg->height * e_scale)), + zone->w, (il_sft_cfg->height * e_scale)); return swin; } @@ -165,7 +166,7 @@ _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event) if (ev->atom != ATM_ENLIGHTENMENT_SCALE) return 1; /* set minimum size of this window */ - e_win_size_min_set(swin->win, swin->zone->w, (32 * e_scale)); + e_win_size_min_set(swin->win, swin->zone->w, (il_sft_cfg->height * e_scale)); /* NB: Not sure why, but we need to tell this border to fetch icccm * size position hints now :( (NOTE: This was not needed a few days ago) @@ -173,12 +174,12 @@ _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event) swin->win->border->client.icccm.fetch.size_pos_hints = 1; /* resize this window */ - e_win_resize(swin->win, swin->zone->w, (32 * e_scale)); + e_win_resize(swin->win, swin->zone->w, (il_sft_cfg->height * e_scale)); /* tell conformant apps our position and size */ ecore_x_e_illume_softkey_geometry_set(swin->zone->black_win, swin->win->x, swin->win->y, - swin->win->w, (32 * e_scale)); + swin->win->w, (il_sft_cfg->height * e_scale)); return 1; } @@ -193,7 +194,7 @@ _e_mod_sft_win_cb_zone_resize(void *data, int type __UNUSED__, void *event) if (ev->zone != swin->zone) return 1; /* set minimum size of this window */ - e_win_size_min_set(swin->win, ev->zone->w, (32 * e_scale)); + e_win_size_min_set(swin->win, ev->zone->w, (il_sft_cfg->height * e_scale)); return 1; } diff --git a/src/modules/illume-softkey/images/module_icon.png b/src/modules/illume-softkey/images/module_icon.png index 82c1b76f30170677b37b1e6923e50fc6ff269186..56691d0b0dd480be3943f68b428030ee79f2f248 100644 GIT binary patch delta 1135 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 JPDHLkV1mC>JOKaz