Fixed the apps grid for animation effect 83/45083/1
authorHyojung Jo <hj903.jo@samsung.com>
Fri, 31 Jul 2015 09:01:49 +0000 (18:01 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Fri, 31 Jul 2015 09:01:49 +0000 (18:01 +0900)
Change-Id: I67c80db9e3bd15b109acee6d6984965318c93b6c
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/define.h
res/images/ic_apps_web.png [new file with mode: 0644]
res/images/ic_default_app.png
res/widgets/gengrid_apps.edc
src/data/app.c
src/grid/grid_apps.c

index beffc8a..fcdcaba 100644 (file)
@@ -79,6 +79,8 @@
 #define STR_KEY_MEDIA_ID "media_id"
 #define STR_KEY_SENDER_ID "sender_id"
 #define STR_KEY_SERVICE_ID "service_id"
+#define STR_BROWSER "Web Browser"
+#define STR_BROWSER_ID "org.tizen.browser"
 
 /* Font */
 #define FONT_TIZENSANS_REGULAR "TizenSans"
@@ -93,6 +95,7 @@
 #define SIZE_BOX_PAD_H (40 + 40)
 #define SIZE_BOX_PAD_V 0
 #define SIZE_STR 1024
+#define SIZE_APP_ICON_MAX 100
 
 /* Count */
 #define COUNT_MENU 6
 /* Image */
 #define PLAY_ICON_PNG "ic_thumbnail_play.png"
 #define DEFAULT_IMAGE_PNG IMGDIR"/ic_thumbnail_picture.png"
-#define DEFAULT_APP_PNG IMGDIR"/ic_default_app.png"
+#define DEFAULT_APP_ICON_PNG IMGDIR"/ic_default_app.png"
 #define DEFAULT_TV_PNG IMGDIR"/ic_default_tv.png"
+#define BROWSER_ICON_PNG IMGDIR"/ic_apps_web.png"
 
 /* Path */
 #define PATH_PLAY_ICON_PNG IMGDIR"/ic_thumbnail_play.png"
diff --git a/res/images/ic_apps_web.png b/res/images/ic_apps_web.png
new file mode 100644 (file)
index 0000000..652575a
Binary files /dev/null and b/res/images/ic_apps_web.png differ
index 82c7956..30d1110 100644 (file)
Binary files a/res/images/ic_default_app.png and b/res/images/ic_default_app.png differ
index 1d51451..bcbe87d 100644 (file)
@@ -21,28 +21,83 @@ group {
        data.item, "contents" "part.thumb.icon part.thumb.bg";
        parts {
                part {
+                       name, "padding.bottom.right";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.relative, 1.0 1.0;
+                               min, 26 26;
+                               align, 1.0 1.0;
+                               fixed, 1 1;
+                       }
+               }
+
+               part {
+                       name, "map";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               perspective {
+                                       zplane, 0;
+                                       focal, 1000;
+                               }
+                               visible, 0;
+                       }
+                       description {
+                               state, "selected" 0.0;
+                               inherit, "default" 0.0;
+                               perspective.zplane, -100;
+                       }
+               }
+
+               part {
+                       name, "part.bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel2 {
+                                       to, "padding.bottom.right";
+                                       relative, 0.0 0.0;
+                               }
+                               fixed, 1 1;
+                               visible, 0;
+                       }
+               }
+
+               part {
                        name, PART_THUMB_BG;
                        type, SWALLOW;
                        scale, 1;
                        description {
                                state, "default" 0.0;
-                               min, 212 294;
-                               rel2.relative, 0.0 0.0;
-                               align, 0.0 0.0;
-                               fixed, 1 1;
+                               rel1.to, "part.bg";
+                               rel2.to, "part.bg";
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
+                       }
+                       description {
+                               state, "focused" 0.0;
+                               inherit, "default" 0.0;
+                               map.on, 1;
                        }
                }
 
                part {
-                       name, "padding.thumb.icon";
-                       type, SPACER;
+                       name, "part.thumb.icon.bg";
+                       type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
-                               min, 56 56;
+                               min, 212 212;
                                rel2.relative, 0.0 0.0;
                                align, 0.0 0.0;
                                fixed, 1 1;
+                               visible, 0;
                        }
                }
 
