#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";
}
}
rect { "bg"; scale;
desc { "default";
color: 0 0 0 0;
-// color_class: "genlist_item/1text/bg";
}
}
spacer { "elm.padding.left"; scale;
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";
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";
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";
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";
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;
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";
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;
#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 {
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;
}
}
{
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)
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)