Fixed the grid edc for animation of grid thumbnail 70/45070/1
authorHyojung Jo <hj903.jo@samsung.com>
Fri, 31 Jul 2015 07:18:06 +0000 (16:18 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Fri, 31 Jul 2015 07:18:06 +0000 (16:18 +0900)
Change-Id: I952a6ec9afc55ae76b355aa6e7617896c909fcb3
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/data/app.h
include/define.h
res/widget/gengrid.edc
src/data/app.c
src/grid/grid_myapps.c
src/view/view_base.c

index ddae320..cc76877 100644 (file)
@@ -25,6 +25,7 @@ Eina_List *get_app_list(void);
 char *get_app_id(struct app_data *adata);
 char *get_app_name(struct app_data *adata);
 char *get_app_icon(struct app_data *adata);
+bool get_app_favorite(struct app_data *adata);
 bool get_app_icon_bg_color(struct app_data *adata,
                int *r, int *g, int *b, int *a);
 bool get_app_text_bg_color(struct app_data *adata,
index b6bc5bb..6db2cfa 100644 (file)
 
 /* Image */
 #define DEFAULT_APP_ICON_PNG IMGDIR"/ico_default.png"
-#define FAVORITE_ICON_PNG "ic_thumbnail_favorite_01.png"
+#define FAVORITE_ICON_PNG IMGDIR"/ic_thumbnail_favorite_01.png"
 #define BROWSER_ICON_PNG IMGDIR"/ic_apps_web.png"
 
 /* Transition */
 #define TRANSITION_FOCUS DECELERATE 0.20
+#define TRANSITION_CLICK DECELERATE 0.20
 
 #endif /* __AIR_APPS_DEFINE_H__ */
index f4f6d6b..fab4f47 100644 (file)
@@ -18,22 +18,76 @@ group {
        name, "elm/gengrid/item/style.app/default";
        data.item, "focus_highlight" "on";
        data.item, "texts" "part.thumb.text part.thumb.text.browser";
-       data.item, "contents" "part.thumb.icon part.thumb.bg";
+       data.item, "contents" "part.thumb.icon part.thumb.bg part.favorite.icon";
        images {
                image, FAVORITE_ICON_PNG COMP;
        }
 
        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;
                        }
                }
 
@@ -68,6 +122,15 @@ group {
                                }
                                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;
                        }
                }
 
@@ -86,12 +149,11 @@ group {
 
                part {
                        name, PART_FAVORITE_ICON;
-                       type, IMAGE;
+                       type, SWALLOW;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                min, 40 40;
-                               image.normal, FAVORITE_ICON_PNG;
                                rel1 {
                                        to, "padding.favorite";
                                        relative, 1.0 1.0;
@@ -99,12 +161,15 @@ group {
                                rel2.to, "padding.favorite";
                                align, 0.0 0.0;
                                fixed, 1 1;
-                               visible, 0;
+                               map {
+                                       perspective_on, 1;
+                                       perspective, "map";
+                               }
                        }
                        description {
-                               state, "visible" 0.0;
+                               state, "focused" 0.0;
                                inherit, "default" 0.0;
-                               visible, 1;
+                               map.on, 1;
                        }
                }
 
@@ -203,6 +268,26 @@ group {
                }
 
                part {
+                       name, "padding.divide.line";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 82;
+                               rel1 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               align, 0.5 1.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
                        name, "part.divide.line";
                        type, RECT;
                        scale, 1;
@@ -210,9 +295,9 @@ group {
                                state, "default" 0.0;
                                color, 194 194 194 255;
                                min, 212 1;
-                               rel1.to, "part.focus.down";
+                               rel1.to, "padding.divide.line";
                                rel2 {
-                                       to, "part.focus.down";
+                                       to, "padding.divide.line";
                                        relative, 0.0 0.0;
                                }
                                align, 0.0 0.0;
@@ -233,17 +318,32 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 0 119 246 255;
-                               min, 212 3;
-                               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;
+                       }
                }
 
                part {
@@ -253,70 +353,107 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 0 119 246 255;
-                               min, 3 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, 3 212;
+                               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;
                        }
                }
 
@@ -360,6 +497,19 @@ 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;
                        }
                }
 
@@ -386,12 +536,21 @@ 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;
                                color, 255 255 255 255;
                        }
+                       description {
+                               state, "focused_0" 0.0;
+                               inherit, "focused" 0.0;
+                       }
                }
        }
 