@@ -52,17 +107,26 @@ group {
                        scale, 1;
                        description {
                                state, "default" 0.0;
-                               min, 100 100;
+                               min, SIZE_APP_ICON_MAX SIZE_APP_ICON_MAX;
                                rel1 {
-                                       to, "padding.thumb.icon";
-                                       relative, 1.0 1.0;
+                                       to, "part.thumb.icon.bg";
+                                       relative, 0.5 0.5;
                                }
                                rel2 {
-                                       to, "padding.thumb.icon";
-                                       relative, 1.0 1.0;
+                                       to, "part.thumb.icon.bg";
+                                       relative, 0.5 0.5;
                                }
-                               align, 0.0 0.0;
+                               align, 0.5 0.5;
                                fixed, 1 1;
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
+                       }
+                       description {
+                               state, "focused" 0.0;
+                               inherit, "default" 0.0;
+                               map.on, 1;
                        }
                }
 
@@ -73,17 +137,31 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 0 119 246 255;
-                               min, 212 6;
-                               rel2.relative, 0.0 0.0;
-                               align, 0.0 0.0;
-                               fixed, 1 1;
+                               min, 0 3;
+                               rel1.to, "part.bg";
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               align, 0.5 0.0;
+                               fixed, 0 1;
                                visible, 0;
-
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
                        }
                        description {
                                state, "focused" 0.0;
                                inherit, "default" 0.0;
+                               map.on, 1;
+                               visible, 1;
+                       }
+                       description {
+                               state, "focused_0" 0.0;
+                               inherit, "default" 0.0;
                                visible, 1;
+                               color, 0 119 246 0;
                        }
                }
 
@@ -94,71 +172,107 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 0 119 246 255;
-                               min, 6 294;
-                               rel2.relative, 0.0 0.0;
-                               align, 0.0 0.0;
-                               fixed, 1 1;
+                               min, 3 0;
+                               rel1 {
+                                       to, "part.focus.up";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               align, 0.0 0.5;
+                               fixed, 1 0;
                                visible, 0;
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
                        }
                        description {
                                state, "focused" 0.0;
                                inherit, "default" 0.0;
+                               map.on, 1;
+                               visible, 1;
+                       }
+                       description {
+                               state, "focused_0" 0.0;
+                               inherit, "default" 0.0;
                                visible, 1;
+                               color, 0 119 246 0;
                        }
                }
 
                part {
-                       name, "part.focus.down";
+                       name, "part.focus.right";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                color, 0 119 246 255;
-                               min, 212 82;
+                               min, 3 0;
                                rel1 {
-                                       to, "part.focus.left";
-                                       relative, 0.0 1.0;
-                               }
-                               rel2 {
-                                       to, "part.focus.left";
-                                       relative, 0.0 1.0;
+                                       to, "part.focus.up";
+                                       relative, 1.0 1.0;
                                }
-                               align, 0.0 1.0;
-                               fixed, 1 1;
+                               rel2.to, "part.bg";
+                               align, 1.0 0.5;
+                               fixed, 1 0;
                                visible, 0;
-
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
                        }
                        description {
                                state, "focused" 0.0;
                                inherit, "default" 0.0;
+                               map.on, 1;
+                               visible, 1;
+                       }
+                       description {
+                               state, "focused_0" 0.0;
+                               inherit, "default" 0.0;
                                visible, 1;
+                               color, 0 119 246 0;
                        }
                }
 
                part {
-                       name, "part.focus.right";
+                       name, "part.focus.down";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                color, 0 119 246 255;
-                               min, 6 294;
+                               min, 0 82;
                                rel1 {
-                                       to, "part.focus.up";
-                                       relative, 1.0 0.0;
+                                       to, "part.focus.left";
+                                       relative, 1.0 1.0;
                                }
                                rel2 {
-                                       to, "part.focus.up";
-                                       relative, 1.0 0.0;
+                                       to, "part.focus.right";
+                                       relative, 0.0 1.0;
                                }
-                               align, 1.0 0.0;
-                               fixed, 1 1;
+                               align, 0.5 1.0;
+                               fixed, 0 1;
                                visible, 0;
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
                        }
                        description {
                                state, "focused" 0.0;
                                inherit, "default" 0.0;
+                               map.on, 1;
+                               visible, 1;
+                       }
+                       description {
+                               state, "focused_0" 0.0;
+                               inherit, "default" 0.0;
                                visible, 1;
+                               color, 0 119 246 0;
                        }
                }
 
