Modify to display user icon popup 77/89077/1 accepted/tizen/3.0/tv/20161016.005508 accepted/tizen/tv/20160922.233237 submit/tizen/20160922.063540 submit/tizen_3.0_tv/20161015.000004
authorHyerim Kim <rimi.kim@samsung.com>
Thu, 22 Sep 2016 04:10:14 +0000 (13:10 +0900)
committerHyerim Kim <rimi.kim@samsung.com>
Thu, 22 Sep 2016 04:10:14 +0000 (13:10 +0900)
Signed-off-by: Hyerim Kim <rimi.kim@samsung.com>
Change-Id: I5f2f94fc5d73a94b15d6db199a1c28badb90ad90

src/view/view_user_edit.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 8bf533f..55d640e
@@ -67,6 +67,8 @@ struct _priv {
        Evas_Object *delete;
        Eina_Bool locked;
 
+       Evas_Object *table_item[MAX_ITEM_COUNT];
+
        char *selected_photo;
 
        struct datamgr *dm;
@@ -276,7 +278,6 @@ static void _load_user_icon(struct _priv *priv, const char *file,
        priv->icon = icon;
        priv->focus_icon = focus_icon;
 }
-
 static Evas_Object *_pack_icon(Evas_Object *table, struct icon_info *_icon_info,
                int i)
 {
@@ -317,6 +318,35 @@ static void _dismissed(void *data, Evas_Object *obj, void *ei)
        elm_object_focus_allow_set(priv->photo, EINA_TRUE);
 }
 
+static void _set_focus_icon_list(struct _priv *priv)
+{
+       int i;
+
+       for (i = 0; i < MAX_ITEM_COUNT; i++) {
+               if (i/4 == 0) {
+                       if (i == 0)
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i+1], ELM_FOCUS_RIGHT);
+                       else if (i == 3)
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i-1], ELM_FOCUS_LEFT);
+                       else {
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i+1], ELM_FOCUS_RIGHT);
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i-1], ELM_FOCUS_LEFT);
+                       }
+                       elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i+4], ELM_FOCUS_DOWN);
+               } else {
+                       if (i == 4)
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i+1], ELM_FOCUS_RIGHT);
+                       else if (i == 7)
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i-1], ELM_FOCUS_LEFT);
+                       else {
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i+1], ELM_FOCUS_RIGHT);
+                               elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i-1], ELM_FOCUS_LEFT);
+                       }
+                       elm_object_focus_next_object_set(priv->table_item[i], priv->table_item[i-4], ELM_FOCUS_UP);
+               }
+       }
+}
+
 static void _add_icon_list(struct _priv *priv)
 {
        Evas_Coord x, y, w, h;
@@ -331,6 +361,7 @@ static void _add_icon_list(struct _priv *priv)
        }
        elm_ctxpopup_horizontal_set(ctxpopup, EINA_TRUE);
        elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
+       evas_object_resize(ctxpopup, 812,348);
        evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed, priv);
 
        ly = utils_add_layout(ctxpopup, GRP_USER_EDIT_ICON_LIST, false, NULL);
@@ -344,10 +375,7 @@ static void _add_icon_list(struct _priv *priv)
        evas_object_show(ctxpopup);
 
        evas_object_geometry_get(priv->photo, &x, &y, &w, &h);
-       evas_object_move(ctxpopup,
-                       ELM_SCALE_SIZE(x + w + CTXPOPUP_X),
-                       ELM_SCALE_SIZE(y + CTXPOPUP_Y));
-
+       evas_object_move(ctxpopup, ELM_SCALE_SIZE(x + w), ELM_SCALE_SIZE(y-30));
        table = utils_add_table(ly, true, PART_USER_EDIT_ICON_LIST);
        if (!table) {
                _ERR("failed to add table");
@@ -365,12 +393,19 @@ static void _add_icon_list(struct _priv *priv)
                if (!eo)
                        continue;
 
+               priv->table_item[i] = eo;
                inputmgr_add_callback(eo, INPUT_HANDLER_TYPE_EO, &handler,
                                priv);
                if (i == 0)
                        elm_object_focus_set(eo, EINA_TRUE);
        }
 
+       _set_focus_icon_list(priv);
+
+       elm_object_focus_allow_set(priv->name, EINA_FALSE);
+       elm_object_focus_allow_set(priv->delete, EINA_FALSE);
+       elm_object_focus_allow_set(priv->done, EINA_FALSE);
+       elm_object_focus_allow_set(priv->cancel, EINA_FALSE);
        elm_object_focus_allow_set(priv->photo, EINA_FALSE);
        priv->ctxpopup = ctxpopup;
 }
@@ -486,7 +521,12 @@ static void _delete_ctxpopup(struct _priv *priv)
 
        evas_object_del(priv->ctxpopup);
        priv->ctxpopup = NULL;
+
+       elm_object_focus_allow_set(priv->name, EINA_TRUE);
        elm_object_focus_allow_set(priv->photo, EINA_TRUE);
+       elm_object_focus_allow_set(priv->done, EINA_TRUE);
+       elm_object_focus_allow_set(priv->cancel, EINA_TRUE);
+       elm_object_focus_allow_set(priv->delete, EINA_TRUE);
 }
 
 static void _select_eo(struct _priv *priv, Evas_Object *obj)