group {
name, "elm/gengrid/item/gengrid_item/default";
data.item, "selectraise" "on";
- data.item, "contents" "elm.swallow.icon";
+ data.item, "contents" "elm.swallow.content elm.swallow.icon";
data.item, "focus_highlight" "on";
parts {
part {
}
}
part {
- name, PART_SWALLOW_ICON;
+ name, PART_SWALLOW_CONTENT;
type, SWALLOW;
scale, 1;
clip_to, "clip";
fixed, 1 1;
}
}
+ part {
+ name, "pad.favorite";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ rel1 {
+ to, PART_SWALLOW_CONTENT;
+ relative, 1.0 0.0;
+ }
+ rel2 {
+ to, PART_SWALLOW_CONTENT;
+ relative, 1.0 0.0;
+ }
+ min, 8 8;
+ fixed, 1 1;
+ align, 1.0 0.0;
+ visible, 0;
+ }
+ }
+ part {
+ name, PART_SWALLOW_ICON;
+ type, SWALLOW;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ rel1 {
+ to, "pad.favorite";
+ relative, 0.0 1.0;
+ }
+ rel2 {
+ to, "pad.favorite";
+ relative, 0.0 1.0;
+ }
+ min, 30 30;
+ fixed, 1 1;
+ align, 1.0 0.0;
+ }
+ }
}
programs {
program {
#include <app_debug.h>
#include <Eina.h>
#include <media_content.h>
+#include <app_contents.h>
#include "data_photo.h"
#include "datamgr.h"
+#include "defs.h"
#define MEDIA_CONDITION_IMAGE "MEDIA_TYPE=0"
static bool _get_media(media_info_h m, void *data)
{
int r;
- char *thumb;
+ char *thumb, *mediaid;
Eina_List **list;
+ struct datamgr_item *di;
+ bool favorite;
if (!m) {
_ERR("Invalid argument");
return false;
}
- *list = eina_list_append(*list, thumb);
+ r = media_info_get_media_id(m, &mediaid);
+ if (r != MEDIA_CONTENT_ERROR_NONE || !mediaid)
+ _ERR("failed to get media id");
+
+ favorite = false;
+ r = app_contents_favorite_check(CONTENTS_PHOTO, mediaid, &favorite);
+ if (r != APP_CONTENTS_ERROR_NONE)
+ _ERR("failed to get favorite");
+
+ di = calloc(1, sizeof(*di));
+ if (!di) {
+ _ERR("failed to calloc datamgr item");
+ return false;
+ }
+ di->icon = strdup(thumb);
+ if (favorite)
+ di->focus_icon = strdup(IMAGE_PHOTO_FAVORITE);
+
+ *list = eina_list_append(*list, di);
return true;
}
static void _select_done(struct _priv *priv, Evas_Object *obj)
{
- char *thumb;
+ struct datamgr_item *di;
_delete_popup(priv);
elm_object_focus_allow_set(priv->grid, EINA_TRUE);
- thumb = elm_object_item_data_get(priv->cur);
- if (thumb) {
+ di = elm_object_item_data_get(priv->cur);
+ if (di && di->icon) {
viewmgr_update_view(VIEW_USER_EDIT,
- UPDATE_TYPE_PHOTO, thumb);
+ UPDATE_TYPE_PHOTO, di->icon);
viewmgr_pop_view();
}
}
static Evas_Object *_get_grid_content(void *data, Evas_Object *obj,
const char *part)
{
+ struct datamgr_item *di;
Evas_Object *img = NULL;
- if (!strcmp(part, PART_SWALLOW_ICON)) {
- img = utils_add_icon(obj, data, NULL);
+ if (!data) {
+ _ERR("Invalid argument");
+ return NULL;
+ }
+
+ di = data;
+
+ if (!strcmp(part, PART_SWALLOW_CONTENT)) {
+ img = utils_add_icon(obj, di->icon, NULL);
if (!img) {
_ERR("failed to add image");
return NULL;
}
+ } else if (!strcmp(part, PART_SWALLOW_ICON)) {
+ if (di->focus_icon) {
+ img = utils_add_icon(obj, di->focus_icon, NULL);
+ if (!img) {
+ _ERR("failed to add imgae");
+ return NULL;
+ }
+ }
}
return img;
static void _select_item(void *data, Evas_Object *obj, void *ei)
{
+ struct datamgr_item *di;
struct _priv *priv = data;
- char *thumb;
- thumb = elm_object_item_data_get(ei);
- if (!thumb) {
+ di = elm_object_item_data_get(ei);
+ if (!di) {
_ERR("failed to get data");
return;
}
elm_object_focus_allow_set(priv->grid, EINA_FALSE);
- _add_viewer_popup(priv, thumb);
+ _add_viewer_popup(priv, di->icon);
priv->cur = ei;
}
Elm_Gengrid_Item_Class *ic;
Elm_Object_Item *item;
Eina_List *l;
- char *thumb;
+ struct datamgr_item *di;
elm_gengrid_clear(grid);
ic->func.state_get = NULL;
ic->func.del = NULL;
- EINA_LIST_FOREACH(dlist, l, thumb) {
- item = elm_gengrid_item_append(grid, ic, thumb,
+ EINA_LIST_FOREACH(dlist, l, di) {
+ item = elm_gengrid_item_append(grid, ic, di,
_select_item, priv);
if (!item)
continue;
- elm_object_item_data_set(item, thumb);
+ elm_object_item_data_set(item, di);
priv->plist = eina_list_append(priv->plist, item);
}