change user photo when icon is selected in icon list 53/42653/2
authorSoohye Shin <soohye.shin@samsung.com>
Wed, 1 Jul 2015 08:18:20 +0000 (17:18 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Thu, 2 Jul 2015 01:51:55 +0000 (10:51 +0900)
Change-Id: If611b801f7590843f1b83f1f85aaf51178cb9c39
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
18 files changed:
images/ic_user_profile_current_02_foc.png [new file with mode: 0644]
images/ic_user_profile_current_02_nor.png [new file with mode: 0644]
images/ic_user_profile_current_03_foc.png [new file with mode: 0644]
images/ic_user_profile_current_03_nor.png [new file with mode: 0644]
images/ic_user_profile_current_04_foc.png [new file with mode: 0644]
images/ic_user_profile_current_04_nor.png [new file with mode: 0644]
images/ic_user_profile_current_05_foc.png [new file with mode: 0644]
images/ic_user_profile_current_05_nor.png [new file with mode: 0644]
images/ic_user_profile_current_06_foc.png [new file with mode: 0644]
images/ic_user_profile_current_06_nor.png [new file with mode: 0644]
images/ic_user_profile_current_07_foc.png [new file with mode: 0644]
images/ic_user_profile_current_07_nor.png [new file with mode: 0644]
images/ic_user_profile_current_08_foc.png [new file with mode: 0644]
images/ic_user_profile_current_08_nor.png [new file with mode: 0644]
images/ic_user_profile_current_09_foc.png [new file with mode: 0644]
images/ic_user_profile_current_09_nor.png [new file with mode: 0644]
include/defs.h
src/view/view_user_edit.c

diff --git a/images/ic_user_profile_current_02_foc.png b/images/ic_user_profile_current_02_foc.png
new file mode 100644 (file)
index 0000000..d03ea9f
Binary files /dev/null and b/images/ic_user_profile_current_02_foc.png differ
diff --git a/images/ic_user_profile_current_02_nor.png b/images/ic_user_profile_current_02_nor.png
new file mode 100644 (file)
index 0000000..9cd9343
Binary files /dev/null and b/images/ic_user_profile_current_02_nor.png differ
diff --git a/images/ic_user_profile_current_03_foc.png b/images/ic_user_profile_current_03_foc.png
new file mode 100644 (file)
index 0000000..07dec2e
Binary files /dev/null and b/images/ic_user_profile_current_03_foc.png differ
diff --git a/images/ic_user_profile_current_03_nor.png b/images/ic_user_profile_current_03_nor.png
new file mode 100644 (file)
index 0000000..8386344
Binary files /dev/null and b/images/ic_user_profile_current_03_nor.png differ
diff --git a/images/ic_user_profile_current_04_foc.png b/images/ic_user_profile_current_04_foc.png
new file mode 100644 (file)
index 0000000..7d4a39d
Binary files /dev/null and b/images/ic_user_profile_current_04_foc.png differ
diff --git a/images/ic_user_profile_current_04_nor.png b/images/ic_user_profile_current_04_nor.png
new file mode 100644 (file)
index 0000000..48f15e6
Binary files /dev/null and b/images/ic_user_profile_current_04_nor.png differ
diff --git a/images/ic_user_profile_current_05_foc.png b/images/ic_user_profile_current_05_foc.png
new file mode 100644 (file)
index 0000000..a92c1a8
Binary files /dev/null and b/images/ic_user_profile_current_05_foc.png differ
diff --git a/images/ic_user_profile_current_05_nor.png b/images/ic_user_profile_current_05_nor.png
new file mode 100644 (file)
index 0000000..367fa13
Binary files /dev/null and b/images/ic_user_profile_current_05_nor.png differ
diff --git a/images/ic_user_profile_current_06_foc.png b/images/ic_user_profile_current_06_foc.png
new file mode 100644 (file)
index 0000000..88aa794
Binary files /dev/null and b/images/ic_user_profile_current_06_foc.png differ
diff --git a/images/ic_user_profile_current_06_nor.png b/images/ic_user_profile_current_06_nor.png
new file mode 100644 (file)
index 0000000..ad0da2d
Binary files /dev/null and b/images/ic_user_profile_current_06_nor.png differ
diff --git a/images/ic_user_profile_current_07_foc.png b/images/ic_user_profile_current_07_foc.png
new file mode 100644 (file)
index 0000000..b892435
Binary files /dev/null and b/images/ic_user_profile_current_07_foc.png differ
diff --git a/images/ic_user_profile_current_07_nor.png b/images/ic_user_profile_current_07_nor.png
new file mode 100644 (file)
index 0000000..9b43c98
Binary files /dev/null and b/images/ic_user_profile_current_07_nor.png differ
diff --git a/images/ic_user_profile_current_08_foc.png b/images/ic_user_profile_current_08_foc.png
new file mode 100644 (file)
index 0000000..b5d2328
Binary files /dev/null and b/images/ic_user_profile_current_08_foc.png differ
diff --git a/images/ic_user_profile_current_08_nor.png b/images/ic_user_profile_current_08_nor.png
new file mode 100644 (file)
index 0000000..f0edf55
Binary files /dev/null and b/images/ic_user_profile_current_08_nor.png differ
diff --git a/images/ic_user_profile_current_09_foc.png b/images/ic_user_profile_current_09_foc.png
new file mode 100644 (file)
index 0000000..290b766
Binary files /dev/null and b/images/ic_user_profile_current_09_foc.png differ
diff --git a/images/ic_user_profile_current_09_nor.png b/images/ic_user_profile_current_09_nor.png
new file mode 100644 (file)
index 0000000..fac5315
Binary files /dev/null and b/images/ic_user_profile_current_09_nor.png differ
index b817842..8c15615 100644 (file)
 #define IMAGE_USER_DEFAULT_07_FOCUS IMAGEDIR"/ic_user_07_foc.png"
 #define IMAGE_USER_CURRENT_DEFAULT IMAGEDIR"/ic_user_profile_current_01_nor.png"
 #define IMAGE_USER_CURRENT_DEFAULT_FOCUS IMAGEDIR"/ic_user_profile_current_01_foc.png"
+#define IMAGE_USER_CURRENT_DEFAULT_02 IMAGEDIR"/ic_user_profile_current_02_nor.png"
+#define IMAGE_USER_CURRENT_DEFAULT_02_FOCUS IMAGEDIR"/ic_user_profile_current_02_foc.png"
+#define IMAGE_USER_CURRENT_DEFAULT_03 IMAGEDIR"/ic_user_profile_current_03_nor.png"
+#define IMAGE_USER_CURRENT_DEFAULT_03_FOCUS IMAGEDIR"/ic_user_profile_current_03_foc.png"
+#define IMAGE_USER_CURRENT_DEFAULT_04 IMAGEDIR"/ic_user_profile_current_04_nor.png"
+#define IMAGE_USER_CURRENT_DEFAULT_04_FOCUS IMAGEDIR"/ic_user_profile_current_04_foc.png"
+#define IMAGE_USER_CURRENT_DEFAULT_05 IMAGEDIR"/ic_user_profile_current_05_nor.png"
+#define IMAGE_USER_CURRENT_DEFAULT_05_FOCUS IMAGEDIR"/ic_user_profile_current_05_foc.png"
+#define IMAGE_USER_CURRENT_DEFAULT_06 IMAGEDIR"/ic_user_profile_current_06_nor.png"
+#define IMAGE_USER_CURRENT_DEFAULT_06_FOCUS IMAGEDIR"/ic_user_profile_current_06_foc.png"
+#define IMAGE_USER_CURRENT_DEFAULT_07 IMAGEDIR"/ic_user_profile_current_07_nor.png"
+#define IMAGE_USER_CURRENT_DEFAULT_07_FOCUS IMAGEDIR"/ic_user_profile_current_07_foc.png"
 #define IMAGE_RECENT_DELETE_NOR IMAGEDIR"/btn_bar_clearall_nor.png"
 #define IMAGE_RECENT_DELETE_FOC IMAGEDIR"/btn_bar_clearall_foc.png"
 #define IMAGE_RECENT_DELETE_DIS IMAGEDIR"/btn_bar_clearall_dis.png"
index 89bdc30..124d5b5 100644 (file)
 #define MESSAGE_ENTRY_NAME "User Name"
 #define MESSAGE_ENTRY_ACCOUNT "sample@tizen.com"
 #define MESSAGE_ENTRY_PIN "Pin code"
+#define ICON_ADD "add"
+#define KEY_ICON "icon"
+#define KEY_FOCUS_ICON "focusicon"
 
 #define CTXPOPUP_X 294
 #define CTXPOPUP_Y 310
 
-static const char *icon_info[][2] = {
-       { IMAGE_USER_DEFAULT, IMAGE_USER_DEFAULT_FOCUS },
-       { IMAGE_USER_DEFAULT_02, IMAGE_USER_DEFAULT_02_FOCUS },
-       { IMAGE_USER_DEFAULT_03, IMAGE_USER_DEFAULT_03_FOCUS },
-       { IMAGE_USER_DEFAULT_04, IMAGE_USER_DEFAULT_04_FOCUS },
-       { IMAGE_USER_DEFAULT_05, IMAGE_USER_DEFAULT_05_FOCUS },
-       { IMAGE_USER_DEFAULT_06, IMAGE_USER_DEFAULT_06_FOCUS },
-       { IMAGE_USER_DEFAULT_07, IMAGE_USER_DEFAULT_07_FOCUS },
-       { IMAGE_USER_ADD, IMAGE_USER_ADD_FOCUS }
+struct _icon_info {
+       const char *file;
+       const char *focus_file;
+       const char *message;
+       const char *focus_message;
 };
 
 struct _priv {
@@ -130,17 +129,51 @@ static void _unfocused(int id, void *data, Evas_Object *obj,
        elm_object_signal_emit(obj, SIG_UNFOCUS, SRC_PROG);
 }
 
+static void _load_user_icon(struct _priv *priv, const char *file,
+               const char *focus_file)
+{
+       Evas_Object *icon, *focus_icon;
+
+       icon = utils_add_icon(priv->photo, file, PART_USER_EDIT_PHOTO);
+       if (!icon)
+               _ERR("failed to add icon");
+
+       focus_icon = utils_add_icon(priv->photo, focus_file,
+                       PART_USER_EDIT_PHOTO_FOCUS);
+       if (!focus_icon)
+               _ERR("failed to add focus icon");
+
+       priv->icon = icon;
+       priv->focus_icon = focus_icon;
+}
+
 static void _eo_key_down(int id, void *data, Evas *e, Evas_Object *obj,
                Evas_Event_Key_Down *ev)
 {
+       struct _priv *priv;
+       const char *file, *focus_file;
+
+       if (!data)
+               return;
+
+       priv = data;
+
        if (!strcmp(ev->keyname, KEY_BACK) ||
                        !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
-               evas_object_del(data);
+               evas_object_del(priv->ctxpopup);
+               priv->ctxpopup = NULL;
        } else if (!strcmp(ev->keyname, KEY_ENTER) ||
                        !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
-               /* It should be implemented later */
-               evas_object_del(data);
-               viewmgr_push_view(VIEW_PHOTO);
+               evas_object_del(priv->ctxpopup);
+               priv->ctxpopup = NULL;
+
+               file = evas_object_data_get(obj, KEY_ICON);
+               focus_file = evas_object_data_get(obj, KEY_FOCUS_ICON);
+
+               if (!strcmp(file, ICON_ADD) || !strcmp(focus_file, ICON_ADD))
+                       viewmgr_push_view(VIEW_PHOTO);
+               else
+                       _load_user_icon(priv, file, focus_file);
        }
 }
 
@@ -150,8 +183,7 @@ static input_handler icon_handler = {
        .key_down = _eo_key_down
 };
 
-static Evas_Object *_pack_icon(Evas_Object *table, const char *icon_file,
-               const char *focus_icon_file, int i)
+static Evas_Object *_pack_icon(Evas_Object *table, struct _icon_info *icon_info, int i)
 {
        Evas_Object *eo, *ic, *focus_ic;
 
@@ -163,20 +195,22 @@ static Evas_Object *_pack_icon(Evas_Object *table, const char *icon_file,
        evas_object_show(eo);
        elm_table_pack(table, eo, i % 4, i / 4, 1, 1);
 
-       ic = utils_add_icon(eo, icon_file, PART_USER_EDIT_ICON_LIST_ITEM);
+       ic = utils_add_icon(eo, icon_info->file, PART_USER_EDIT_ICON_LIST_ITEM);
        if (!ic) {
                _ERR("failed to add icon");
                evas_object_del(eo);
                return NULL;
        }
 
-       focus_ic = utils_add_icon(eo, focus_icon_file,
+       focus_ic = utils_add_icon(eo, icon_info->focus_file,
                        PART_USER_EDIT_ICON_LIST_ITEM_FOCUS);
        if (!focus_ic) {
                _ERR("failed to add focus icon");
                evas_object_del(eo);
                return NULL;
        }
+       evas_object_data_set(eo, KEY_ICON, icon_info->message);
+       evas_object_data_set(eo, KEY_FOCUS_ICON, icon_info->focus_message);
 
        return eo;
 }
@@ -186,6 +220,56 @@ static void _add_icon_list(struct _priv *priv)
        Evas_Coord x, y, w, h;
        Evas_Object *ctxpopup, *ly, *table, *eo;
        int i;
+       struct _icon_info icon_info[] = {
+               {
+                       IMAGE_USER_DEFAULT,
+                       IMAGE_USER_DEFAULT_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT,
+                       IMAGE_USER_CURRENT_DEFAULT_FOCUS
+               },
+               {
+                       IMAGE_USER_DEFAULT_02,
+                       IMAGE_USER_DEFAULT_02_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT_02,
+                       IMAGE_USER_CURRENT_DEFAULT_02_FOCUS
+               },
+               {
+                       IMAGE_USER_DEFAULT_03,
+                       IMAGE_USER_DEFAULT_03_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT_03,
+                       IMAGE_USER_CURRENT_DEFAULT_03_FOCUS
+               },
+               {
+                       IMAGE_USER_DEFAULT_04,
+                       IMAGE_USER_DEFAULT_04_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT_04,
+                       IMAGE_USER_CURRENT_DEFAULT_04_FOCUS
+               },
+               {
+                       IMAGE_USER_DEFAULT_05,
+                       IMAGE_USER_DEFAULT_05_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT_05,
+                       IMAGE_USER_CURRENT_DEFAULT_05_FOCUS
+               },
+               {
+                       IMAGE_USER_DEFAULT_06,
+                       IMAGE_USER_DEFAULT_06_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT_06,
+                       IMAGE_USER_CURRENT_DEFAULT_06_FOCUS
+               },
+               {
+                       IMAGE_USER_DEFAULT_07,
+                       IMAGE_USER_DEFAULT_07_FOCUS,
+                       IMAGE_USER_CURRENT_DEFAULT_07,
+                       IMAGE_USER_CURRENT_DEFAULT_07_FOCUS
+               },
+               {
+                       IMAGE_USER_ADD,
+                       IMAGE_USER_ADD_FOCUS,
+                       ICON_ADD,
+                       ICON_ADD
+               }
+       };
 
        ctxpopup = elm_ctxpopup_add(priv->base);
        if (!ctxpopup) {
@@ -222,11 +306,11 @@ static void _add_icon_list(struct _priv *priv)
                        EVAS_HINT_EXPAND);
 
        for (i = 0; i < sizeof(icon_info) / sizeof(*icon_info); i++) {
-               eo = _pack_icon(table, icon_info[i][0], icon_info[i][1], i);
+               eo = _pack_icon(table, &icon_info[i], i);
                if (!eo)
                        continue;
 
-               inputmgr_add_callback(eo, 0, &icon_handler, ctxpopup);
+               inputmgr_add_callback(eo, 0, &icon_handler, priv);
                if (i == 0)
                        elm_object_focus_set(eo, EINA_TRUE);
        }
@@ -365,29 +449,6 @@ static Evas_Object *_create(Evas_Object *win, void *data)
        return base;
 }
 
-static void _load_user_edit(struct _priv *priv)
-{
-       Evas_Object *icon, *focus_icon;
-
-       /* check state of user edit */
-
-       elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
-                       MESSAGE_ADD_USER);
-       icon = utils_add_icon(priv->photo, IMAGE_USER_CURRENT_DEFAULT,
-                       PART_USER_EDIT_PHOTO);
-       if (!icon)
-               _ERR("failed to add icon");
-
-       focus_icon = utils_add_icon(priv->photo,
-                       IMAGE_USER_CURRENT_DEFAULT_FOCUS,
-                       PART_USER_EDIT_PHOTO_FOCUS);
-       if (!focus_icon)
-               _ERR("failed to add focus icon");
-
-       priv->icon = icon;
-       priv->focus_icon = focus_icon;
-}
-
 static void _show(void *data)
 {
        struct _priv *priv;
@@ -400,8 +461,10 @@ static void _show(void *data)
        priv = data;
 
        evas_object_show(priv->base);
-
-       _load_user_edit(priv);
+       elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
+                       MESSAGE_ADD_USER);
+       _load_user_icon(priv, IMAGE_USER_CURRENT_DEFAULT,
+                       IMAGE_USER_CURRENT_DEFAULT_FOCUS);
 }
 
 static void _hide(void *data)