From 54c920189f8524cd06965270d3ef66616f149a22 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Mon, 29 Mar 2021 10:06:49 +0200 Subject: [PATCH] add duration controls in settings --- src/bin/entice_config.c | 2 ++ src/bin/entice_config.h | 1 + src/bin/entice_settings.c | 54 +++++++++++++++++++++++++++++++-------- src/bin/entice_win.c | 6 ++--- 4 files changed, 49 insertions(+), 14 deletions(-) diff --git a/src/bin/entice_config.c b/src/bin/entice_config.c index 0dde775..c79acf8 100644 --- a/src/bin/entice_config.c +++ b/src/bin/entice_config.c @@ -78,6 +78,7 @@ _entice_config_new(void) config->fullscreen_startup = EINA_FALSE; config->best_fit_startup = EINA_TRUE; config->play_animated = EINA_TRUE; + config->duration_controls = 2; _entice_default_keys_add(config); return config; @@ -138,6 +139,7 @@ entice_config_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, Entice_Config, "fullscreen_startup", fullscreen_startup, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, Entice_Config, "best_fit_startup", best_fit_startup, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, Entice_Config, "play_animated", play_animated, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, Entice_Config, "duration_controls", duration_controls, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_LIST(edd_base, Entice_Config, "keys", keys, edd_keys); } diff --git a/src/bin/entice_config.h b/src/bin/entice_config.h index 5e4c659..a931e03 100644 --- a/src/bin/entice_config.h +++ b/src/bin/entice_config.h @@ -47,6 +47,7 @@ struct Entice_Config_ const char *theme; int cg_width; int cg_height; + int duration_controls; Eina_Bool custom_geometry; Eina_Bool fullscreen_startup; Eina_Bool best_fit_startup; diff --git a/src/bin/entice_settings.c b/src/bin/entice_settings.c index f438466..92a3551 100644 --- a/src/bin/entice_settings.c +++ b/src/bin/entice_settings.c @@ -43,7 +43,8 @@ typedef struct Entice_Config *config; Evas_Object *op_w; Evas_Object *op_h; - Evas_Object *op_wh_current; + Evas_Object *op_wh_current; + Evas_Object *op_duration_controls; } Settings_Ctx; static Eina_Bool @@ -180,14 +181,14 @@ _cb_op_behavior_cg_width(void *data, Evas_Object *obj, void *_event EINA_UNUSED) { - Settings_Ctx *ctx = data; - Entice_Config *config = ctx->config; + Settings_Ctx *ctx = data; + Entice_Config *config = ctx->config; - if (config->custom_geometry) - { + if (config->custom_geometry) + { config->cg_width = (int) elm_spinner_value_get(obj); entice_config_save(config); - } + } } static void @@ -195,14 +196,26 @@ _cb_op_behavior_cg_height(void *data, Evas_Object *obj, void *_event EINA_UNUSED) { - Settings_Ctx *ctx = data; - Entice_Config *config = ctx->config; + Settings_Ctx *ctx = data; + Entice_Config *config = ctx->config; - if (config->custom_geometry) - { + if (config->custom_geometry) + { config->cg_height = (int) elm_spinner_value_get(obj); entice_config_save(config); - } + } +} + +static void +_cb_op_behavior_duration_controls(void *data, + Evas_Object *obj, + void *_event EINA_UNUSED) +{ + Settings_Ctx *ctx = data; + Entice_Config *config = ctx->config; + + config->duration_controls = (int) elm_spinner_value_get(obj); + entice_config_save(config); } OPTIONS_CB(fullscreen_startup, 0); @@ -332,6 +345,25 @@ entice_settings_init(Evas_Object *win) SETTINGS_CX("Always best fit", best_fit_startup, 0); SETTINGS_CX("Play animated images", play_animated, 0); + o = elm_label_add(box); + evas_object_size_hint_weight_set(o, 0.0, 0.0); + evas_object_size_hint_align_set(o, 0.0, 0.5); + elm_object_text_set(o, "Display duration of controls:"); + elm_box_pack_end(box, o); + evas_object_show(o); + + o = elm_spinner_add(box); + elm_spinner_editable_set(o, EINA_TRUE); + elm_spinner_min_max_set(o, 1.0, 20.0); + evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); + elm_spinner_value_set(o, (int) ctx->config->duration_controls); + elm_box_pack_end(box, o); + evas_object_show(o); + ctx->op_duration_controls = o; + evas_object_smart_callback_add(o, "changed", + _cb_op_behavior_duration_controls, ctx); + elm_object_part_content_set(entice->layout, "entice.settings", frame); entice->settings_created = EINA_TRUE; diff --git a/src/bin/entice_win.c b/src/bin/entice_win.c index bb7d110..95ef4aa 100644 --- a/src/bin/entice_win.c +++ b/src/bin/entice_win.c @@ -177,8 +177,8 @@ _cb_mouse_move(void *win, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, if (entice->controls_timer) ecore_timer_del(entice->controls_timer); - - entice->controls_timer = ecore_timer_add(2.0, _cb_mouse_idle, win); + entice->controls_timer = ecore_timer_add(entice->config->duration_controls, + _cb_mouse_idle, win); /* display controls */ if (eina_list_prev(entice->image_current)) @@ -266,7 +266,7 @@ entice_win_add(void) } elm_win_title_set(win, "Entice"); - /* TODO: icon name */ + /* FIXME: icon name */ elm_win_autodel_set(win, EINA_TRUE); elm_win_focus_highlight_enabled_set(win, EINA_TRUE);