Car selection screen updated 34/184934/3
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Mon, 23 Jul 2018 11:45:44 +0000 (13:45 +0200)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Wed, 25 Jul 2018 16:18:38 +0000 (18:18 +0200)
Change-Id: I10b928df89d757a43d2261b873295f6de417b9c3
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
edje/images/b_end_effect_bottom_bg.png
edje/images/b_end_effect_top_bg.png
edje/images/bg_no_border.png
edje/images/button_left_pressed.png
edje/images/button_right_pressed.png
inc/gear-racing-controller.h
inc/log.h
res/edje/car_selection.edc
res/edje/genlist_style.edc
res/edje/include/scroller.edh
src/view/view_car_selection.c

index 61c54a4..24ccd53 100644 (file)
Binary files a/edje/images/b_end_effect_bottom_bg.png and b/edje/images/b_end_effect_bottom_bg.png differ
index e723a0d..24d012b 100644 (file)
Binary files a/edje/images/b_end_effect_top_bg.png and b/edje/images/b_end_effect_top_bg.png differ
index 65a1b79..67085e3 100644 (file)
Binary files a/edje/images/bg_no_border.png and b/edje/images/bg_no_border.png differ
index 835abda..f5fe9e0 100644 (file)
Binary files a/edje/images/button_left_pressed.png and b/edje/images/button_left_pressed.png differ
index b7c9e1e..1b68221 100644 (file)
Binary files a/edje/images/button_right_pressed.png and b/edje/images/button_right_pressed.png differ
index 0de2fda..d1a95bd 100644 (file)
 #include <efl_extension.h>
 #include <dlog.h>
 
-#ifdef  LOG_TAG
-#undef  LOG_TAG
-#endif
-#define LOG_TAG "gear-racing-controller"
-
 #if !defined(PACKAGE)
 #define PACKAGE "org.tizen.gear-racing-controller"
 #endif
index 7047523..dd9b273 100644 (file)
--- a/inc/log.h
+++ b/inc/log.h
@@ -27,7 +27,7 @@
 #ifdef  LOG_TAG
 #undef  LOG_TAG
 #endif
-#define LOG_TAG "CAR_CON"
+#define LOG_TAG "GEAR-RACING-CONTROLLER"
 
 #define _D(fmt, arg...) dlog_print(DLOG_DEBUG, LOG_TAG, "[%s:%s():%d] "fmt, basename(__FILE__), __FUNCTION__, __LINE__, ##arg)
 #define _I(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s:%s():%d] "fmt , basename(__FILE__), __FUNCTION__, __LINE__, ##arg)
index f394d18..c8ded2a 100644 (file)
@@ -11,27 +11,13 @@ collections {
                image.normal: "bg_no_border.png";
             }
          }
-         text { "text";
-            scale: 0;
-            desc { "default";
-               rel1.relative: 0.0000 0.1278;
-               rel2.relative: 1.0000 0.1944;
-               color: 240 35 61 255;
-               text {
-                  size: 24;
-                  font: "SamsungOne";
-                  text: "Select a car";
-                  align: 0.5 0.5;
-               }
-            }
-         }
          swallow { "list";
             scale: 1;
             desc { "default";
                visible: 1;
                align: 0.5 0.5;
-               rel1.relative: 0.0000 0.2000;
-               rel2.relative: 1.0000 0.8000;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
             }
          }
       }
index cb356ce..7fef60b 100644 (file)
@@ -1,9 +1,18 @@
 #include "include/defines.edh"
 
