diff --git a/src/modules/illume-keyboard/e_kbd_int.c b/src/modules/illume-keyboard/e_kbd_int.c index 6796e3963..f5b5aafb9 100644 --- a/src/modules/illume-keyboard/e_kbd_int.c +++ b/src/modules/illume-keyboard/e_kbd_int.c @@ -557,8 +557,9 @@ _e_kbd_int_zoomkey_up(E_Kbd_Int *ki) e_layout_virtual_size_set(o, vw, vh); e_layout_pack(ki->zoomkey.layout_obj, o); e_layout_child_move(o, 0, 0); - // FIXME dimension * 4 is a magic number - make config - e_layout_child_resize(o, vw * 4, vh * 4); + e_layout_child_resize(o, + vw * il_kbd_cfg->zoom_level, + vh * il_kbd_cfg->zoom_level); evas_object_show(o); ki->zoomkey.sublayout_obj = o; @@ -648,11 +649,12 @@ _e_kbd_int_zoomkey_update(E_Kbd_Int *ki) evas_object_geometry_get(ki->zoomkey.layout_obj, NULL, NULL, &w, &h); evas_object_geometry_get(ki->layout_obj, NULL, NULL, &ww, &hh); e_layout_virtual_size_set(ki->zoomkey.layout_obj, w, h); - // FIXME dimension * 4 is a magic number - make config - e_layout_child_resize(ki->zoomkey.sublayout_obj, ww * 4, hh * 4); + e_layout_child_resize(ki->zoomkey.sublayout_obj, + ww * il_kbd_cfg->zoom_level, + hh * il_kbd_cfg->zoom_level); e_layout_child_move(ki->zoomkey.sublayout_obj, - (w / 2) - (ki->down.cx * 4), - (h / 2) - (ki->down.cy * 4)); + (w / 2) - (ki->down.cx * il_kbd_cfg->zoom_level), + (h / 2) - (ki->down.cy * il_kbd_cfg->zoom_level)); ky = _e_kbd_int_at_coord_get(ki, ki->down.clx, ki->down.cly); if (ky != ki->zoomkey.pressed) { @@ -729,8 +731,8 @@ _e_kbd_int_cb_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __U ki->down.cly = y; if (ki->down.hold_timer) ecore_timer_del(ki->down.hold_timer); - // FIXME 0.25 - magic value. make config. - ki->down.hold_timer = ecore_timer_add(0.25, _e_kbd_int_cb_hold_timeout, ki); + ki->down.hold_timer = ecore_timer_add(il_kbd_cfg->hold_timer, + _e_kbd_int_cb_hold_timeout, ki); ky = _e_kbd_int_at_coord_get(ki, x, y); ki->layout.pressed = ky; @@ -774,11 +776,14 @@ _e_kbd_int_cb_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj __U evas_object_geometry_get(ki->event_obj, &x, &y, &w, &h); dx = (dx * ki->layout.w) / w; dy = (dy * ki->layout.h) / h; - // FIXME: slide 1/4 of dimension is a magic number - make config - if ((dx > 0) && (dx > (ki->layout.w / 4))) ki->down.stroke = 1; - else if ((dx < 0) && (-dx > (ki->layout.w / 4))) ki->down.stroke = 1; - if ((dy > 0) && (dy > (ki->layout.h / 4))) ki->down.stroke = 1; - else if ((dy < 0) && (-dy > (ki->layout.w / 4))) ki->down.stroke = 1; + if ((dx > 0) && (dx > (ki->layout.w / il_kbd_cfg->slide_dim))) + ki->down.stroke = 1; + else if ((dx < 0) && (-dx > (ki->layout.w / il_kbd_cfg->slide_dim))) + ki->down.stroke = 1; + if ((dy > 0) && (dy > (ki->layout.h / il_kbd_cfg->slide_dim))) + ki->down.stroke = 1; + else if ((dy < 0) && (-dy > (ki->layout.w / il_kbd_cfg->slide_dim))) + ki->down.stroke = 1; if ((ki->down.stroke) && (ki->down.hold_timer)) { ecore_timer_del(ki->down.hold_timer); diff --git a/src/modules/illume-keyboard/e_mod_config.c b/src/modules/illume-keyboard/e_mod_config.c index e3e69ee45..ca936a137 100644 --- a/src/modules/illume-keyboard/e_mod_config.c +++ b/src/modules/illume-keyboard/e_mod_config.c @@ -29,6 +29,9 @@ il_kbd_config_init(E_Module *m) E_CONFIG_VAL(D, T, use_internal, INT); E_CONFIG_VAL(D, T, run_keyboard, STR); E_CONFIG_VAL(D, T, dict, STR); + E_CONFIG_VAL(D, T, zoom_level, INT); + E_CONFIG_VAL(D, T, hold_timer, DOUBLE); + E_CONFIG_VAL(D, T, slide_dim, INT); il_kbd_cfg = e_config_domain_load("module.illume-keyboard", conf_edd); if ((il_kbd_cfg) && @@ -44,11 +47,21 @@ il_kbd_config_init(E_Module *m) il_kbd_cfg->use_internal = 1; il_kbd_cfg->run_keyboard = NULL; il_kbd_cfg->dict = eina_stringshare_add("English_(US).dic"); + il_kbd_cfg->zoom_level = 4; + il_kbd_cfg->slide_dim = 4; + il_kbd_cfg->hold_timer = 0.25; + } if (il_kbd_cfg) { /* Add new config variables here */ /* if ((il_kbd_cfg->version & 0xffff) < 1) */ + if ((il_kbd_cfg->version >> 16) < IL_CONFIG_MAJ) + { + il_kbd_cfg->zoom_level = 4; + il_kbd_cfg->slide_dim = 4; + il_kbd_cfg->hold_timer = 0.25; + } il_kbd_cfg->version = (IL_CONFIG_MAJ << 16) | IL_CONFIG_MIN; } @@ -128,7 +141,7 @@ _il_kbd_config_free(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdat static Evas_Object * _il_kbd_config_ui(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata __UNUSED__) { - Evas_Object *list, *of, *ow; + Evas_Object *list, *of, *ow, *sl, *ol; E_Radio_Group *rg; Eina_List *l; @@ -193,6 +206,25 @@ _il_kbd_config_ui(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_D nn++; } } + + ol = e_widget_label_add(evas, _("Displacement ratio")); + e_widget_framelist_object_append(of, ol); + sl = e_widget_slider_add(evas, EINA_TRUE, 0, "1/%.0f", 1.0, 10.0, 1.0, 0, + NULL, &(il_kbd_cfg->slide_dim), 150); + e_widget_framelist_object_append(of, sl); + + ol = e_widget_label_add(evas, _("Delay for zoom popup")); + e_widget_framelist_object_append(of, ol); + sl = e_widget_slider_add(evas, EINA_TRUE, 0, "%.2f second(s)", 0.0, 3.0, 0.01, 0, + &(il_kbd_cfg->hold_timer), NULL, 150); + e_widget_framelist_object_append(of, sl); + + ol = e_widget_label_add(evas, _("Zoom level")); + e_widget_framelist_object_append(of, ol); + sl = e_widget_slider_add(evas, EINA_TRUE, 0, "%.0f", 1.0, 10.0, 1.0, 0, + NULL, &(il_kbd_cfg->zoom_level), 150); + e_widget_framelist_object_append(of, sl); + e_widget_list_object_append(list, of, 1, 0, 0.0); return list; } diff --git a/src/modules/illume-keyboard/e_mod_config.h b/src/modules/illume-keyboard/e_mod_config.h index e50950b81..3debc42c4 100644 --- a/src/modules/illume-keyboard/e_mod_config.h +++ b/src/modules/illume-keyboard/e_mod_config.h @@ -2,7 +2,7 @@ #define E_MOD_CONFIG_H #define IL_CONFIG_MIN 0 -#define IL_CONFIG_MAJ 0 +#define IL_CONFIG_MAJ 1 typedef struct _Il_Kbd_Config Il_Kbd_Config; @@ -15,6 +15,9 @@ struct _Il_Kbd_Config // Not User Configurable. Placeholders const char *mod_dir; + int zoom_level; + int slide_dim; + double hold_timer; E_Config_Dialog *cfd; };