e: make some config vars in illume-keyboard. I hope limits will be good for you.

SVN revision: 61290
This commit is contained in:
Michael BOUCHAUD 2011-07-12 13:05:06 +00:00
parent ad7ad9a092
commit 680c3eb7ac
3 changed files with 55 additions and 15 deletions

View File

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

View File

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

View File

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