+#define DBG(name, r, g, b, a) \
+rect { name".dbg"; \
+       desc { "default"; \
+               color: r g b a; \
+               rel1.to: name; \
+               rel2.to: name; \
+       } \
+} \
+
 collections {
    styles {
       style { "main_style";
-                       base: "font='SamsungOne' font_size=24 font_width='condensed' color=#F8EECC valign=0.5 align=center wrap=word";
+                       base: "font='SamsungOne' font_size=30 font_width='condensed' color=#F8EECC valign=0.5 align=center wrap=word";
       }
    }
 
@@ -102,7 +111,6 @@ collections {
          rect { "bg"; scale;
             desc { "default";
                color: 0 0 0 0;
-//                                     color_class: "genlist_item/1text/bg";
             }
          }
          spacer { "elm.padding.left"; scale;
@@ -128,9 +136,8 @@ collections {
                fixed: 0 1;
                align: 0.5 0.0;
                rel2.relative: 1.0 0.0;
-               min: 0 20; //LIST_1LINE_PADDING_TOP_SIZE_INC;
-               max: -1 20; //LIST_1LINE_PADDING_TOP_SIZE_INC;
-//                                     color: 255 255 0 255;
+               min: 0 LIST_1LINE_PADDING_TOP_SIZE_INC;
+               max: -1 LIST_1LINE_PADDING_TOP_SIZE_INC;
             }
             desc { "highlighting";
                inherit: "default";
@@ -146,9 +153,8 @@ collections {
                fixed: 0 1;
                rel1.relative: 0.0 1.0;
                align: 0.5 1.0;
-               min: 0 20; //LIST_1LINE_PADDING_BOTTOM_SIZE_INC;
-               max: -1 20; //LIST_1LINE_PADDING_BOTTOM_SIZE_INC;
-//                                     color: 0 255 0 255;
+               min: 0 LIST_1LINE_PADDING_BOTTOM_SIZE_INC;
+               max: -1 LIST_1LINE_PADDING_BOTTOM_SIZE_INC;
             }
             desc { "highlighting";
                inherit: "default";
@@ -369,8 +375,8 @@ collections {
                align: 0.5 0.5;
 //                                     rel1.to: "focus_bg_size";
 //                                     rel2.to: "focus_bg_size";
-               rel1.relative: 0.0 0.3121;
-               rel2.relative: 1.0 0.6878;
+               rel1.relative: 0.0 0.35;
+               rel2.relative: 1.0 0.65;
                image.normal: "list_bg.png";
                color: 255 255 255 255;
                                //      color_class: "genlist/focus_bg/focus_bg";
index 6f719b4..34a6c1e 100644 (file)
@@ -690,11 +690,13 @@ group { name: "elm/scroller/base/list_effect";
             image {
                normal: "b_end_effect_top_edge_bg.png";
             }
-            color_class: "scroller/default/end_effect/edge_bg/off";
+//            color_class: "scroller/default/end_effect/edge_bg/off";
+            color: 255 255 255 255;
          }
          description { state: "start" 0.0;
             inherit: "default" 0.0;
-            color_class: "scroller/default/end_effect/edge_bg";
+//            color_class: "scroller/default/end_effect/edge_bg";
+            color: 255 255 255 255;
          }
       }
       part { name: "shadow_top_bg";
@@ -716,7 +718,8 @@ group { name: "elm/scroller/base/list_effect";
             image {
                normal: "b_end_effect_top_bg.png";
             }
-            color_class: "scroller/default/end_effect/bg";
+//            color_class: "scroller/default/end_effect/bg";
+            color: 255 255 255 255;
          }
          description { state: "start" 0.0;
             inherit: "default" 0.0;
@@ -766,11 +769,13 @@ group { name: "elm/scroller/base/list_effect";
             image {
                normal: "b_end_effect_bottom_edge_bg.png";
             }
-            color_class: "scroller/default/end_effect/edge_bg/off";
+//            color_class: "scroller/default/end_effect/edge_bg/off";
+            color: 255 255 255 255;
          }
          description { state: "start" 0.0;
             inherit: "default" 0.0;
-            color_class: "scroller/default/end_effect/edge_bg";
+//            color_class: "scroller/default/end_effect/edge_bg";
+            color: 255 255 255 255;
          }
       }
       part { name: "shadow_bottom_bg";
@@ -792,7 +797,8 @@ group { name: "elm/scroller/base/list_effect";
             image {
                normal: "b_end_effect_bottom_bg.png";
             }
-            color_class: "scroller/default/end_effect/bg";
+//            color_class: "scroller/default/end_effect/bg";
+            color: 255 255 255 255;
          }
          description { state: "start" 0.0;
             inherit: "default" 0.0;
index 5c5a4f1..347e64b 100644 (file)
 #include "log.h"
 
 typedef enum _e_scroll_cb_type {
-       SCROLL_NONE,
        SCROLL_EDGE_TOP,
        SCROLL_EDGE_BOTTOM,
-       SCROLL_ANIM_START,
-       SCROLL_ANIM,
-       SCROLL_ANIM_STOP,
+
+       SCROLL_DRAG_START_UP,
+       SCROLL_DRAG_START_DOWN,
+       SCROLL_DRAG_STOP,
 } e_scroll_cb_type;
 
 typedef struct _s_connect_to_car {
@@ -58,62 +58,75 @@ static char *_genlist_set_text_cb(void *data, Evas_Object *obj, const char *part
 
 static void _create_guard_items(void)
 {
-       Elm_Gengrid_Item_Class* itc = elm_genlist_item_class_new();
-       ASSERT_MEMORY(!itc);
+       Elm_Gengrid_Item_Class* itc1 = elm_genlist_item_class_new();
+       ASSERT_MEMORY(!itc1);
 
-       itc->item_style = "title";
-       itc->func.text_get = _genlist_set_text_cb;
+       itc1->item_style = "title";
+       itc1->func.text_get = _genlist_set_text_cb;
 
-       s_info.first = elm_genlist_item_append(s_info.genlist, itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-       s_info.last = elm_genlist_item_append(s_info.genlist, itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       s_info.first = elm_genlist_item_append(s_info.genlist, itc1, "<color=#F0233D font_size=30>Select a car</color>", NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       s_info.last = elm_genlist_item_append(s_info.genlist, itc1, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
 
        elm_genlist_item_select_mode_set(s_info.first, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        elm_genlist_item_select_mode_set(s_info.last, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
 }
 
+static void _job_cb(void *data)
+{
+       Elm_Object_Item *central = elm_genlist_at_xy_item_get(s_info.genlist, 180, 180, NULL);
+
+       if (central == s_info.last || central == s_info.first || elm_genlist_item_next_get(s_info.first) == s_info.last) {
+               return;
+       }
+
+       elm_genlist_item_bring_in(central, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+}
+
 static void _genlist_scroll_cb(void *data, Evas_Object *obj, void *event_info)
 {
        e_scroll_cb_type scroll_cb_type = (e_scroll_cb_type)data;
-       static e_scroll_cb_type scrool_state = false;
-       static e_scroll_cb_type edge_reached = false;
-
+       char *scroll_type_text = "";
+       static Elm_Object_Item *central_item = NULL;
 
        switch (scroll_cb_type) {
                case SCROLL_EDGE_TOP:
-                       edge_reached = SCROLL_EDGE_TOP;
+                       scroll_type_text = "SCROLL_EDGE_TOP";
+                       ecore_job_add(_job_cb, NULL);
                        break;
                case SCROLL_EDGE_BOTTOM:
-                       edge_reached = SCROLL_EDGE_BOTTOM;
-                       break;
-               case SCROLL_ANIM_START:
-                       scrool_state = SCROLL_ANIM_START;
-                       edge_reached = SCROLL_NONE;
-                       break;
-               case SCROLL_ANIM:
-                       scrool_state = SCROLL_ANIM;
-                       break;
-               case SCROLL_ANIM_STOP:
-                       scrool_state = SCROLL_ANIM_STOP;
+                       scroll_type_text = "SCROLL_EDGE_BOTTOM";
+                       ecore_job_add(_job_cb, NULL);
                        break;
-               default:
+               case SCROLL_DRAG_START_UP:
+                       scroll_type_text = "SCROLL_DRAG_START_UP";
+                       central_item = elm_genlist_at_xy_item_get(s_info.genlist, 180, 180, NULL);
+
+                       if (central_item != elm_genlist_item_prev_get(s_info.last)) {
+                               central_item = NULL;
+                       }
+
                        break;
-       }
+               case SCROLL_DRAG_START_DOWN:
+                       scroll_type_text = "SCROLL_DRAG_START_DOWN";
+
+                       central_item = elm_genlist_at_xy_item_get(s_info.genlist, 180, 180, NULL);
 
-       if (edge_reached == SCROLL_EDGE_TOP &&
-                       scrool_state == SCROLL_ANIM_STOP) {
+                       if (central_item != elm_genlist_item_next_get(s_info.first)) {
+                               central_item = NULL;
+                       }
+                       break;
+               case SCROLL_DRAG_STOP:
+                       scroll_type_text = "SCROLL_DRAG_STOP";
 
-               Elm_Object_Item *item = elm_genlist_item_next_get(s_info.first);
-               if (item != s_info.last) {
-                       elm_genlist_item_bring_in(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
-               }
-       } else if (edge_reached == SCROLL_EDGE_BOTTOM &&
-                       scrool_state == SCROLL_ANIM_STOP) {
+                       if (central_item && central_item == elm_genlist_at_xy_item_get(s_info.genlist, 180, 180, NULL)) {
+                               ecore_job_add(_job_cb, NULL);
+                       }
 
-               Elm_Object_Item *item = elm_genlist_item_prev_get(s_info.last);
+                       central_item = NULL;
 
-               if (item != s_info.first) {
-                       elm_genlist_item_bring_in(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
-               }
+                       break;
+               default:
+                       break;
        }
 }
 
@@ -121,8 +134,10 @@ static void _add_scroll_end_callbacks(void)
 {
        evas_object_smart_callback_add(s_info.genlist, "edge,top", _genlist_scroll_cb, (void *)SCROLL_EDGE_TOP);
        evas_object_smart_callback_add(s_info.genlist, "edge,bottom", _genlist_scroll_cb, (void *)SCROLL_EDGE_BOTTOM);
-       evas_object_smart_callback_add(s_info.genlist, "scroll,anim,stop", _genlist_scroll_cb, (void *)SCROLL_ANIM_START);
-       evas_object_smart_callback_add(s_info.genlist, "scroll,anim,start", _genlist_scroll_cb, (void *)SCROLL_ANIM_STOP);
+
+       evas_object_smart_callback_add(s_info.genlist, "drag,start,up", _genlist_scroll_cb, (void *)SCROLL_DRAG_START_UP);
+       evas_object_smart_callback_add(s_info.genlist, "drag,start,down", _genlist_scroll_cb, (void *)SCROLL_DRAG_START_DOWN);
+       evas_object_smart_callback_add(s_info.genlist, "drag,stop", _genlist_scroll_cb, (void *)SCROLL_DRAG_STOP);
 }
 
 static void _create_genlist(Eext_Circle_Surface *circle_surface)
@@ -160,11 +175,9 @@ static void _genlist_item_selected_cb(void *data, Evas_Object *obj, void *event_
 static void _controller_car_selection_cb(void *data)
 {
        char *name = (char *)data;
-       Elm_Widget_Item *it = elm_genlist_item_insert_before(s_info.genlist, s_info.itc, name, NULL,
+       elm_genlist_item_insert_before(s_info.genlist, s_info.itc, name, NULL,
                        s_info.last,
                        ELM_GENLIST_ITEM_NONE, _genlist_item_selected_cb, NULL);
-
-       elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
 }
 
 static void _car_selection_create_gui(Evas_Object *parent, Eext_Circle_Surface *circle_surface)