add duration controls in settings

This commit is contained in:
Vincent Torri 2021-03-29 10:06:49 +02:00
parent a9e0af718b
commit 54c920189f
4 changed files with 49 additions and 14 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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);