@@ -202,20 +316,47 @@ group {
                                        size, 28;
                                        align, 0.0 0.5;
                                }
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
+                       }
+                       description {
+                               state, "focused" 0.0;
+                               inherit, "default" 0.0;
+                               map.on, 1;
+                       }
+                       description {
+                               state, "focused_0" 0.0;
+                               inherit, "focused" 0.0;
                        }
                }
        }
 
-       programs {
+       programs{
                program {
                        name, SIG_FOCUSED;
                        signal, "elm,state,focused";
                        source, "elm";
+                       action, STATE_SET "focused_0" 0.0;
+                       target, "part.focus.up";
+                       target, "part.focus.left";
+                       target, "part.focus.down";
+                       target, "part.focus.right";
+                       target, PART_THUMB_TEXT;
+                       after, "focus.in.anim";
+               }
+
+               program {
+                       name, "focus.in.anim";
                        action, STATE_SET "focused" 0.0;
+                       target, PART_THUMB_BG;
+                       target, PART_THUMB_ICON;
                        target, "part.focus.up";
                        target, "part.focus.left";
                        target, "part.focus.down";
                        target, "part.focus.right";
+                       transition, TRANSITION_FOCUS;
                }
 
                program {
@@ -223,6 +364,26 @@ group {
                        signal, "elm,state,unfocused";
                        source, "elm";
                        action, STATE_SET "default" 0.0;
+                       target, PART_THUMB_TEXT;
+                       after, "focus.out.anim";
+               }
+
+               program {
+                       name, "focus.out.anim";
+                       action, STATE_SET "focused_0" 0.0;
+                       target, "part.focus.up";
+                       target, "part.focus.left";
+                       target, "part.focus.down";
+                       target, "part.focus.right";
+                       transition, TRANSITION_FOCUS;
+                       after, "focus.out.anim.2";
+               }
+
+               program {
+                       name, "focus.out.anim.2";
+                       action, STATE_SET "default" 0.0;
+                       target, PART_THUMB_BG;
+                       target, PART_THUMB_ICON;
                        target, "part.focus.up";
                        target, "part.focus.left";
                        target, "part.focus.down";
@@ -230,15 +391,38 @@ group {
                }
 
                program {
-                       name, SIG_SELECTED;
+                       name, "item_focused";
+                       action, SIGNAL_EMIT SIG_ITEM_FOCUSED SIG_SOURCE_EDC;
+               }
+
+               program {
+                       name, "activated";
+                       signal, "elm,state,activated";
+                       source, "elm";
+                       after, "item_selected";
+               }
+
+               program {
+                       name, "selected";
                        signal, "elm,state,selected";
                        source, "elm";
+                       action, STATE_SET "selected" 0.0;
+                       target, "map";
+                       transition, TRANSITION_CLICK;
+                       after, "after_selected";
+               }
+
+               program {
+                       name, "after_selected";
+                       action, STATE_SET "default" 0.0;
+                       target, "map";
+                       transition, TRANSITION_CLICK;
                        after, "item_selected";
                }
 
                program {
                        name, "item_selected";
-                       action, SIGNAL_EMIT SIG_ITEM_SELECTED SRC_EDC;
+                       action, SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC;
                }
        }
 }
index e883809..dadbf2b 100644 (file)
@@ -22,6 +22,7 @@
 #include <app_debug.h>
 
 #include "datamgr.h"
+#include "define.h"
 
 struct app_data {
        char *id;
@@ -72,6 +73,12 @@ static void _app_favorite_list_foreach(gpointer data, gpointer user_data)
        if (icon)
                adata->icon = strdup(icon);
 
+       /* FIXME: The browser's name and icon is defined as GUI. */
+       if (!strcmp(id, STR_BROWSER_ID)) {
+               adata->name = STR_BROWSER;
+               adata->icon = BROWSER_ICON_PNG;
+       }
+
        *l = eina_list_append(*l, adata);
 
 end:
index 57de251..bcd0489 100644 (file)
@@ -41,24 +41,24 @@ struct color {
 };
 
 static struct color color_icon[] = {
-       {84, 79, 73, 255},
-       {92, 122, 190, 255},
+       {104, 99, 93, 255},
        {73, 155, 173, 255},
-       {79, 187, 165, 255},
+       {92, 122, 190, 255},
        {97, 109, 124, 255},
-       {169, 54, 54, 255},
-       {206, 118, 70, 255}
+       {219, 162, 96, 255},
+       {79, 187, 165, 255},
+       {169, 54, 54, 255}
 };
 
 static struct color color_text[] =
 {
-       {73, 68, 62, 255},
-       {75, 102, 163, 255},
+       {93, 88, 82, 255},
        {55, 143, 162, 255},
-       {47, 175, 149, 255},
+       {75, 102, 163, 255},
        {86, 98, 113, 255},
-       {155, 46, 46, 255},
-       {200, 99, 45, 255}
+       {194, 133, 62, 255},
+       {47, 175, 149, 255},
+       {155, 46, 46, 255}
 };
 
 static char *_text_get(void *data, Evas_Object *obj, const char *part)
@@ -82,23 +82,36 @@ static char *_text_get(void *data, Evas_Object *obj, const char *part)
        return strdup(name);
 }
 
+static int _get_color_index(const char *str)
+{
+       int i, value = 0;
+
+       if (!str)
+               return 0;
+
+       for (i = 0; i < strlen(str); i++)
+               value += *str;
+
+       return value % COUNT_COLOR;
+}
+
 static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
 {
        struct datamgr *dmgr;
        Evas_Object *img, *ly, *icon_bg, *text_bg = NULL;
-       char *icon;
-       int idx;
+       char *icon, *name, *img_path;
+       int idx, w, h;
 
        if (!data || !obj) {
                _ERR("Data is NULL.");
                return NULL;
        }
 
-       if (!strcmp(part, PART_THUMB_ICON)) {
-               dmgr = get_apps_datamgr();
-               if (!dmgr || !dmgr->get_data)
-                       return NULL;
+       dmgr = get_apps_datamgr();
+       if (!dmgr || !dmgr->get_data)
+               return NULL;
 
+       if (!strcmp(part, PART_THUMB_ICON)) {
                icon = dmgr->get_data(data, DATA_THUMBNAIL);
 
                img = elm_image_add(obj);
@@ -108,12 +121,22 @@ static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
                }
 
                if (!icon || !strcmp(icon, STR_NULL))
-                       elm_image_file_set(img, DEFAULT_APP_PNG, NULL);
+                       img_path = DEFAULT_APP_ICON_PNG;
                else
-                       elm_image_file_set(img, icon, NULL);
+                       img_path = icon;
+
+               if (!elm_image_file_set(img, img_path, NULL))
+                       elm_image_file_set(img, DEFAULT_APP_ICON_PNG, NULL);
+
+               elm_image_object_size_get(img, &w, &h);
+
+               if (w <= SIZE_APP_ICON_MAX && h <= SIZE_APP_ICON_MAX)
+                       elm_image_resizable_set(img, EINA_FALSE, EINA_FALSE);
 
                return img;
        } else if (!strcmp(part, PART_THUMB_BG)) {
+               name = dmgr->get_data(data, DATA_NAME);
+
                ly = elm_layout_add(obj);
                if (!ly) {
                        _ERR("elm_bg_add failed.");
@@ -138,7 +161,7 @@ static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
                 }
 
                 /* FIXME: The color will be changed as GUI later. */
-                idx = rand() % COUNT_COLOR;
+                idx = _get_color_index(name);
 
                 evas_object_color_set(icon_bg,
                                 color_icon[idx].r, color_icon[idx].g,