data.item, "contents" "part.thumb.icon part.thumb.bg";
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;
}
}
part {
- name, "padding.thumb.icon";
- type, SPACER;
+ name, "part.thumb.icon.bg";
+ type, RECT;
scale, 1;
description {
state, "default" 0.0;
- min, 56 56;
+ min, 212 212;
rel2.relative, 0.0 0.0;
align, 0.0 0.0;
fixed, 1 1;
+ visible, 0;
}
}
scale, 1;
description {
state, "default" 0.0;
- min, 100 100;
+ min, SIZE_APP_ICON_MAX SIZE_APP_ICON_MAX;
rel1 {
- to, "padding.thumb.icon";
- relative, 1.0 1.0;
+ to, "part.thumb.icon.bg";
+ relative, 0.5 0.5;
}
rel2 {
- to, "padding.thumb.icon";
- relative, 1.0 1.0;
+ to, "part.thumb.icon.bg";
+ relative, 0.5 0.5;
}
- align, 0.0 0.0;
+ 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;
}
}
description {
state, "default" 0.0;
color, 0 119 246 255;
- min, 212 6;
- 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;
}
}
description {
state, "default" 0.0;
color, 0 119 246 255;
- min, 6 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, 6 294;
+ 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;
}
}
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;
}
}
}
- programs {
+ programs{
program {
name, SIG_FOCUSED;
signal, "elm,state,focused";
source, "elm";
+ 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;
+ 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.focus.up";
target, "part.focus.left";
target, "part.focus.down";
target, "part.focus.right";
+ transition, TRANSITION_FOCUS;
}
program {
signal, "elm,state,unfocused";
source, "elm";
action, STATE_SET "default" 0.0;
+ target, PART_THUMB_TEXT;
+ 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.focus.up";
target, "part.focus.left";
target, "part.focus.down";
}
program {
- name, SIG_SELECTED;
+ name, "item_focused";
+ action, SIGNAL_EMIT SIG_ITEM_FOCUSED SIG_SOURCE_EDC;
+ }
+
+ program {
+ name, "activated";
+ signal, "elm,state,activated";
+ source, "elm";
+ after, "item_selected";
+ }
+
+ program {
+ name, "selected";
signal, "elm,state,selected";
source, "elm";
+ action, STATE_SET "selected" 0.0;
+ target, "map";
+ transition, TRANSITION_CLICK;
+ after, "after_selected";
+ }
+
+ program {
+ name, "after_selected";
+ action, STATE_SET "default" 0.0;
+ target, "map";
+ transition, TRANSITION_CLICK;
after, "item_selected";
}
program {
name, "item_selected";
- action, SIGNAL_EMIT SIG_ITEM_SELECTED SRC_EDC;
+ action, SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC;
}
}
}
};
static struct color color_icon[] = {
- {84, 79, 73, 255},
- {92, 122, 190, 255},
+ {104, 99, 93, 255},
{73, 155, 173, 255},
- {79, 187, 165, 255},
+ {92, 122, 190, 255},
{97, 109, 124, 255},
- {169, 54, 54, 255},
- {206, 118, 70, 255}
+ {219, 162, 96, 255},
+ {79, 187, 165, 255},
+ {169, 54, 54, 255}
};
static struct color color_text[] =
{
- {73, 68, 62, 255},
- {75, 102, 163, 255},
+ {93, 88, 82, 255},
{55, 143, 162, 255},
- {47, 175, 149, 255},
+ {75, 102, 163, 255},
{86, 98, 113, 255},
- {155, 46, 46, 255},
- {200, 99, 45, 255}
+ {194, 133, 62, 255},
+ {47, 175, 149, 255},
+ {155, 46, 46, 255}
};
static char *_text_get(void *data, Evas_Object *obj, const char *part)
return strdup(name);
}
+static int _get_color_index(const char *str)
+{
+ int i, value = 0;
+
+ if (!str)
+ return 0;
+
+ for (i = 0; i < strlen(str); i++)
+ value += *str;
+
+ return value % COUNT_COLOR;
+}
+
static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
{
struct datamgr *dmgr;
Evas_Object *img, *ly, *icon_bg, *text_bg = NULL;
- char *icon;
- int idx;
+ char *icon, *name, *img_path;
+ int idx, w, h;
if (!data || !obj) {
_ERR("Data is NULL.");
return NULL;
}
- if (!strcmp(part, PART_THUMB_ICON)) {
- dmgr = get_apps_datamgr();
- if (!dmgr || !dmgr->get_data)
- return NULL;
+ dmgr = get_apps_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
+ if (!strcmp(part, PART_THUMB_ICON)) {
icon = dmgr->get_data(data, DATA_THUMBNAIL);
img = elm_image_add(obj);
}
if (!icon || !strcmp(icon, STR_NULL))
- elm_image_file_set(img, DEFAULT_APP_PNG, NULL);
+ img_path = DEFAULT_APP_ICON_PNG;
else
- elm_image_file_set(img, icon, NULL);
+ img_path = icon;
+
+ if (!elm_image_file_set(img, img_path, NULL))
+ elm_image_file_set(img, DEFAULT_APP_ICON_PNG, NULL);
+
+ elm_image_object_size_get(img, &w, &h);
+
+ if (w <= SIZE_APP_ICON_MAX && h <= SIZE_APP_ICON_MAX)
+ elm_image_resizable_set(img, EINA_FALSE, EINA_FALSE);
return img;
} else if (!strcmp(part, PART_THUMB_BG)) {
+ name = dmgr->get_data(data, DATA_NAME);
+
ly = elm_layout_add(obj);
if (!ly) {
_ERR("elm_bg_add failed.");
}
/* FIXME: The color will be changed as GUI later. */
- idx = rand() % COUNT_COLOR;
+ idx = _get_color_index(name);
evas_object_color_set(icon_bg,
color_icon[idx].r, color_icon[idx].g,