View: Fixed the sort button to be displayed properly 24/43424/1
authorHyojung Jo <hj903.jo@samsung.com>
Thu, 9 Jul 2015 05:18:32 +0000 (14:18 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Thu, 9 Jul 2015 05:18:32 +0000 (14:18 +0900)
Change-Id: I670278aea5608967554869f0f054aca583a40b5a
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/define.h
res/view/base.edc
res/widget/button.edc
src/view/view_base.c

index 7ee324f..4da1c13 100644 (file)
@@ -39,6 +39,7 @@
 
 /* Style */
 #define STYLE_MENU_BTN "style.menu.button"
+#define STYLE_SORT_BTN "style.sort.button"
 #define STYLE_APP "style.app"
 
 /* Signal */
@@ -58,6 +59,9 @@
 #define STR_APPS "Apps"
 #define STR_MYAPPS "My Apps"
 #define STR_APPSTORE "App Store"
+#define STR_RECENT "Recent"
+#define STR_A_TO_Z "A-Z"
+#define STR_Z_TO_A "Z-A"
 #define STR_NULL "(NULL)"
 #define STR_NO_CONTENTS "No Contents"
 
index 9dc2d9d..1ec536a 100644 (file)
@@ -178,6 +178,36 @@ group {
                }
 
                part {
+                       name, "padding.sort";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 62 42;
+                               rel1.relative, 1.0 1.0;
+                               align, 1.0 1.0;
+                               fixed, 1 1;
+                       }
+               }
+
+               part {
+                       name, PART_SORT;
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 218 64;
+                               rel1.to, "padding.sort";
+                               rel2 {
+                                       to, "padding.sort";
+                                       relative, 0.0 0.0;
+                               }
+                               align, 1.0 1.0;
+                               fixed, 1 1;
+                       }
+               }
+
+               part {
                        name, "padding.no.contents1";
                        type, SPACER;
                        scale, 1;
index 161b0ef..d63b455 100644 (file)
@@ -25,7 +25,7 @@ group {
        }
        parts {
                part {
-                       name, "bg";
+                       name, "part.bg";
                        type, RECT;
                        scale, 1;
                        description {
@@ -44,16 +44,16 @@ group {
                }
 
                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;
@@ -70,7 +70,7 @@ group {
                }
 
                part {
-                       name, "bg.right";
+                       name, "part.bg.right";
                        type, RECT;
                        scale, 1;
                        description {
@@ -78,11 +78,11 @@ group {
                                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;
@@ -131,7 +131,7 @@ group {
                }
 
                part {
-                       name, "bottom.line";
+                       name, "part.bottom.line";
                        type, RECT;
                        scale, 1;
                        description {
@@ -139,11 +139,11 @@ group {
                                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;
@@ -180,11 +180,11 @@ group {
                                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");
                                }
@@ -194,22 +194,22 @@ group {
                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;
                }
 
@@ -219,11 +219,254 @@ group {
                        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);
                        }
                }
        }
index 9b5f369..2c35054 100644 (file)
@@ -33,6 +33,25 @@ enum menu_type {
        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;
@@ -43,14 +62,8 @@ struct _priv {
        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)
 {
@@ -133,6 +146,12 @@ static void _menu_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
 
 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. */
 }
 
@@ -329,7 +348,8 @@ static bool _draw_bottom_area(struct _priv *priv)
                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;
@@ -337,6 +357,10 @@ static bool _draw_bottom_area(struct _priv *priv)
 
        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);
@@ -451,6 +475,7 @@ static Evas_Object *_create(Evas_Object *win, void *data)
        priv->win = win;
        priv->base = base;
        priv->gmgr = gmgr;
+       priv->sort_type = SORT_RECENT;
 
        grid = _add_grid(priv);
        if (!grid) {