From 2b43b9bab2bad6d0ecfd4e51d858514da2dcdcec Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sun, 8 Sep 2019 20:19:25 +0200 Subject: [PATCH] options_elm: add scale slider --- src/bin/options_elm.c | 72 ++++++++++++++++++++++++++++++++++++++++++- src/bin/win.c | 4 +-- 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/src/bin/options_elm.c b/src/bin/options_elm.c index f48b6f33..fa9689c8 100644 --- a/src/bin/options_elm.c +++ b/src/bin/options_elm.c @@ -15,10 +15,37 @@ launch_elm_config(void *_data EINA_UNUSED, ecore_exe_free(exe); } +static void +_scale_round(void *data EINA_UNUSED, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + double val = elm_slider_value_get(obj); + double v; + + v = ((double)((int)(val * 10.0))) / 10.0; + if (v != val) elm_slider_value_set(obj, v); +} + +static void +_scale_change(void *data EINA_UNUSED, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + double scale = elm_config_scale_get(); + double val = elm_slider_value_get(obj); + + if (scale == val) + return; + elm_config_scale_set(val); + elm_config_all_flush(); +} + void options_elm(Evas_Object *opbox, Evas_Object *_term EINA_UNUSED) { - Evas_Object *o, *fr, *bx, *bt, *en; + Evas_Object *o, *fr, *bx, *bt, *en, *lbl, *sl, *sp; + const char *txt; fr = o = elm_frame_add(opbox); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -48,4 +75,47 @@ options_elm(Evas_Object *opbox, Evas_Object *_term EINA_UNUSED) elm_layout_text_set(bt, NULL, _("Launch elementary_config")); elm_box_pack_end(bx, bt); evas_object_show(bt); + + sp = elm_separator_add(opbox); + evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5); + elm_separator_horizontal_set(sp, EINA_TRUE); + elm_box_pack_end(bx, sp); + evas_object_show(sp); + + lbl = elm_label_add(opbox); + evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5); + txt = eina_stringshare_printf("%s",_("Scale")); + elm_object_text_set(lbl, txt); + eina_stringshare_del(txt); + elm_box_pack_end(bx, lbl); + evas_object_show(lbl); + + sl = elm_slider_add(opbox); + evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5); + elm_slider_span_size_set(sl, 120); + elm_slider_unit_format_set(sl, "%1.2f"); + elm_slider_indicator_format_set(sl, "%1.2f"); + elm_slider_min_max_set(sl, 0.25, 5.0); + elm_slider_value_set(sl, elm_config_scale_get()); + elm_box_pack_end(bx, sl); + evas_object_show(sl); + evas_object_smart_callback_add(sl, "changed", _scale_round, NULL); + evas_object_smart_callback_add(sl, "delay,changed", _scale_change, NULL); + + lbl = elm_label_add(opbox); + evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(lbl, 0.0, 0.0); + elm_object_text_set(lbl, _("Select prefered size so that this text is readable.")); + elm_box_pack_end(bx, lbl); + evas_object_show(lbl); + + lbl = elm_label_add(opbox); + evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(lbl, 0.0, 0.0); + elm_object_text_set(lbl, _("The scale configuration can also be changed through elementary's configuration panel.")); + elm_box_pack_end(bx, lbl); + evas_object_show(lbl); } diff --git a/src/bin/win.c b/src/bin/win.c index 0ec73ae9..ae330ea8 100644 --- a/src/bin/win.c +++ b/src/bin/win.c @@ -322,14 +322,14 @@ win_scale_wizard(Evas_Object *win, Term *term) lbl = elm_label_add(win); evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5); - elm_object_text_set(lbl, _("Select prefered size so that is text is readable")); + elm_object_text_set(lbl, _("Select prefered size so that this text is readable.")); elm_box_pack_end(bx, lbl); evas_object_show(lbl); lbl = elm_label_add(win); evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5); - elm_object_text_set(lbl, _("The scale configuration can be changed in the Settings (right click on the terminal) → Toolkit, or by starting the command elementary_config")); + elm_object_text_set(lbl, _("The scale configuration can be changed in the Settings (right click on the terminal) → Toolkit, or by starting the command elementary_config.")); elm_box_pack_end(bx, lbl); evas_object_show(lbl);