}
parts {
part {
- name, "bg";
+ name, "part.bg";
type, RECT;
scale, 1;
description {
}
part {
- name, "bg.left";
+ name, "part.bg.left";
type, RECT;
scale, 1;
description {
state, "default" 0.0;
min, 40 82;
- rel1.to, "bg";
+ rel1.to, "part.bg";
rel2 {
relative, 0.0 0.0;
- to, "bg";
+ to, "part.bg";
}
align, 1.0 0.0;
fixed, 1 1;
}
part {
- name, "bg.right";
+ name, "part.bg.right";
type, RECT;
scale, 1;
description {
min, 40 82;
rel1 {
relative, 1.0 0.0;
- to, "bg";
+ to, "part.bg";
}
rel2 {
relative, 1.0 0.0;
- to, "bg";
+ to, "part.bg";
}
align, 0.0 0.0;
fixed, 1 1;
}
part {
- name, "bottom.line";
+ name, "part.bottom.line";
type, RECT;
scale, 1;
description {
color, 64 136 211 255;
min, 0 3;
rel1 {
- to, "bg";
+ to, "part.bg";
relative, 0.0 1.0;
}
rel2 {
- to, "bg";
+ to, "part.bg";
}
align, 0.5 1.0;
fixed, 0 1;
new state;
state = get_int(cur_state);
if (state == STATE_SELECTED) {
- set_state(PART:"bg", "selected", 0.0);
- set_state(PART:"bg.left", "selected", 0.0);
- set_state(PART:"bg.right", "selected", 0.0);
+ set_state(PART:"part.bg", "selected", 0.0);
+ set_state(PART:"part.bg.left", "selected", 0.0);
+ set_state(PART:"part.bg.right", "selected", 0.0);
set_state(PART:"elm.text", "selected", 0.0);
- set_state(PART:"bottom.line", "selected", 0.0);
+ set_state(PART:"part.bottom.line", "selected", 0.0);
} else {
run_program(PROGRAM:"unfocused,anim");
}
program {
name, "focused,anim";
action, STATE_SET "focused" 0.0;
- target, "bg";
- target, "bg.left";
- target, "bg.right";
+ target, "part.bg";
+ target, "part.bg.left";
+ target, "part.bg.right";
target, "elm.text";
- target, "bottom.line";
+ target, "part.bottom.line";
transition, LINEAR 0.17;
}
program {
name, "unfocused,anim";
action, STATE_SET "default" 0.0;
- target, "bg";
- target, "bg.left";
- target, "bg.right";
+ target, "part.bg";
+ target, "part.bg.left";
+ target, "part.bg.right";
target, "elm.text";
- target, "bottom.line";
+ target, "part.bottom.line";
transition, LINEAR 0.17;
}
source, "";
script {
set_int(cur_state, STATE_SELECTED);
- set_state(PART:"bg", "selected", 0.0);
- set_state(PART:"bg.left", "selected", 0.0);
- set_state(PART:"bg.right", "selected", 0.0);
+ set_state(PART:"part.bg", "selected", 0.0);
+ set_state(PART:"part.bg.left", "selected", 0.0);
+ set_state(PART:"part.bg.right", "selected", 0.0);
set_state(PART:"elm.text", "selected", 0.0);
- set_state(PART:"bottom.line", "selected", 0.0);
+ set_state(PART:"part.bottom.line", "selected", 0.0);
+ }
+ }
+ }
+}
+
+group {
+ name, "elm/button/base/style.sort.button";
+ data.item, "focus_highlight" "on";
+ script {
+ public cur_state;
+ }
+ parts {
+ part {
+ name, "part.bg";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 218 64;
+ }
+ description {
+ state, "focused" 0.0;
+ inherit, "default" 0.0;
+ color, 0 119 246 255;
+ }
+ description {
+ state, "selected" 0.0;
+ inherit, "default" 0.0;
+ }
+ }
+
+ part {
+ name, "part.inside.line.up";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 218 2;
+ color, 87 87 87 255;
+ rel2.relative, 0.0 0.0;
+ align, 0.0 0.0;
+ fixed, 1 1;
+ }
+ description {
+ state, "focused" 0.0;
+ inherit, "default" 0.0;
+ visible, 0;
+ }
+ description {
+ state, "selected" 0.0;
+ inherit, "default" 0.0;
+ color, 64 136 211 255;
+ }
+ }
+
+ part {
+ name, "part.inside.line.left";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 2 64;
+ color, 87 87 87 255;
+ rel2.relative, 0.0 0.0;
+ align, 0.0 0.0;
+ fixed, 1 1;
+ }
+ description {
+ state, "focused" 0.0;
+ inherit, "default" 0.0;
+ visible, 0;
+ }
+ description {
+ state, "selected" 0.0;
+ inherit, "default" 0.0;
+ color, 64 136 211 255;
+ }
+ }
+
+ part {
+ name, "part.inside.line.down";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 218 2;
+ color, 87 87 87 255;
+ rel1.relative, 0.0 1.0;
+ rel2.relative, 0.0 1.0;
+ align, 0.0 1.0;
+ fixed, 1 1;
+ }
+ description {
+ state, "focused" 0.0;
+ inherit, "default" 0.0;
+ visible, 0;
+ }
+ description {
+ state, "selected" 0.0;
+ inherit, "default" 0.0;
+ color, 64 136 211 255;
+ }
+ }
+
+ part {
+ name, "part.inside.line.right";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 2 64;
+ color, 87 87 87 255;
+ rel1.relative, 1.0 0.0;
+ rel2.relative, 1.0 0.0;
+ align, 1.0 0.0;
+ fixed, 1 1;
+ }
+ description {
+ state, "focused" 0.0;
+ inherit, "default" 0.0;
+ visible, 0;
+ }
+ description {
+ state, "selected" 0.0;
+ inherit, "default" 0.0;
+ color, 64 136 211 255;
+ }
+ }
+
+ part {
+ name, "padding.elm.text";
+ type, SPACER;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 30 0;
+ rel2.relative, 0.0 1.0;
+ align, 0.0 0.5;
+ fixed, 1 0;
+ }
+ }
+
+ part {
+ name, "elm.text";
+ type, TEXT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ color, 87 87 87 255;
+ min, 134 0;
+ rel1 {
+ to, "padding.elm.text";
+ relative, 1.0 0.0;
+ }
+ rel2.to, "padding.elm.text";
+ align, 0.0 0.5;
+ fixed, 1 0;
+ text {
+ font, FONT_TIZENSANS_LIGHT;
+ size, 32;
+ align, 0.5 0.5;
+ }
+ }
+ description {
+ state, "focused" 0.0;
+ inherit, "default" 0.0;
+ color, 255 255 255 255;
+ }
+ description {
+ state, "selected" 0.0;
+ inherit, "default" 0.0;
+ color, 64 136 211 255;
+ }
+ }
+ }
+
+ programs{
+ program {
+ name, SIG_FOCUSED;
+ signal, "elm,action,focus";
+ source, "elm";
+ script {
+ set_int(cur_state, STATE_NORMAL);
+ run_program(PROGRAM:"focused,anim");
+ }
+ }
+
+ program {
+ name, SIG_UNFOCUSED;
+ signal, "elm,action,unfocus";
+ source, "elm";
+ script {
+ new state;
+ state = get_int(cur_state);
+ if (state == STATE_SELECTED) {
+ set_state(PART:"part.bg", "selected", 0.0);
+ set_state(PART:"elm.text", "selected", 0.0);
+ set_state(PART:"part.inside.line.up", "selected", 0.0);
+ set_state(PART:"part.inside.line.down", "selected", 0.0);
+ set_state(PART:"part.inside.line.left", "selected", 0.0);
+ set_state(PART:"part.inside.line.right", "selected", 0.0);
+ } else {
+ run_program(PROGRAM:"unfocused,anim");
+ }
+ }
+ }
+
+ program {
+ name, "focused,anim";
+ action, STATE_SET "focused" 0.0;
+ target, "part.bg";
+ target, "elm.text";
+ target, "part.inside.line.up";
+ target, "part.inside.line.down";
+ target, "part.inside.line.left";
+ target, "part.inside.line.right";
+ transition, LINEAR 0.17;
+ }
+
+ program {
+ name, "unfocused,anim";
+ action, STATE_SET "default" 0.0;
+ target, "part.bg";
+ target, "elm.text";
+ target, "part.inside.line.up";
+ target, "part.inside.line.down";
+ target, "part.inside.line.left";
+ target, "part.inside.line.right";
+ transition, LINEAR 0.17;
+ }
+
+ program {
+ name, SIG_SELECTED;
+ signal, "selected";
+ source, "";
+ script {
+ set_int(cur_state, STATE_SELECTED);
+ set_state(PART:"part.bg", "selected", 0.0);
+ set_state(PART:"elm.text", "selected", 0.0);
+ set_state(PART:"part.inside.line.up", "selected", 0.0);
+ set_state(PART:"part.inside.line.down", "selected", 0.0);
+ set_state(PART:"part.inside.line.left", "selected", 0.0);
+ set_state(PART:"part.inside.line.right", "selected", 0.0);
}
}
}
MENU_APPSTORE,
};
+enum sort_type {
+ SORT_RECENT = 0,
+ SORT_A_TO_Z,
+ SORT_Z_TO_A,
+};
+
+const char *str_menu[] = {
+ STR_MYAPPS,
+ STR_APPSTORE,
+ NULL
+};
+
+const char *str_sort[] = {
+ STR_RECENT,
+ STR_A_TO_Z,
+ STR_Z_TO_A,
+};
+
+
struct _priv {
Evas_Object *win;
Evas_Object *base;
Elm_Object_Item *cur_grid_item;
struct gridmgr *gmgr;
Eina_List *app_list;
+ enum sort_type sort_type;
};
-
-const char *str_menu[] = {
- STR_MYAPPS,
- STR_APPSTORE,
- NULL
-};
-
static void _mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Mouse_Move *ev)
{
static void _sort_clicked_cb(int id, void *data, Evas_Object *obj)
{
+ if (!obj) {
+ _ERR("Invalid argument.");
+ return;
+ }
+
+ elm_object_signal_emit(obj, SIG_SELECTED, "");
/* It will be implemented later. */
}
return false;
}
- btn = add_button(priv->base, PART_SORT, NULL, NULL);
+ btn = add_button(priv->base, PART_SORT,
+ str_sort[priv->sort_type], STYLE_SORT_BTN);
if (!btn) {
_ERR("Add button failed.");
return false;
inputmgr_add_callback(btn, 0, &_sort_input_handler, priv);
+ elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN);
+ elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_RIGHT);
+ elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT);
+
priv->sort_btn = btn;
c = eina_list_count(priv->app_list);
priv->win = win;
priv->base = base;
priv->gmgr = gmgr;
+ priv->sort_type = SORT_RECENT;
grid = _add_grid(priv);
if (!grid) {