add key input handler in view_home 92/41792/1
authorSoohye Shin <soohye.shin@samsung.com>
Wed, 17 Jun 2015 11:55:49 +0000 (20:55 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Wed, 17 Jun 2015 11:56:28 +0000 (20:56 +0900)
Change-Id: Icb92d2c97e20efc13cd3e835e2506cd573d78087
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
src/view/view_home.c

index 544e17e..f01ad53 100644 (file)
@@ -314,6 +314,31 @@ static bool _add_home(struct _priv *priv, Evas_Object *base)
        return true;
 }
 
+static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
+               Evas_Event_Key_Down *ev)
+{
+       if (!data) {
+               _ERR("Invalid argument");
+               return;
+       }
+
+       if (!strcmp(ev->keyname, KEY_DOWN)) {
+               viewmgr_push_view(VIEW_RECENT);
+       } else if (!strcmp(ev->keyname, KEY_UP)) {
+               /* It should be implemented later */
+       } else if (!strcmp(ev->keyname, KEY_ENTER) ||
+                       !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
+               /* It should be implemented later */
+       } else if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
+               /* It should be implemented later */
+       }
+}
+
+static input_handler base_handler = {
+       .key_down = _key_down
+};
+
 static Evas_Object *_create(Evas_Object *win, void *data)
 {
        struct _priv *priv;
@@ -361,6 +386,7 @@ static Evas_Object *_create(Evas_Object *win, void *data)
        }
 
        viewmgr_set_view_data(VIEW_HOME, priv);
+       inputmgr_add_callback(base, 0, &base_handler, priv);
 
        return base;
 }
@@ -417,6 +443,7 @@ static void _destroy(void *data)
        }
 
        datamgr_fini(priv->dm);
+       inputmgr_remove_callback(priv->base, &base_handler);
        evas_object_del(priv->base);
 
        priv->list = NULL;