From: HyukSoon Choi Date: Thu, 9 Apr 2020 07:50:08 +0000 (+0900) Subject: gengrid: Support different color with bezel X-Git-Tag: submit/tizen/20200417.234115~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5e38adbe7e60ea3c1c111ff9dc0d92e50b41f088;p=platform%2Fcore%2Fuifw%2Fefl-ext.git gengrid: Support different color with bezel Change-Id: I7ff46ded4d28b218e1d89bd936cb9866390240c7 Signed-off-by: HyukSoon Choi --- diff --git a/inc/wearable/circle/efl_extension_circle_private.h b/inc/wearable/circle/efl_extension_circle_private.h index 9de0f57..ee7a270 100644 --- a/inc/wearable/circle/efl_extension_circle_private.h +++ b/inc/wearable/circle/efl_extension_circle_private.h @@ -322,6 +322,11 @@ struct _Eext_Circle_Object_Gengrid_Data { Eext_Circle_Color bg_color; Eext_Circle_Color disabled_color; Eext_Circle_Color disabled_bg_color; + //ONEUI1.5(20200409): Support different color with bezel + Eext_Circle_Color bezel_color; + Eina_Stringshare *bezel_scrollbar_color_class; + Eina_Bool bezel_on : 1; + // int current_phase; diff --git a/src/wearable/circle/efl_extension_circle_object_gengrid.c b/src/wearable/circle/efl_extension_circle_object_gengrid.c index 4c4cb7a..92fec70 100644 --- a/src/wearable/circle/efl_extension_circle_object_gengrid.c +++ b/src/wearable/circle/efl_extension_circle_object_gengrid.c @@ -23,7 +23,6 @@ #define VERTICAL_BAR_ANGLE_RANGE 60.0 #define VERTICAL_BAR_ANGLE_MAX_SIZE 60.0 #define VERTICAL_BAR_ANGLE_MIN_SIZE 6.0 -#define VERTICAL_BAR_TRANSIT_TIME 0.2 #define VERTICAL_BAR_HIDE_WAITTING_TIME 0.2 #define VERTICAL_BAR_HIDE_WAITTING_TIME_ON_INITIALIZING 1.0 #define VERTICAL_BAR_WIDTH_SIZE 10 @@ -33,12 +32,15 @@ #define HORIZONTAL_BAR_ANGLE_RANGE 60.0 #define HORIZONTAL_BAR_ANGLE_MAX_SIZE 60.0 #define HORIZONTAL_BAR_ANGLE_MIN_SIZE 6.0 -#define HORIZONTAL_BAR_TRANSIT_TIME 0.2 #define HORIZONTAL_BAR_HIDE_WAITTING_TIME 0.2 #define HORIZONTAL_BAR_HIDE_WAITTING_TIME_ON_INITIALIZING 1.0 #define HORIZONTAL_BAR_WIDTH_SIZE 10 #define HORIZONTAL_BAR_RADIUS_SIZE 174 // (180 - 6) +//ONEUI1.5(20200409): Support different color with bezel +#define SCROLL_BAR_TRANSIT_TIME 0.2 +// + #define DETENT_SCROLL_DISTANCE_RATE 0.4 #define ROTARY_EVENT_TIME_STAMP_THRESHOLD 500 @@ -88,6 +90,9 @@ static const char SIG_BRING_IN_ITEM_ADJUSTED[] = "bring_in,item,adjusted"; #define GENGRID_ITEM_NAME "default" #define GENGRID_BG_ITEM_NAME "scroll,bg" +//ONEUI1.5(20200409): Support different color with bezel +#define STR_DUP(x) x ? (char *)eina_stringshare_add(x) : NULL +// static void _eext_circle_object_gengrid_region_show(Eext_Circle_Object *circle_obj, @@ -267,6 +272,9 @@ _rotary_changed_cb(void *data, return EINA_TRUE; } + //ONEUI1.5(20200409): Support different color with bezel + widget_data->bezel_on = EINA_TRUE; + // if (obj == circle_obj->main_obj) { @@ -299,6 +307,7 @@ static void _eext_circle_object_gengrid_bg_color_set(Eext_Circle_Object *circle_obj) { EEXT_CIRCLE_OBJECT_GENGRID_DATA_GET(circle_obj, widget_data) return; + int a; edje_object_color_class_get(elm_layout_edje_get(circle_obj->widget_object), widget_data->scrollbar_bg_color_class, @@ -307,17 +316,33 @@ _eext_circle_object_gengrid_bg_color_set(Eext_Circle_Object *circle_obj) &widget_data->bg_color.b, &widget_data->bg_color.a, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - _eext_circle_object_item_color_set(widget_data->bg_item, - widget_data->bg_color.r, - widget_data->bg_color.g, - widget_data->bg_color.b, - widget_data->bg_color.a); + + //ONEUI1.5(20200409): Fix VI effect logic about hide + _eext_circle_object_item_color_get(widget_data->bg_item, NULL, NULL, NULL, &a); + if (!a) + { + _eext_circle_object_item_color_set(widget_data->bg_item, + widget_data->bg_color.r, + widget_data->bg_color.g, + widget_data->bg_color.b, + 0); + } + // + else + { + _eext_circle_object_item_color_set(widget_data->bg_item, + widget_data->bg_color.r, + widget_data->bg_color.g, + widget_data->bg_color.b, + widget_data->bg_color.a); + } } static void _eext_circle_object_gengrid_line_color_set(Eext_Circle_Object *circle_obj) { EEXT_CIRCLE_OBJECT_GENGRID_DATA_GET(circle_obj, widget_data) return; + int a; edje_object_color_class_get(elm_layout_edje_get(circle_obj->widget_object), widget_data->scrollbar_color_class, @@ -326,11 +351,26 @@ _eext_circle_object_gengrid_line_color_set(Eext_Circle_Object *circle_obj) &widget_data->color.b, &widget_data->color.a, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - _eext_circle_object_item_color_set(widget_data->item, - widget_data->color.r, - widget_data->color.g, - widget_data->color.b, - widget_data->color.a); + + //ONEUI1.5(20200409): Fix VI effect logic about hide + _eext_circle_object_item_color_get(widget_data->item, NULL, NULL, NULL, &a); + if (!a) + { + _eext_circle_object_item_color_set(widget_data->item, + widget_data->color.r, + widget_data->color.g, + widget_data->color.b, + 0); + } + // + else + { + _eext_circle_object_item_color_set(widget_data->item, + widget_data->color.r, + widget_data->color.g, + widget_data->color.b, + widget_data->color.a); + } } static void @@ -342,9 +382,21 @@ _eext_circle_object_gengrid_change_color_signal_cb(void *data, Eext_Circle_Object *circle_obj = data; EEXT_CIRCLE_OBJECT_GENGRID_DATA_GET(circle_obj, widget_data) return; - if(!strcmp(source, widget_data->scrollbar_bg_color_class)) + //ONEUI1.5(20200409): Support different color with bezel + if (widget_data->bezel_scrollbar_color_class && !strcmp(source, widget_data->bezel_scrollbar_color_class)) + { + edje_object_color_class_get(elm_layout_edje_get(circle_obj->widget_object), + widget_data->bezel_scrollbar_color_class, + &widget_data->bezel_color.r, + &widget_data->bezel_color.g, + &widget_data->bezel_color.b, + &widget_data->bezel_color.a, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + } + // + else if (widget_data->scrollbar_bg_color_class && !strcmp(source, widget_data->scrollbar_bg_color_class)) _eext_circle_object_gengrid_bg_color_set(circle_obj); - else if (!strcmp(source, widget_data->scrollbar_color_class)) + else if (widget_data->scrollbar_color_class && !strcmp(source, widget_data->scrollbar_color_class)) _eext_circle_object_gengrid_line_color_set(circle_obj); } @@ -456,21 +508,38 @@ _eext_circle_object_gengrid_scrollbar_policy_hide_cb(void *data) if (!widget_data->scrollbar_initializing) { - EINA_LIST_FOREACH(circle_obj->items, l, item) + //ONEUI1.5(20200409): Fix VI effect logic about hide + if ((!horizontal && widget_data->bar_size_y > 0.0) || (horizontal && widget_data->bar_size_x > 0.0)) { - if (!horizontal && widget_data->bar_size_y > 0.0) - _eext_circle_object_item_color_transit_set(item, - VERTICAL_BAR_TRANSIT_TIME, - 0, 0, 0, 0, - EINA_TRUE, - 0.25, 0.46, 0.45, 1.0); - else if (horizontal && widget_data->bar_size_x > 0.0) - _eext_circle_object_item_color_transit_set(item, - HORIZONTAL_BAR_TRANSIT_TIME, - 0, 0, 0, 0, - EINA_TRUE, - 0.25, 0.46, 0.45, 1.0); + if (widget_data->bezel_on) + { + _eext_circle_object_item_color_transit_set(widget_data->item, SCROLL_BAR_TRANSIT_TIME, + widget_data->bezel_color.r, + widget_data->bezel_color.g, + widget_data->bezel_color.b, + 0, + EINA_TRUE, + 0.0, 0.0, 1.0, 1.0); + } + else + { + _eext_circle_object_item_color_transit_set(widget_data->item, SCROLL_BAR_TRANSIT_TIME, + widget_data->color.r, + widget_data->color.g, + widget_data->color.b, + 0, + EINA_TRUE, + 0.0, 0.0, 1.0, 1.0); + } + _eext_circle_object_item_color_transit_set(widget_data->bg_item, SCROLL_BAR_TRANSIT_TIME, + widget_data->bg_color.r, + widget_data->bg_color.g, + widget_data->bg_color.b, + 0, + EINA_TRUE, + 0.0, 0.0, 1.0, 1.0); } + // } if (widget_data->bar_hide_timer) @@ -492,11 +561,28 @@ _eext_circle_object_gengrid_scrollbar_showing(Eext_Circle_Object *circle_obj, if ((horizontal && (widget_data->bar_size_x <= 0)) || (!horizontal && (widget_data->bar_size_y <= 0))) return; - _eext_circle_object_item_color_set(widget_data->item, - widget_data->color.r, - widget_data->color.g, - widget_data->color.b, - widget_data->color.a); + //ONEUI1.5(20200409): Support different color with bezel + if (widget_data->bezel_on) + { + _eext_circle_object_item_color_transit_set(widget_data->item, SCROLL_BAR_TRANSIT_TIME, + widget_data->bezel_color.r, + widget_data->bezel_color.g, + widget_data->bezel_color.b, + widget_data->bezel_color.a, + EINA_TRUE, + 0.0, 0.0, 1.0, 1.0); + } + else + { + _eext_circle_object_item_color_transit_set(widget_data->item, SCROLL_BAR_TRANSIT_TIME, + widget_data->color.r, + widget_data->color.g, + widget_data->color.b, + widget_data->color.a, + EINA_TRUE, + 0.0, 0.0, 1.0, 1.0); + } + // _eext_circle_object_item_color_set(widget_data->bg_item, widget_data->bg_color.r, widget_data->bg_color.g, @@ -727,7 +813,7 @@ _eext_circle_object_gengrid_item_deleted_cb(void *data, Elm_Object_Item* delted_item = (Elm_Object_Item*)event_info; - if(widget_data->current_item == delted_item) + if (widget_data->current_item == delted_item) { widget_data->current_item = NULL; } @@ -744,6 +830,20 @@ _eext_circle_object_gengrid_bring_in_item_adjusted_cb(void *data, widget_data->current_item = (Elm_Object_Item*)event_info; } +//ONEUI1.5(20200409): Support different color with bezel +static void +_eext_circle_object_gengrid_drag_cb(void *data, + Evas *evas, + Evas_Object *widget_obj, + void *event_info) +{ + Eext_Circle_Object *circle_obj = data; + EEXT_CIRCLE_OBJECT_GENGRID_DATA_GET(circle_obj, widget_data) return; + + widget_data->bezel_on = EINA_FALSE; +} +// + static void _eext_circle_object_gengrid_del_cb(Eext_Circle_Object *circle_obj) { @@ -759,9 +859,22 @@ _eext_circle_object_gengrid_del_cb(Eext_Circle_Object *circle_obj) evas_object_smart_callback_del_full(circle_obj->widget_object, SIGNAL_LOADED, _eext_circle_object_gengrid_loaded_cb, circle_obj); evas_object_smart_callback_del_full(circle_obj->widget_object, SIGNAL_ITEM_DELETED, _eext_circle_object_gengrid_item_deleted_cb, circle_obj); evas_object_smart_callback_del_full(circle_obj->widget_object, SIG_BRING_IN_ITEM_ADJUSTED, _eext_circle_object_gengrid_bring_in_item_adjusted_cb, circle_obj); + //ONEUI1.5(20200409): Support different color with bezel + evas_object_event_callback_del(circle_obj->widget_object, EVAS_CALLBACK_MOUSE_MOVE, _eext_circle_object_gengrid_drag_cb); + // edje_object_signal_callback_del(elm_layout_edje_get(circle_obj->widget_object), "color_class,set", widget_data->scrollbar_color_class, _eext_circle_object_gengrid_change_color_signal_cb); edje_object_signal_callback_del(elm_layout_edje_get(circle_obj->widget_object), "color_class,set", widget_data->scrollbar_bg_color_class, _eext_circle_object_gengrid_change_color_signal_cb); + //ONEUI1.5(20200409): Support different color with bezel + if (widget_data->scrollbar_color_class) eina_stringshare_del(widget_data->scrollbar_color_class); + if (widget_data->scrollbar_bg_color_class) eina_stringshare_del(widget_data->scrollbar_bg_color_class); + + edje_object_signal_callback_del(elm_layout_edje_get(circle_obj->widget_object), "color_class,set", + widget_data->bezel_scrollbar_color_class, + _eext_circle_object_gengrid_change_color_signal_cb); + if (widget_data->bezel_scrollbar_color_class) eina_stringshare_del(widget_data->bezel_scrollbar_color_class); + // + if (widget_data->bar_hide_timer) { ecore_timer_del(widget_data->bar_hide_timer); @@ -779,7 +892,6 @@ _eext_circle_object_gengrid_del_cb(Eext_Circle_Object *circle_obj) widget_data->change_flag_timer = NULL; } - EINA_LIST_FREE(widget_data->rotary_times, rotary_time) free(rotary_time); @@ -824,6 +936,23 @@ _update_color_info(Eext_Circle_Object *obj) widget_data->bg_color.g = g; widget_data->bg_color.b = b; widget_data->bg_color.a = a; + + //ONEUI1.5(20200409): Support different color with bezel + if (!edje_object_color_class_get(elm_layout_edje_get(obj->widget_object), + widget_data->bezel_scrollbar_color_class, + &r, &g, &b, &a, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)) + { + r = SCROLL_BAR_COLOR_R; + g = SCROLL_BAR_COLOR_G; + b = SCROLL_BAR_COLOR_B; + a = SCROLL_BAR_COLOR_A; + } + widget_data->bezel_color.r = r; + widget_data->bezel_color.g = g; + widget_data->bezel_color.b = b; + widget_data->bezel_color.a = a; + // } static void @@ -846,15 +975,26 @@ _eext_circle_object_gengrid_init(Eext_Circle_Object *circle_obj, widget_data->policy_v = ELM_SCROLLER_POLICY_AUTO; widget_data->scrollbar_initializing = EINA_FALSE; - widget_data->scrollbar_color_class = edje_object_data_get(elm_layout_edje_get(gengrid), "bar_color_class"); - widget_data->scrollbar_bg_color_class = edje_object_data_get(elm_layout_edje_get(gengrid), "bar_bg_color_class"); - + //ONEUI1.5(20200409): Support different color with bezel + widget_data->bezel_scrollbar_color_class = STR_DUP(edje_object_data_get(elm_layout_edje_get(gengrid), "bezel_bar_color_class")); + widget_data->scrollbar_color_class = STR_DUP(edje_object_data_get(elm_layout_edje_get(gengrid), "bar_color_class")); + widget_data->scrollbar_bg_color_class = STR_DUP(edje_object_data_get(elm_layout_edje_get(gengrid), "bar_bg_color_class")); + + evas_object_event_callback_priority_add(gengrid, EVAS_CALLBACK_MOUSE_MOVE, EVAS_CALLBACK_PRIORITY_BEFORE, + _eext_circle_object_gengrid_drag_cb, circle_obj); + // circle_obj->widget_data = (void *)widget_data; _update_color_info(circle_obj); widget_data->bg_item = _eext_circle_object_item_new(); _eext_circle_object_item_name_set(widget_data->bg_item, GENGRID_BG_ITEM_NAME); - _eext_circle_object_item_color_set(widget_data->bg_item, 0, 0, 0, 0); + //ONEUI1.5(20200409): Support different color with bezel + _eext_circle_object_item_color_set(widget_data->bg_item, + widget_data->bg_color.r, + widget_data->bg_color.g, + widget_data->bg_color.b, + 0); + // if (elm_gengrid_horizontal_get(gengrid)) { _eext_circle_object_item_angle_set(widget_data->bg_item, HORIZONTAL_BAR_ANGLE_MAX_SIZE); @@ -873,7 +1013,13 @@ _eext_circle_object_gengrid_init(Eext_Circle_Object *circle_obj, widget_data->item = _eext_circle_object_item_new(); _eext_circle_object_item_name_set(widget_data->item, GENGRID_ITEM_NAME); - _eext_circle_object_item_color_set(widget_data->item, 0, 0, 0, 0); + //ONEUI1.5(20200409): Support different color with bezel + _eext_circle_object_item_color_set(widget_data->item, + widget_data->color.r, + widget_data->color.g, + widget_data->color.b, + 0); + // if (elm_gengrid_horizontal_get(gengrid)) { _eext_circle_object_item_angle_set(widget_data->item, HORIZONTAL_BAR_ANGLE_MAX_SIZE); @@ -903,6 +1049,12 @@ _eext_circle_object_gengrid_init(Eext_Circle_Object *circle_obj, evas_object_smart_callback_add(circle_obj->widget_object, SIG_BRING_IN_ITEM_ADJUSTED, _eext_circle_object_gengrid_bring_in_item_adjusted_cb, circle_obj); edje_object_signal_callback_add(elm_layout_edje_get(circle_obj->widget_object), "color_class,set", widget_data->scrollbar_color_class, _eext_circle_object_gengrid_change_color_signal_cb, circle_obj); edje_object_signal_callback_add(elm_layout_edje_get(circle_obj->widget_object), "color_class,set", widget_data->scrollbar_bg_color_class, _eext_circle_object_gengrid_change_color_signal_cb, circle_obj); + //ONEUI1.5(20200409): Support different color with bezel + edje_object_signal_callback_add(elm_layout_edje_get(circle_obj->widget_object), "color_class,set", + widget_data->bezel_scrollbar_color_class, + _eext_circle_object_gengrid_change_color_signal_cb, + circle_obj); + // eext_rotary_object_event_callback_add(circle_obj->widget_object, _rotary_changed_cb, circle_obj); }