detail: add music genre detail view 56/48856/1
authorJehun Lim <jehun.lim@samsung.com>
Thu, 1 Oct 2015 02:02:46 +0000 (11:02 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Thu, 1 Oct 2015 02:02:46 +0000 (11:02 +0900)
Change-Id: Id4933d5153ff8cae9413ffede36a320acaf84695
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
include/view.h
res/edc/widgets/gengrid.edc
src/grid/grid_music.c
src/view/detail.c

index 21e0f03..ef90d13 100644 (file)
@@ -62,6 +62,7 @@ enum detail_view_type {
        E_DETAIL_MOVIE_GENRE = 0,
        E_DETAIL_MUSIC_ALBUM,
        E_DETAIL_MUSIC_ARTIST,
+       E_DETAIL_MUSIC_GENRE,
        E_DETAIL_MAX
 };
 
index 4063fed..6bd69a5 100644 (file)
@@ -2109,25 +2109,55 @@ group {
                        }
                }
                part {
+                       name: "padding_title_left";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "bg";
+                               rel2 {
+                                       to: "bg";
+                                       relative: 0.0 1.0;
+                               }
+                               min: 14 0;
+                               align: 0.0 0.5;
+                               fixed: 1 0;
+                       }
+               }
+               part {
+                       name: "padding_title_right";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "bg";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2.to: "bg";
+                               min: 14 0;
+                               align: 1.0 0.5;
+                               fixed: 1 0;
+                       }
+               }
+               part {
                        name: PART_ELM_TEXT_TITLE;
                        type: TEXT;
                        scale: 1;
                        description {
                                state: "default" 0.0;
                                rel1 {
-                                       to: "bg";
-                                       relative: 0.5 0.5;
+                                       to: "padding_title_left";
+                                       relative: 1.0 0.5;
                                }
                                rel2 {
-                                       to: "bg";
-                                       relative: 0.5 0.5;
+                                       to: "padding_title_right";
+                                       relative: 0.0 0.5;
                                }
                                text {
                                        font: FONT_LIGHT;
                                        size: 28;
-                                       min: 1 0;
                                        align: 0.5 0.5;
-                                       ellipsis: -1;
                                }
                                min: 0 28;
                                align: 0.5 0.5;
index b4e327c..2bf8a38 100644 (file)
@@ -404,6 +404,30 @@ static void _artist_selected_cb(void *data, Elm_Object_Item *it)
        viewmgr_push_view(VIEW_DETAIL);
 }
 
+static void _genre_selected_cb(void *data, Elm_Object_Item *it)
+{
+       struct view_update_data vdata;
+       struct group_info *gi;
+
+       if (!it) {
+               _ERR("invalid argument");
+               return;
+       }
+
+       gi = elm_object_item_data_get(it);
+       if (!gi) {
+               _ERR("failed to get group info");
+               return;
+       }
+
+       vdata.list = gi->list;
+       vdata.index = E_DETAIL_MUSIC_GENRE;
+       vdata.id = gi->name;
+
+       viewmgr_update_view(VIEW_DETAIL, UPDATE_CONTENT, &vdata);
+       viewmgr_push_view(VIEW_DETAIL);
+}
+
 static struct grid_class _gclass[] = {
        [E_MUSIC_SONG] = {
                .item_style = STYLE_MUSIC_SONG,
@@ -468,6 +492,7 @@ static struct grid_data _gdata[] = {
                .gclass = &_gclass[E_MUSIC_GENRE],
                .get_item_list = _get_genre_list,
                .free_item_list = _free_group_list,
+               .selected_cb = _genre_selected_cb,
        },
        /* Other view mode data will be added later */
 };
index 066521b..7d28b1c 100644 (file)
@@ -89,6 +89,15 @@ static struct _view_info view_info[E_DETAIL_MAX] = {
                .selected = _album_selected,
                .detail_update = EINA_TRUE,
        },
+       [E_DETAIL_MUSIC_GENRE] = {
+               .grid_style = STYLE_MUSIC_SONG_DETAIL,
+               .grid_item_x = MUSIC_SONG_ITEM_X,
+               .grid_item_y = MUSIC_SONG_ITEM_Y,
+               .get_grid_text = _grid_text_get,
+               .get_grid_content = _grid_content_get,
+               .get_content_info = _get_song_count,
+               .detail_update = EINA_FALSE,
+       },
 };
 
 struct _priv {
@@ -192,12 +201,18 @@ static void _media_selected(void *data)
        vdata.list = priv->media_list;
        vdata.index = util_get_media_index(vdata.list, am);
 
-       if (priv->view_type == E_DETAIL_MOVIE_GENRE) {
+       switch (priv->view_type) {
+       case E_DETAIL_MOVIE_GENRE:
                viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata);
                viewmgr_push_view(VIEW_VIEWER);
-       } else if (priv->view_type == E_DETAIL_MUSIC_ALBUM) {
+               break;
+       case E_DETAIL_MUSIC_ALBUM:
+       case E_DETAIL_MUSIC_GENRE:
                viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata);
                viewmgr_push_view(VIEW_MPLAYER);
+               break;
+       default:
+               break;
        }
 }