base: add favorite icon 03/44703/3
authorJehun Lim <jehun.lim@samsung.com>
Thu, 23 Jul 2015 12:25:04 +0000 (21:25 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 27 Jul 2015 01:56:44 +0000 (18:56 -0700)
Change-Id: I3e5e526d47513c0b8114d78d944f1e489a250518
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
include/define.h
include/layout/movie.h
include/layout/music.h
include/view/base.h
res/edc/widgets/button.edc
res/edc/widgets/gengrid.edc
res/images/ic_thumbnail_favorite.png [new file with mode: 0644]
src/layout/gallery.c
src/layout/movie.c
src/layout/music.c

index 7be9410..077b1c6 100644 (file)
@@ -61,6 +61,7 @@
 #define PART_ELM_TEXT_PLAYTIME "elm.text.playtime"
 #define PART_ELM_SWALLOW_THUMBNAIL "elm.swallow.thumbnail"
 #define PART_ELM_SWALLOW_VIDEO "elm.swallow.video"
+#define PART_ELM_SWALLOW_FAVORITE "elm.swallow.favorite"
 
 /* signal */
 #define SIG_BTN_CLICKED "btn,clicked"
index 8d45163..2712ba6 100644 (file)
 #define PART_NOCONTENT "part.nocontent"
 #define PART_CONTENT_INFO "part.content_info"
 #define PART_RECENT_CONTENT_THUMBNAIL "part.recent_content_thumbnail"
+#define PART_RECENT_CONTENT_FAVORITE "part.recent_content_favorite"
 #define PART_RECENT_CONTENT_TITLE "part.recent_content_title"
 #define PART_RECENT_CONTENT_DATE "part.recent_content_date"
 #define PART_RECENT_CONTENT_PROGRESS "part.recent_content_progress"
 #define PART_RECENT_CONTENT_TOTAL "part.recent_content_total"
 #define PART_RECENT_CONTENT_SLIDER "part.recent_content_slider"
 
+/* signal */
+#define SIG_RECENT_SHOW_FAV "show,favorite"
+#define SIG_RECENT_HIDE_FAV "hide,favorite"
+
 /* style */
 #define STYLE_GRID_MOVIE_ITEM "movie_item"
 #define STYLE_BTN_RECENT_CONTENT "base_btn_recent"
index 8d10464..f08ceab 100644 (file)
 
 /* part */
 #define PART_PLAYING_CONTENT_THUMBNAIL "part.playing_content_thumbnail"
+#define PART_PLAYING_CONTENT_FAVORITE "part.playing_content_favorite"
 #define PART_PLAYING_CONTENT_TITLE "part.playing_content_title"
 #define PART_PLAYING_CONTENT_ARTIST "part.playing_content_artist"
 #define PART_PLAYING_CONTENT_ALBUM "part.playing_content_album"
 
+/* signal */
+#define SIG_PLAYING_SHOW_FAV "show,favorite"
+#define SIG_PLAYING_HIDE_FAV "hide,favorite"
+
 /* style */
 #define STYLE_GRID_SONG_ITEM "song_item"
 #define STYLE_BTN_PLAYING_CONTENT "base_btn_playing"
index c7f791a..d30855c 100644 (file)
@@ -37,6 +37,8 @@
 #define IMAGE_THUMBNAIL_PICTURE "ic_thumbnail_picture.png"
 #define IMAGE_THUMBNAIL_SONG "ic_thumbnail_song.png"
 #define IMAGE_THUMBNAIL_PLAY IMAGEDIR"/ic_thumbnail_play.png"
+#define IMAGE_THUMBNAIL_FAVORITE IMAGEDIR"/ic_thumbnail_favorite.png"
+#define IMAGE_PLAY_INFO_FAVORITE "ic_title_favorite.png"
 
 /* style */
 #define STYLE_BTN_MENU "base_btn_menu"
index b41e7ff..b629783 100644 (file)
@@ -18,6 +18,9 @@
 #define STATE_FOCUSED 1
 #define STATE_SELECTED 2
 
+#define STATE_SHOW 0
+#define STATE_HIDE 1
+
 #define STATE_PLAY 0
 #define STATE_PAUSE 1
 
@@ -1042,6 +1045,10 @@ group {
        data.item, "focus_highlight" "on";
        images {
                image: IMAGE_PREVIEW_PLAY COMP;
+               image: IMAGE_PLAY_INFO_FAVORITE COMP;
+       }
+       script {
+               public fav_state;
        }
        parts {
                part {
@@ -1123,6 +1130,66 @@ group {
                        }
                }
                part {
+                       name: "padding_favorite";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "bg";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "bg";
+                                       relative: 1.0 0.0;
+                               }
+                               min: 14 18;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: PART_RECENT_CONTENT_FAVORITE;
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               rel2 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               min: 42 42;
+                               align: 1.0 0.0;
+                               color: 255 255 255 150;
+                               fixed: 1 1;
+                               visible: 0;
+                               map {
+                                       perspective_on: 1;
+                                       perspective: "map";
+                               }
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: IMAGE_PLAY_INFO_FAVORITE;
+                               visible: 1;
+                       }
+                       description {
+                               state: "default,selected" 0.0;
+                               inherit: "default" 0.0;
+                               map.on: 1;
+                       }
+                       description {
+                               state: "show,selected" 0.0;
+                               inherit: "show" 0.0;
+                               map.on: 1;
+                       }
+               }
+               part {
                        name: "part_focus1";
                        type: RECT;
                        mouse_events: 0;
@@ -1543,6 +1610,14 @@ group {
        }
        programs {
                program {
+                       name: "load";
+                       signal: "load";
+                       source: "";
+                       script {
+                               set_int(fav_state, STATE_HIDE);
+                       }
+               }
+               program {
                        name: "go_active";
                        signal: "elm,action,focus";
                        source: "elm";
@@ -1572,13 +1647,38 @@ group {
                }
                program {
                        name: "focus,in,anim,2";
-                       action: STATE_SET "selected" 0.0;
-                       target: "defaultbg_text";
+                       script {
+                               new state;
+                               state = get_int(fav_state);
+                               if (state == STATE_SHOW) {
+                                       set_state(PART:PART_RECENT_CONTENT_FAVORITE,
+                                                       "show,selected", 0.0);
+                               } else {
+                                       set_state(PART:PART_RECENT_CONTENT_FAVORITE,
+                                                       "default,selected", 0.0);
+                               }
+                               set_state(PART:"defaultbg_text", "selected", 0.0);
+                       }
                }
                program {
                        name: "go_passive";
                        signal: "elm,action,unfocus";
                        source: "elm";
+                       script {
+                               new state;
+                               state = get_int(fav_state);
+                               if (state == STATE_SHOW) {
+                                       set_state(PART:PART_RECENT_CONTENT_FAVORITE,
+                                                       "show", 0.0);
+                               } else {
+                                       set_state(PART:PART_RECENT_CONTENT_FAVORITE,
+                                                       "default", 0.0);
+                               }
+                               run_program(PROGRAM:"focus,out,anim,start");
+                       }
+               }
+               program {
+                       name: "focus,out,anim,start";
                        action: STATE_SET "default" 0.0;
                        target: PART_RECENT_CONTENT_TITLE;
                        target: PART_RECENT_CONTENT_DATE;
@@ -1634,6 +1734,26 @@ group {
                        name: "item_selected";
                        action: SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC;
                }
+               program {
+                       name: SIG_RECENT_SHOW_FAV;
+                       signal: SIG_RECENT_SHOW_FAV;
+                       source: SIG_SOURCE_SRC;
+                       script {
+                               set_int(fav_state, STATE_SHOW);
+                               set_state(PART:PART_RECENT_CONTENT_FAVORITE,
+                                               "show", 0.0);
+                       }
+               }
+               program {
+                       name: SIG_RECENT_HIDE_FAV;
+                       signal: SIG_RECENT_HIDE_FAV;
+                       source: SIG_SOURCE_SRC;
+                       script {
+                               set_int(fav_state, STATE_HIDE);
+                               set_state(PART:PART_RECENT_CONTENT_FAVORITE,
+                                               "default", 0.0);
+                       }
+               }
        }
 }
 
@@ -1642,6 +1762,10 @@ group {
        data.item, "focus_highlight" "on";
        images {
                image: IMAGE_PREVIEW_PLAY COMP;
+               image: IMAGE_PLAY_INFO_FAVORITE COMP;
+       }
+       script {
+               public fav_state;
        }
        parts {
                part {
@@ -1707,6 +1831,63 @@ group {
                        }
                }
                part {
+                       name: "padding_favorite";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "bg_padding";
+                               rel2 {
+                                       to: "bg_padding";
+                                       relative: 0.0 0.0;
+                               }
+                               min: 14 18;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: PART_PLAYING_CONTENT_FAVORITE;
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               rel2 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               min: 42 42;
+                               align: 1.0 0.0;
+                               color: 255 255 255 150;
+                               fixed: 1 1;
+                               visible: 0;
+                               map {
+                                       perspective_on: 1;
+                                       perspective: "map";
+                               }
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: IMAGE_PLAY_INFO_FAVORITE;
+                               visible: 1;
+                       }
+                       description {
+                               state: "default,selected" 0.0;
+                               inherit: "default" 0.0;
+                               map.on: 1;
+                       }
+                       description {
+                               state: "show,selected" 0.0;
+                               inherit: "show" 0.0;
+                               map.on: 1;
+                       }
+               }
+               part {
                        name: "part_focus1";
                        type: RECT;
                        mouse_events: 0;
@@ -2144,6 +2325,14 @@ group {
        }
        programs {
                program {
+                       name: "load";
+                       signal: "load";
+                       source: "";
+                       script {
+                               set_int(fav_state, STATE_HIDE);
+                       }
+               }
+               program {
                        name: "go_active";
                        signal: "elm,action,focus";
                        source: "elm";
@@ -2170,13 +2359,38 @@ group {
                }
                program {
                        name: "focus,in,anim,2";
-                       action: STATE_SET "selected" 0.0;
-                       target: "defaultbg_text";
+                       script {
+                               new state;
+                               state = get_int(fav_state);
+                               if (state == STATE_SHOW) {
+                                       set_state(PART:PART_PLAYING_CONTENT_FAVORITE,
+                                                       "show,selected", 0.0);
+                               } else {
+                                       set_state(PART:PART_PLAYING_CONTENT_FAVORITE,
+                                                       "default,selected", 0.0);
+                               }
+                               set_state(PART:"defaultbg_text", "selected", 0.0);
+                       }
                }
                program {
                        name: "go_passive";
                        signal: "elm,action,unfocus";
                        source: "elm";
+                       script {
+                               new state;
+                               state = get_int(fav_state);
+                               if (state == STATE_SHOW) {
+                                       set_state(PART:PART_PLAYING_CONTENT_FAVORITE,
+                                                       "show", 0.0);
+                               } else {
+                                       set_state(PART:PART_PLAYING_CONTENT_FAVORITE,
+                                                       "default", 0.0);
+                               }
+                               run_program(PROGRAM:"focus,out,anim,start");
+                       }
+               }
+               program {
+                       name: "focus,out,anim,start";
                        action: STATE_SET "default" 0.0;
                        target: "defaultbg_text";
                        target: PART_PLAYING_CONTENT_TITLE;
@@ -2229,5 +2443,25 @@ group {
                        name: "item_selected";
                        action: SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC;
                }
+               program {
+                       name: SIG_PLAYING_SHOW_FAV;
+                       signal: SIG_PLAYING_SHOW_FAV;
+                       source: SIG_SOURCE_SRC;
+                       script {
+                               set_int(fav_state, STATE_SHOW);
+                               set_state(PART:PART_PLAYING_CONTENT_FAVORITE,
+                                               "show", 0.0);
+                       }
+               }
+               program {
+                       name: SIG_PLAYING_HIDE_FAV;
+                       signal: SIG_PLAYING_HIDE_FAV;
+                       source: SIG_SOURCE_SRC;
+                       script {
+                               set_int(fav_state, STATE_HIDE);
+                               set_state(PART:PART_PLAYING_CONTENT_FAVORITE,
+                                               "default", 0.0);
+                       }
+               }
        }
 }
index 9ba63a0..12f38ca 100644 (file)
@@ -18,7 +18,7 @@ group {
        name: "elm/gengrid/item/movie_item/default";
        data.item: "selectraise" "on";
        data.item: "texts" "elm.text.title";
-       data.item: "contents" "elm.swallow.thumbnail";
+       data.item: "contents" "elm.swallow.thumbnail elm.swallow.favorite";
        data.item: "focus_highlight" "on";
        images {
                image: IMAGE_PREVIEW_PLAY COMP;
@@ -140,6 +140,53 @@ group {
                        }
                }
                part {
+                       name: "padding_favorite";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "defaultbg";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "defaultbg";
+                                       relative: 1.0 0.0;
+                               }
+                               min: 14 18;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: PART_ELM_SWALLOW_FAVORITE;
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               rel2 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               min: 28 28;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                               map {
+                                       perspective_on: 1;
+                                       perspective: "map";
+                               }
+                       }
+                       description {
+                               state: "selected" 0.0;
+                               inherit: "default" 0.0;
+                               map.on: 1;
+                       }
+               }
+               part {
                        name: "part_focus1";
                        type: RECT;
                        mouse_events: 0;
@@ -396,6 +443,7 @@ group {
                        target: "defaultbg";
                        target: "default_image";
                        target: PART_ELM_SWALLOW_THUMBNAIL;
+                       target: PART_ELM_SWALLOW_FAVORITE;
                        target: "part_focus1";
                        target: "part_focus2";
                        target: "part_focus3";
@@ -431,6 +479,7 @@ group {
                        name: "focus,out,anim,2";
                        action: STATE_SET "default" 0.0;
                        target: PART_ELM_SWALLOW_THUMBNAIL;
+                       target: PART_ELM_SWALLOW_FAVORITE;
                        target: "defaultbg";
                        target: "default_image";
                        target: "part_focus1";
@@ -465,7 +514,7 @@ group {
        name: "elm/gengrid/item/gallery_item/default";
        data.item: "selectraise" "on";
        data.item: "texts" "elm.text.playtime";
-       data.item: "contents" "elm.swallow.thumbnail elm.swallow.video";
+       data.item: "contents" "elm.swallow.thumbnail elm.swallow.video elm.swallow.favorite";
        data.item: "focus_highlight" "on";
        images {
                image: IMAGE_THUMBNAIL_PICTURE COMP;
@@ -613,6 +662,53 @@ group {
                        }
                }
                part {
+                       name: "padding_favorite";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "defaultbg";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "defaultbg";
+                                       relative: 1.0 0.0;
+                               }
+                               min: 8 8;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: PART_ELM_SWALLOW_FAVORITE;
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               rel2 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               min: 28 28;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                               map {
+                                       perspective_on: 1;
+                                       perspective: "map";
+                               }
+                       }
+                       description {
+                               state: "selected" 0.0;
+                               inherit: "default" 0.0;
+                               map.on: 1;
+                       }
+               }
+               part {
                        name: "part_focus1";
                        type: RECT;
                        mouse_events: 0;
@@ -827,6 +923,7 @@ group {
                        target: "default_image";
                        target: PART_ELM_SWALLOW_THUMBNAIL;
                        target: PART_ELM_SWALLOW_VIDEO;
+                       target: PART_ELM_SWALLOW_FAVORITE;
                        target: "part_focus1";
                        target: "part_focus2";
                        target: "part_focus3";
@@ -851,6 +948,7 @@ group {
                        action: STATE_SET "default" 0.0;
                        target: PART_ELM_SWALLOW_THUMBNAIL;
                        target: PART_ELM_SWALLOW_VIDEO;
+                       target: PART_ELM_SWALLOW_FAVORITE;
                        target: "defaultbg";
                        target: "default_image";
                        target: "part_focus1";
@@ -886,7 +984,7 @@ group {
        name: "elm/gengrid/item/song_item/default";
        data.item: "selectraise" "on";
        data.item: "texts" "elm.text.title elm.text.artist elm.text.album";
-       data.item: "contents" "elm.swallow.thumbnail";
+       data.item: "contents" "elm.swallow.thumbnail elm.swallow.favorite";
        data.item: "focus_highlight" "on";
        images {
                image: IMAGE_THUMBNAIL_SONG COMP;
@@ -1198,16 +1296,13 @@ group {
                        description {
                                state: "default" 0.0;
                                rel1 {
-                                       to: "elm.bg.text";
-                                       relative: 1.0 0.0;
+                                       to: PART_ELM_SWALLOW_FAVORITE;
+                                       relative: 0.0 0.0;
                                }
                                rel2 {
-                                       to: "elm.bg.text";
-                                       relative: 1.0 0.0;
+                                       to: PART_ELM_SWALLOW_FAVORITE;
+                                       relative: 0.0 0.0;
                                }
-                               min: 102 22;
-                               align: 1.0 0.0;
-                               fixed: 1 1;
                        }
                }
                part {
@@ -1250,7 +1345,7 @@ group {
                        }
                }
                part {
-                       name: "elm.padding.artist.left";
+                       name: "elm.padding.artist";
                        type: SPACER;
                        scale: 1;
                        description {
@@ -1259,29 +1354,10 @@ group {
                                        to: PART_ELM_TEXT_TITLE;
                                        relative: 0.0 1.0;
                                }
-                               rel2 {
-                                       to: PART_ELM_TEXT_TITLE;
-                                       relative: 0.0 1.0;
-                               }
-                               min: 0 14;
-                               align: 0.0 0.0;
-                               fixed: 1 1;
-                       }
-               }
-               part {
-                       name: "elm.padding.artist.right";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 {
-                                       to: PART_ELM_TEXT_TITLE;
-                                       relative: 1.0 1.0;
-                               }
                                rel2.to: PART_ELM_TEXT_TITLE;
-                               min: 78 14;
-                               align: 0.0 0.0;
-                               fixed: 1 1;
+                               min: 0 14;
+                               align: 0.5 0.0;
+                               fixed: 0 1;
                        }
                }
                part {
@@ -1291,10 +1367,10 @@ group {
                        description {
                                state: "default" 0.0;
                                rel1 {
-                                       to: "elm.padding.artist.left";
-                                       relative: 1.0 1.0;
+                                       to: "elm.padding.artist";
+                                       relative: 0.0 1.0;
                                }
-                               rel2.to: "elm.padding.artist.right";
+                               rel2.to: "elm.padding.artist";
                                text {
                                        font: FONT_LIGHT;
                                        size: 24;
@@ -1373,6 +1449,53 @@ group {
                        }
                }
                part {
+                       name: "padding_favorite";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "defaultbg_text";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "defaultbg_text";
+                                       relative: 1.0 0.0;
+                               }
+                               min: 15 22;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: PART_ELM_SWALLOW_FAVORITE;
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               rel2 {
+                                       to: "padding_favorite";
+                                       relative: 0.0 1.0;
+                               }
+                               min: 28 28;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                               map {
+                                       perspective_on: 1;
+                                       perspective: "map";
+                               }
+                       }
+                       description {
+                               state: "selected" 0.0;
+                               inherit: "default" 0.0;
+                               map.on: 1;
+                       }
+               }
+               part {
                        name: "border_up";
                        type: RECT;
                        scale: 1;
@@ -1467,6 +1590,7 @@ group {
                        action: STATE_SET "selected" 0.0;
                        target: "defaultbg";
                        target: PART_ELM_SWALLOW_THUMBNAIL;
+                       target: PART_ELM_SWALLOW_FAVORITE;
                        target: "default_image";
                        target: "part_focus1";
                        target: "part_focus2";
@@ -1505,6 +1629,7 @@ group {
                        name: "focus,out,anim,2";
                        action: STATE_SET "default" 0.0;
                        target: PART_ELM_SWALLOW_THUMBNAIL;
+                       target: PART_ELM_SWALLOW_FAVORITE;
                        target: "default_image";
                        target: "defaultbg";
                        target: "part_focus1";
diff --git a/res/images/ic_thumbnail_favorite.png b/res/images/ic_thumbnail_favorite.png
new file mode 100644 (file)
index 0000000..4ac0e4b
Binary files /dev/null and b/res/images/ic_thumbnail_favorite.png differ
index 0cd9130..288a80b 100644 (file)
@@ -43,6 +43,8 @@
 
 #define BOX_PADDING 62
 
+#define IMAGE_FAVORITE_ALPHA 150
+
 struct _priv {
        Evas_Object *base;
        Evas_Object *layout;
@@ -124,6 +126,22 @@ static Evas_Object *_grid_content_get(void *data,
 
                        evas_object_show(image);
                }
+       } else if (!strcmp(part, PART_ELM_SWALLOW_FAVORITE)) {
+               int r, g, b, a;
+
+               if (!info->favorite)
+                       return NULL;
+
+               image = util_add_image(obj, IMAGE_THUMBNAIL_FAVORITE);
+               if (!image) {
+                       _ERR("failed to create image object");
+                       return NULL;
+               }
+
+               evas_object_color_get(image, &r, &g, &b, &a);
+               evas_object_color_set(image, r, g, b, IMAGE_FAVORITE_ALPHA);
+
+               evas_object_show(image);
        }
 
        return image;
index 9d8d39a..c944dd4 100644 (file)
@@ -40,6 +40,8 @@
 
 #define BOX_PADDING 62
 
+#define IMAGE_FAVORITE_ALPHA 150
+
 struct _priv {
        Evas_Object *base;
        Evas_Object *layout;
@@ -95,22 +97,36 @@ static Evas_Object *_grid_content_get(void *data,
                return NULL;
 
        am = data;
+       info = app_media_get_info(am);
+       if (!info) {
+               _ERR("failed to get media info");
+               return NULL;
+       }
 
        image = NULL;
        if (!strcmp(part, PART_ELM_SWALLOW_THUMBNAIL)) {
-               info = app_media_get_info(am);
-               if (!info) {
-                       _ERR("failed to get media info");
-                       evas_object_del(image);
+               image = util_add_image(obj, info->thumbnail_path);
+               if (!image) {
+                       _ERR("failed to create image object");
                        return NULL;
                }
 
-               image = util_add_image(obj, info->thumbnail_path);
+               evas_object_show(image);
+       } else if (!strcmp(part, PART_ELM_SWALLOW_FAVORITE)) {
+               int r, g, b, a;
+
+               if (!info->favorite)
+                       return NULL;
+
+               image = util_add_image(obj, IMAGE_THUMBNAIL_FAVORITE);
                if (!image) {
                        _ERR("failed to create image object");
                        return NULL;
                }
 
+               evas_object_color_get(image, &r, &g, &b, &a);
+               evas_object_color_set(image, r, g, b, IMAGE_FAVORITE_ALPHA);
+
                evas_object_show(image);
        }
 
@@ -167,6 +183,13 @@ static bool _update_recent(void *data, Evas_Object *base)
        strftime(buf, sizeof(buf), "%Y.%m.%d", &tm);
        elm_object_part_text_set(recent, PART_RECENT_CONTENT_DATE, buf);
 
+       if (info->favorite)
+               elm_object_signal_emit(recent, SIG_RECENT_SHOW_FAV,
+                                       SIG_SOURCE_SRC);
+       else
+               elm_object_signal_emit(recent, SIG_RECENT_HIDE_FAV,
+                                       SIG_SOURCE_SRC);
+
        progressbar_reset(priv->prog, info->video->position,
                                info->video->duration);
 
index 4d6f3c5..98c7571 100644 (file)
@@ -17,6 +17,7 @@
 #include <Elementary.h>
 #include <media_content.h>
 #include <app_debug.h>
+#include <app_contents.h>
 #include <app_media.h>
 #include <gridmgr.h>
 #include <layoutmgr.h>
@@ -109,6 +110,17 @@ static Evas_Object *_grid_content_get(void *data,
                }
 
                evas_object_show(image);
+       } else if (!strcmp(part, PART_ELM_SWALLOW_FAVORITE)) {
+               if (!info->favorite)
+                       return NULL;
+
+               image = util_add_image(obj, IMAGE_THUMBNAIL_FAVORITE);
+               if (!image) {
+                       _ERR("failed to create image object");
+                       return NULL;
+               }
+
+               evas_object_show(image);
        }
 
        return image;
@@ -163,6 +175,13 @@ static bool _update_playing_info(void *data, Evas_Object *base)
        elm_object_part_text_set(content, PART_PLAYING_CONTENT_ALBUM,
                                info->audio->album);
 
+       if (info->favorite)
+               elm_object_signal_emit(content, SIG_PLAYING_SHOW_FAV,
+                                       SIG_SOURCE_SRC);
+       else
+               elm_object_signal_emit(content, SIG_PLAYING_HIDE_FAV,
+                                       SIG_SOURCE_SRC);
+
        return true;
 }