Elementary patch for supporting keypad

Author: Jihoon Kim <jihoon48.kim@samsung.com>

SVN revision: 55062
This commit is contained in:
Tiago Rezende Campos Falcao 2010-11-29 13:56:33 +00:00
parent 670ca32f20
commit a609cc1b69
12 changed files with 64 additions and 33 deletions

View File

@ -56,7 +56,9 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
if (!wd) return EINA_FALSE;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if ((strcmp(ev->keyname, "Return")) && (strcmp(ev->keyname, "space")))
if ((strcmp(ev->keyname, "Return")) &&
(strcmp(ev->keyname, "KP_Enter")) &&
(strcmp(ev->keyname, "space")))
return EINA_FALSE;
_activate(obj);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;

View File

@ -572,7 +572,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if (!wd->selection_enabled) return EINA_FALSE;
if ((!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left")))
if ((!strcmp(ev->keyname, "Left")) ||
(!strcmp(ev->keyname, "KP_Left")))
{
_update_sel_it(obj, wd->selected_it-1);
}
@ -581,11 +582,13 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
{
_update_sel_it(obj, wd->selected_it+1);
}
else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
else if ((!strcmp(ev->keyname, "Up")) ||
(!strcmp(ev->keyname, "KP_Up")))
{
_update_sel_it(obj, wd->selected_it-7);
}
else if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down")))
else if ((!strcmp(ev->keyname, "Down")) ||
(!strcmp(ev->keyname, "KP_Down")))
{
_update_sel_it(obj, wd->selected_it+7);
}
@ -594,7 +597,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
{
if (_update_month(obj, -1)) _populate(obj);
}
else if ((!strcmp(ev->keyname, "Next")) || (!strcmp(ev->keyname, "KP_Next")))
else if ((!strcmp(ev->keyname, "Next")) ||
(!strcmp(ev->keyname, "KP_Next")))
{
if (_update_month(obj, 1)) _populate(obj);
}

View File

@ -58,7 +58,9 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
Evas_Event_Key_Down *ev = event_info;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if ((strcmp(ev->keyname, "Return")) && (strcmp(ev->keyname, "space")))
if ((strcmp(ev->keyname, "Return")) &&
(strcmp(ev->keyname, "KP_Enter")) &&
(strcmp(ev->keyname, "space")))
return EINA_FALSE;
_activate(obj);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;

View File

@ -329,9 +329,9 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
if ((!l) && (wd->round))
l = wd->items;
}
else if (!strcmp(ev->keyname, "Home"))
else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home")))
l = wd->items;
else if (!strcmp(ev->keyname, "End"))
else if ((!strcmp(ev->keyname, "End")) || (!strcmp(ev->keyname, "KP_End")))
l = eina_list_last(wd->items);
else return EINA_FALSE;

View File

@ -354,21 +354,21 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
else
y += step_y;
}
else if (!strcmp(ev->keyname, "Home"))
else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home")))
{
item = elm_gengrid_first_item_get(obj);
elm_gengrid_item_bring_in(item);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
else if (!strcmp(ev->keyname, "End"))
else if ((!strcmp(ev->keyname, "End")) || (!strcmp(ev->keyname, "KP_End")))
{
item = elm_gengrid_last_item_get(obj);
elm_gengrid_item_bring_in(item);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
else if (!strcmp(ev->keyname, "Prior"))
else if ((!strcmp(ev->keyname, "Prior")) || (!strcmp(ev->keyname, "KP_Prior")))
{
if (wd->horizontal)
{
@ -385,7 +385,7 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
y -= page_y;
}
}
else if (!strcmp(ev->keyname, "Next"))
else if ((!strcmp(ev->keyname, "Next")) || (!strcmp(ev->keyname, "KP_Next")))
{
if (wd->horizontal)
{

View File

@ -487,35 +487,41 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
else
y += step_y;
}
else if (!strcmp(ev->keyname, "Home"))
else if ((!strcmp(ev->keyname, "Home")) ||
(!strcmp(ev->keyname, "KP_Home")))
{
it = elm_genlist_first_item_get(obj);
elm_genlist_item_bring_in(it);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
else if (!strcmp(ev->keyname, "End"))
else if ((!strcmp(ev->keyname, "End")) ||
(!strcmp(ev->keyname, "KP_End")))
{
it = elm_genlist_last_item_get(obj);
elm_genlist_item_bring_in(it);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
else if (!strcmp(ev->keyname, "Prior"))
else if ((!strcmp(ev->keyname, "Prior")) ||
(!strcmp(ev->keyname, "KP_Prior")))
{
if (page_y < 0)
y -= -(page_y * v_h) / 100;
else
y -= page_y;
}
else if (!strcmp(ev->keyname, "Next"))
else if ((!strcmp(ev->keyname, "Next")) ||
(!strcmp(ev->keyname, "KP_Next")))
{
if (page_y < 0)
y += -(page_y * v_h) / 100;
else
y += page_y;
}
else if(((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "space")))
else if(((!strcmp(ev->keyname, "Return")) ||
(!strcmp(ev->keyname, "KP_Enter")) ||
(!strcmp(ev->keyname, "space")))
&& (!wd->multi) && (wd->selected))
{
Elm_Genlist_Item *it = elm_genlist_selected_item_get(obj);

View File

@ -149,7 +149,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
elm_smart_scroller_child_viewport_size_get(wd->scr, &v_w, &v_h);
/* TODO: fix logic for horizontal mode */
if ((!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left")))
if ((!strcmp(ev->keyname, "Left")) ||
(!strcmp(ev->keyname, "KP_Left")))
{
if ((wd->h_mode) &&
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@ -162,7 +163,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
else
x -= step_x;
}
else if ((!strcmp(ev->keyname, "Right")) || (!strcmp(ev->keyname, "KP_Right")))
else if ((!strcmp(ev->keyname, "Right")) ||
(!strcmp(ev->keyname, "KP_Right")))
{
if ((wd->h_mode) &&
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@ -175,7 +177,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
else
x += step_x;
}
else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
else if ((!strcmp(ev->keyname, "Up")) ||
(!strcmp(ev->keyname, "KP_Up")))
{
if ((!wd->h_mode) &&
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@ -188,7 +191,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
else
y -= step_y;
}
else if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down")))
else if ((!strcmp(ev->keyname, "Down")) ||
(!strcmp(ev->keyname, "KP_Down")))
{
if ((!wd->h_mode) &&
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
@ -201,21 +205,24 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
else
y += step_y;
}
else if (!strcmp(ev->keyname, "Home"))
else if ((!strcmp(ev->keyname, "Home")) ||
(!strcmp(ev->keyname, "KP_Home")))
{
it = eina_list_data_get(wd->items);
elm_list_item_bring_in(it);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
else if (!strcmp(ev->keyname, "End"))
else if ((!strcmp(ev->keyname, "End")) ||
(!strcmp(ev->keyname, "KP_End")))
{
it = eina_list_data_get(eina_list_last(wd->items));
elm_list_item_bring_in(it);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
else if (!strcmp(ev->keyname, "Prior"))
else if ((!strcmp(ev->keyname, "Prior")) ||
(!strcmp(ev->keyname, "KP_Prior")))
{
if (wd->h_mode)
{
@ -232,7 +239,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
y -= page_y;
}
}
else if (!strcmp(ev->keyname, "Next"))
else if ((!strcmp(ev->keyname, "Next")) ||
(!strcmp(ev->keyname, "KP_Next")))
{
if (wd->h_mode)
{

View File

@ -212,7 +212,9 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if ((strcmp(ev->keyname, "Return")) && (strcmp(ev->keyname, "space")))
if ((strcmp(ev->keyname, "Return")) &&
(strcmp(ev->keyname, "KP_Enter")) &&
(strcmp(ev->keyname, "space")))
return EINA_FALSE;
_toggle_panel(obj, NULL, "elm,action,panel,toggle", "*");

View File

@ -78,7 +78,10 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
Evas_Event_Key_Down *ev = event_info;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if ((strcmp(ev->keyname, "Return")) && (strcmp(ev->keyname, "space")))
if ((strcmp(ev->keyname, "Return")) &&
(strcmp(ev->keyname, "KP_Enter")) &&
(strcmp(ev->keyname, "space")))
return EINA_FALSE;
_activate(obj);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;

View File

@ -119,22 +119,22 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
{
y += step_y;
}
else if (!strcmp(ev->keyname, "Home"))
else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home")))
{
y = 0;
}
else if (!strcmp(ev->keyname, "End"))
else if ((!strcmp(ev->keyname, "End")) || (!strcmp(ev->keyname, "KP_End")))
{
y = max_y - v_h;
}
else if (!strcmp(ev->keyname, "Prior"))
else if ((!strcmp(ev->keyname, "Prior")) || (!strcmp(ev->keyname, "KP_Prior")))
{
if (page_y < 0)
y -= -(page_y * v_h) / 100;
else
y -= page_y;
}
else if (!strcmp(ev->keyname, "Next"))
else if ((!strcmp(ev->keyname, "Next")) || (!strcmp(ev->keyname, "KP_Next")))
{
if (page_y < 0)
y += -(page_y * v_h) / 100;

View File

@ -81,7 +81,9 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
if ((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "space")))
if ((!strcmp(ev->keyname, "Return")) ||
(!strcmp(ev->keyname, "KP_Enter")) ||
(!strcmp(ev->keyname, "space")))
{
if (wd->timeout)
elm_slideshow_timeout_set(obj, 0);

View File

@ -54,7 +54,9 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
if (!wd) return EINA_FALSE;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if ((strcmp(ev->keyname, "Return")) && (strcmp(ev->keyname, "space")))
if ((strcmp(ev->keyname, "Return")) &&
(strcmp(ev->keyname, "KP_Enter")) &&
(strcmp(ev->keyname, "space")))
return EINA_FALSE;
elm_toggle_state_set(obj, !wd->state);
evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);