#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"
#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"
/* 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"
#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"
#define STATE_FOCUSED 1
#define STATE_SELECTED 2
+#define STATE_SHOW 0
+#define STATE_HIDE 1
+
#define STATE_PLAY 0
#define STATE_PAUSE 1
data.item, "focus_highlight" "on";
images {
image: IMAGE_PREVIEW_PLAY COMP;
+ image: IMAGE_PLAY_INFO_FAVORITE COMP;
+ }
+ script {
+ public fav_state;
}
parts {
part {
}
}
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;
}
programs {
program {
+ name: "load";
+ signal: "load";
+ source: "";
+ script {
+ set_int(fav_state, STATE_HIDE);
+ }
+ }
+ program {
name: "go_active";
signal: "elm,action,focus";
source: "elm";
}
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;
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);
+ }
+ }
}
}
data.item, "focus_highlight" "on";
images {
image: IMAGE_PREVIEW_PLAY COMP;
+ image: IMAGE_PLAY_INFO_FAVORITE COMP;
+ }
+ script {
+ public fav_state;
}
parts {
part {
}
}
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;
}
programs {
program {
+ name: "load";
+ signal: "load";
+ source: "";
+ script {
+ set_int(fav_state, STATE_HIDE);
+ }
+ }
+ program {
name: "go_active";
signal: "elm,action,focus";
source: "elm";
}
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;
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);
+ }
+ }
}
}
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;
}
}
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;
target: "defaultbg";
target: "default_image";
target: PART_ELM_SWALLOW_THUMBNAIL;
+ target: PART_ELM_SWALLOW_FAVORITE;
target: "part_focus1";
target: "part_focus2";
target: "part_focus3";
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";
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;
}
}
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;
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";
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";
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;
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 {
}
}
part {
- name: "elm.padding.artist.left";
+ name: "elm.padding.artist";
type: SPACER;
scale: 1;
description {
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 {
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;
}
}
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;
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";
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";
#define BOX_PADDING 62
+#define IMAGE_FAVORITE_ALPHA 150
+
struct _priv {
Evas_Object *base;
Evas_Object *layout;
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;
#define BOX_PADDING 62
+#define IMAGE_FAVORITE_ALPHA 150
+
struct _priv {
Evas_Object *base;
Evas_Object *layout;
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);
}
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);
#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>
}
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;
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;
}