@@ -400,13 +559,27 @@ group {
                        name, SIG_FOCUSED;
                        signal, "elm,state,focused";
                        source, "elm";
-                       action, STATE_SET "focused" 0.0;
+                       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;
                        target, PART_THUMB_TEXT_BROWSER;
-                       after, "item_focused";
+                       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_FAVORITE_ICON;
+                       target, "part.focus.up";
+                       target, "part.focus.left";
+                       target, "part.focus.down";
+                       target, "part.focus.right";
+                       transition, TRANSITION_FOCUS;
                }
 
                program {
@@ -414,11 +587,32 @@ group {
                        signal, "elm,state,unfocused";
                        source, "elm";
                        action, STATE_SET "default" 0.0;
+                       target, PART_THUMB_TEXT;
+                       target, PART_THUMB_TEXT_BROWSER;
+                       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_FAVORITE_ICON;
                        target, "part.focus.up";
                        target, "part.focus.left";
                        target, "part.focus.down";
                        target, "part.focus.right";
-                       target, PART_THUMB_TEXT_BROWSER;
                }
 
                program {
@@ -437,20 +631,23 @@ group {
                        name, "selected";
                        signal, "elm,state,selected";
                        source, "elm";
-                       after, "item_selected";
+                       action, STATE_SET "selected" 0.0;
+                       target, "map";
+                       transition, TRANSITION_CLICK;
+                       after, "after_selected";
                }
 
                program {
-                       name, "item_selected";
-                       action, SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC;
+                       name, "after_selected";
+                       action, STATE_SET "default" 0.0;
+                       target, "map";
+                       transition, TRANSITION_CLICK;
+                       after, "item_selected";
                }
 
                program {
-                       name, "favorite";
-                       signal, "favorite";
-                       source, PART_FAVORITE_ICON;
-                       action, STATE_SET "visible" 0.0;
-                       target, PART_FAVORITE_ICON;
+                       name, "item_selected";
+                       action, SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC;
                }
 
                program {
index 559ab19..d092032 100644 (file)
@@ -184,6 +184,16 @@ char *get_app_icon(struct app_data *adata)
        return adata->icon;
 }
 
+bool get_app_favorite(struct app_data *adata)
+{
+       if (!adata) {
+               _ERR("Invalid argument.");
+               return NULL;
+       }
+
+       return adata->is_favorite;
+}
+
 bool get_app_icon_bg_color(struct app_data *adata,
                int *r, int *g, int *b, int *a)
 {
index 61b268e..a5dcc4b 100644 (file)
@@ -123,6 +123,20 @@ static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
                elm_object_part_content_set(ly, PART_THUMB_TEXT_BG, text_bg);
 
                return ly;
+       } else if (!strcmp(part, PART_FAVORITE_ICON)) {
+               if (!get_app_favorite(adata))
+                       return NULL;
+
+               img = elm_image_add(obj);
+               if (!img) {
+                       _ERR("elm_image_add failed.");
+                       return NULL;
+               }
+
+               elm_image_file_set(img, FAVORITE_ICON_PNG, NULL);
+               evas_object_show(img);
+
+               return img;
        }
 
        return NULL;
index fcb744d..be6d4b7 100644 (file)
@@ -488,8 +488,6 @@ static void _grid_realized_cb(int id, void *data, Evas_Object *obj,
                Elm_Object_Item *item)
 {
        struct app_data *adata;
-       bool isfavorite;
-       int r;
 
        if (!data || !item) {
                _ERR("Invalid argument.");
@@ -503,17 +501,6 @@ static void _grid_realized_cb(int id, void *data, Evas_Object *obj,
        elm_object_item_signal_callback_add(item, SIG_ITEM_SELECTED,
                        SIG_SOURCE_EDC, _grid_item_selected_cb, data);
 
-       r = app_contents_favorite_check(CONTENTS_APP, get_app_id(adata),
-                       &isfavorite);
-       if (r != APP_CONTENTS_ERROR_NONE) {
-               _ERR("Favorite check failed.");
-               return;
-       }
-
-       if (isfavorite)
-               elm_object_item_signal_emit(item, SIG_FAVORITE,
-                               PART_FAVORITE_ICON);
-
        if (!strcmp(get_app_id(adata), STR_BROWSER_ID))
                elm_object_item_signal_emit(item, SIG_VISIBLE,
                                PART_INSIDE_LINE);