#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
#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
#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,
return EINA_TRUE;
}
+ //ONEUI1.5(20200409): Support different color with bezel
+ widget_data->bezel_on = EINA_TRUE;
+ //
if (obj == circle_obj->main_obj)
{
_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,
&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,
&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
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);
}
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)
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,
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;
}
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)
{
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);
widget_data->change_flag_timer = NULL;
}
-
EINA_LIST_FREE(widget_data->rotary_times, rotary_time)
free(rotary_time);
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
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);
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);
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);
}