#include "utils.h"
enum input_handler_type {
- INPUT_HANDLER_TYPE_BASE,
INPUT_HANDLER_TYPE_EO,
INPUT_HANDLER_TYPE_DOWN
};
Evas_Event_Key_Down *ev)
{
struct _priv *priv;
+ struct bar_item *bi;
- if (id != INPUT_HANDLER_TYPE_BASE)
+ if (!data)
return;
- if (!data) {
- _ERR("Invalid argument");
+ switch (id) {
+ case INPUT_HANDLER_TYPE_EO:
+ bi = data;
+ priv = bi->priv;
+ if (!strcmp(ev->keyname, KEY_DOWN)) {
+ viewmgr_push_view(VIEW_RECENT);
+ } else if (!strcmp(ev->keyname, KEY_ENTER) ||
+ !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
+ if (priv->foc->di->action == ITEM_SELECT_ACTION_PUSH)
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
+ else
+ datamgr_select_item(priv->dm, priv->foc->di);
+ }
+ break;
+ case INPUT_HANDLER_TYPE_DOWN:
+ priv = data;
+ if (!strcmp(ev->keyname, KEY_UP))
+ elm_object_focus_set(priv->foc->eo, EINA_TRUE);
+ else if (!strcmp(ev->keyname, KEY_ENTER) ||
+ !strcmp(ev->keyname, KEY_ENTER_REMOTE))
+ viewmgr_push_view(VIEW_RECENT);
+ break;
+ default:
return;
}
-
- priv = data;
-
- if (!strcmp(ev->keyname, KEY_DOWN)) {
- viewmgr_push_view(VIEW_RECENT);
- } else if (!strcmp(ev->keyname, KEY_ENTER) ||
- !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
- if (priv->foc->di->action == ITEM_SELECT_ACTION_PUSH)
- elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
- else
- datamgr_select_item(priv->dm, priv->foc->di);
- } else if (!strcmp(ev->keyname, KEY_BACK) ||
- !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
- /* It should be implemented later */
- }
}
static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
}
viewmgr_set_view_data(VIEW_HOME, priv);
- inputmgr_add_callback(base, INPUT_HANDLER_TYPE_BASE, &handler, priv);
elm_object_signal_callback_add(base, SIG_HIDE_DONE, SRC_EDJE,
_hide_done, priv);