From abf7945288515050c8de55a1e6fbd13653d65060 Mon Sep 17 00:00:00 2001 From: Hyerim Kim Date: Thu, 22 Sep 2016 13:10:14 +0900 Subject: [PATCH] Modify to display user icon popup Signed-off-by: Hyerim Kim Change-Id: I5f2f94fc5d73a94b15d6db199a1c28badb90ad90 --- src/view/view_user_edit.c | 50 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) mode change 100644 => 100755 src/view/view_user_edit.c diff --git a/src/view/view_user_edit.c b/src/view/view_user_edit.c old mode 100644 new mode 100755 index 8bf533f..55d640e --- a/src/view/view_user_edit.c +++ b/src/view/view_user_edit.c @@ -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) -- 2.7.4