#define SCROLL_BAR_BG_COLOR_DISABLED_G 45
#define SCROLL_BAR_BG_COLOR_DISABLED_B 45
#define SCROLL_BAR_BG_COLOR_DISABLED_A 63
+//TIZEN_ONLY(24Feb2020): Back To Top Bring In VI
+#define BACKTOTOP_BRINGIN_VI_THRESHOLD 720
+#define BACKTOTOP_BRINGIN_VI_DURATION 0.2
+//
static const char SIGNAL_LOADED[] = "loaded";
static const char SIGNAL_SCROLL[] = "scroll";
//ONEUI1.5(03JUN2019): Update circle genlist on theme change
static const char SIG_THEME_CHANGED[] = "theme,changed";
//
+//TIZEN_ONLY(24Feb2020): Back To Top Bring In VI
+static const char SIGNAL_BACKTOTOP_BRINGIN_VI_HIDE[] = "elm,back_to_top,clipper,hide";
+static const char SIGNAL_BACKTOTOP_BRINGIN_VI_SHOW[] = "elm,back_to_top,clipper,show";
+//
Elm_Scrollable_Smart_Interface_Data* __elm_scrollable_smart_interface_data_get(Eo *obj);
extern void elm_pan_pos_adjust(Eo *obj, Evas_Coord *x, Evas_Coord *y);
}
//TIZEN_ONLY(24Jan2020): Back To Top Feature
-static void
- _eext_circle_object_genlist_first_item_show_cb(void *data, Evas_Object *widget_obj EINA_UNUSED,
- const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
- {
- Eext_Circle_Object *circle_obj = data;
- EEXT_CIRCLE_OBJECT_GENLIST_DATA_GET(circle_obj, widget_data) return;
- EEXT_CIRCLE_OBJECT_GENLIST_SCROLL_IFACE_DATA_GET(circle_obj->widget_object, sid);
+static Eina_Bool
+_eext_circle_object_genlist_backtotop_show_anim_cb(void *data)
+{
+ Evas_Coord ry, rw, rh;
+ Eext_Circle_Object *circle_obj = data;
+ EEXT_CIRCLE_OBJECT_GENLIST_DATA_GET(circle_obj, widget_data) return ECORE_CALLBACK_DONE;
+ EEXT_CIRCLE_OBJECT_GENLIST_SCROLL_IFACE_DATA_GET(circle_obj->widget_object, sid);
+ elm_scroller_region_get(circle_obj->widget_object, NULL, &ry, &rw, &rh);
- if (sid->backtotop_cb)
- {
- sid->backtotop_cb(data, circle_obj->widget_object, NULL);
- return;
- }
+ if (ry > BACKTOTOP_BRINGIN_VI_THRESHOLD)
+ elm_scroller_region_show(circle_obj->widget_object, 0, BACKTOTOP_BRINGIN_VI_THRESHOLD, rw, rh);
+
+ elm_object_signal_emit(circle_obj->widget_object, SIGNAL_BACKTOTOP_BRINGIN_VI_SHOW, "elm");
+ if (sid->backtotop_cb)
+ {
+ sid->backtotop_cb(data, circle_obj->widget_object, NULL);
+ widget_data->backtotop_timer = NULL;
+ return ECORE_CALLBACK_DONE;
+ }
+
+ Elm_Object_Item *first_it = elm_genlist_first_item_get(circle_obj->widget_object);
+ if (!first_it)
+ {
+ widget_data->backtotop_timer = NULL;
+ return ECORE_CALLBACK_DONE;
+ }
- Elm_Object_Item *first_it = elm_genlist_first_item_get(circle_obj->widget_object);
- if (!first_it) return;
+ elm_genlist_item_bring_in(first_it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ widget_data->backtotop_timer = NULL;
+ return ECORE_CALLBACK_DONE;
+}
- elm_genlist_item_bring_in(first_it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
- }
+static void
+_eext_circle_object_genlist_backtotop_show_cb(void *data, Evas_Object *widget_obj EINA_UNUSED,
+ const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
+{
+ Evas_Coord ch;
+ Eext_Circle_Object *circle_obj = data;
+ EEXT_CIRCLE_OBJECT_GENLIST_DATA_GET(circle_obj, widget_data) return;
+ elm_scroller_child_size_get(circle_obj->widget_object, NULL, &ch);
+
+ if (ch > BACKTOTOP_BRINGIN_VI_THRESHOLD)
+ {
+ elm_object_signal_emit(circle_obj->widget_object, SIGNAL_BACKTOTOP_BRINGIN_VI_HIDE, "elm");
+ if (!widget_data->backtotop_timer)
+ widget_data->backtotop_timer = ecore_timer_add(BACKTOTOP_BRINGIN_VI_DURATION,
+ _eext_circle_object_genlist_backtotop_show_anim_cb, data);
+ }
+ else _eext_circle_object_genlist_backtotop_show_anim_cb(data);
+}
//
static void
_eext_circle_object_genlist_change_color_signal_cb(void *data,
EEXT_CIRCLE_OBJECT_GENLIST_DATA_GET(circle_obj, widget_data) return;
if (widget_data->bar_size_y <= 0) return;
+ //TIZEN_ONLY(25Feb2020): Back To Top Bring in VI
+ if (widget_data->backtotop_timer) return;
+ //
widget_data->scrollbar_shown = EINA_TRUE;
if (widget_data->handler)
widget_data->bezel_scrollbar_color_class,
_eext_circle_object_genlist_change_color_signal_cb);
//TIZEN_ONLY(24Jan2020): Back To Top Feature
- edje_object_signal_callback_del(elm_layout_edje_get(circle_obj->widget_object),"elm,state,back_to_top", "elm", _eext_circle_object_genlist_first_item_show_cb);
+ edje_object_signal_callback_del(elm_layout_edje_get(circle_obj->widget_object),"elm,state,back_to_top", "elm", _eext_circle_object_genlist_backtotop_show_cb);
//
if (widget_data->bezel_scrollbar_color_class) eina_stringshare_del(widget_data->bezel_scrollbar_color_class);
//
ecore_timer_del(widget_data->change_flag_timer);
widget_data->change_flag_timer = NULL;
}
+ //TIZEN_ONLY(25Feb2020): Back To Top Bring In VI
+ if (widget_data->backtotop_timer)
+ {
+ ecore_timer_del(widget_data->backtotop_timer);
+ widget_data->backtotop_timer = NULL;
+ }
+ //
_eext_circle_object_genlist_items_index_clear_internal(circle_obj);
_eext_circle_object_genlist_change_color_signal_cb,
circle_obj);
//TIZEN_ONLY(24Jan2020): Back To Top Feature
- edje_object_signal_callback_add(elm_layout_edje_get(circle_obj->widget_object), "elm,state,back_to_top", "elm", _eext_circle_object_genlist_first_item_show_cb, circle_obj);
+ edje_object_signal_callback_add(elm_layout_edje_get(circle_obj->widget_object), "elm,state,back_to_top", "elm", _eext_circle_object_genlist_backtotop_show_cb, circle_obj);
//
//
#define SCROLL_BAR_BG_COLOR_DISABLED_B 45
#define SCROLL_BAR_BG_COLOR_DISABLED_A 63
+//TIZEN_ONLY(24Feb2020): Back To Top Bring In VI
+#define BACKTOTOP_BRINGIN_VI_THRESHOLD 720
+#define BACKTOTOP_BRINGIN_VI_DURATION 0.2
+//
#define SURFACE_WIDTH 360
#define SIG_SCROLLER_RESUME "scroller,resume"
//ONEUI1.5(04JUL2019) : Change dot's color on bezel rotation
//
static const char HANDLER_STYLE[] = "prod/handler";
+//TIZEN_ONLY(24Feb2020): Back To Top Bring In VI
+static const char SIGNAL_BACKTOTOP_BRINGIN_VI_HIDE[] = "elm,back_to_top,clipper,hide";
+static const char SIGNAL_BACKTOTOP_BRINGIN_VI_SHOW[] = "elm,back_to_top,clipper,show";
+//
static const int LEFT = 0;
static const int RIGHT = 1;
static const int UP = 2;
}
//TIZEN_ONLY(24Jan2020): Back To Top Feature
+static Eina_Bool
+_eext_circle_object_scroller_backtotop_show_anim_cb(void *data)
+{
+ Evas_Coord w, h;
+ Evas_Coord ry, rw, rh;
+ Eext_Circle_Object *circle_obj = (Eext_Circle_Object *)data;
+ EEXT_CIRCLE_OBJECT_SCROLLER_DATA_GET(circle_obj, widget_data) return ECORE_CALLBACK_DONE;
+ EEXT_CIRCLE_OBJECT_SCROLLER_SCROLL_IFACE_DATA_GET(circle_obj->widget_object, sid);
+
+ elm_scroller_region_get(circle_obj->widget_object, NULL, &ry, &rw, &rh);
+ if (ry > BACKTOTOP_BRINGIN_VI_THRESHOLD)
+ elm_scroller_region_show(circle_obj->widget_object, 0, BACKTOTOP_BRINGIN_VI_THRESHOLD, rw, rh);
+
+ elm_object_signal_emit(circle_obj->widget_object, SIGNAL_BACKTOTOP_BRINGIN_VI_SHOW, "elm");
+ if (sid->backtotop_cb)
+ {
+ sid->backtotop_cb(data, circle_obj->widget_object, NULL);
+ widget_data->backtotop_timer = NULL;
+ return ECORE_CALLBACK_DONE;
+ }
+
+ elm_scroller_region_get(circle_obj->widget_object, NULL, NULL, &w, &h);
+ elm_scroller_region_bring_in(circle_obj->widget_object, 0, 0, w, h);
+ widget_data->backtotop_timer = NULL;
+ return ECORE_CALLBACK_DONE;
+}
+
static void
_eext_circle_object_scroller_top_cb(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
- {
- Evas_Coord w = 0, h = 0;
- Eext_Circle_Object *circle_obj = (Eext_Circle_Object *)data;
- EEXT_CIRCLE_OBJECT_SCROLLER_SCROLL_IFACE_DATA_GET(circle_obj->widget_object, sid);
-
- if (sid->backtotop_cb)
- {
- sid->backtotop_cb(data, circle_obj->widget_object, NULL);
- return;
- }
+{
+ Evas_Coord ch = 0;
+ Eext_Circle_Object *circle_obj = (Eext_Circle_Object *)data;
+ EEXT_CIRCLE_OBJECT_SCROLLER_DATA_GET(circle_obj, widget_data) return;
- elm_scroller_region_get(circle_obj->widget_object, NULL, NULL, &w, &h);
- elm_scroller_region_bring_in(circle_obj->widget_object, 0, 0, w, h);
+ elm_scroller_child_size_get(circle_obj->widget_object, NULL, &ch);
+ if (ch > BACKTOTOP_BRINGIN_VI_THRESHOLD)
+ {
+ elm_object_signal_emit(circle_obj->widget_object, SIGNAL_BACKTOTOP_BRINGIN_VI_HIDE, "elm");
+ if (!widget_data->backtotop_timer)
+ widget_data->backtotop_timer = ecore_timer_add(BACKTOTOP_BRINGIN_VI_DURATION,
+ _eext_circle_object_scroller_backtotop_show_anim_cb, data);
+ }
+ else _eext_circle_object_scroller_backtotop_show_anim_cb(data);
}
//
ecore_timer_del(data->bar_hide_timer);
data->bar_hide_timer = NULL;
}
+ //TIZEN_ONLY(25Feb2020): Back To Top Bring In VI
+ if (data->backtotop_timer)
+ {
+ ecore_timer_del(data->backtotop_timer);
+ data->backtotop_timer = NULL;
+ }
+ //
free(obj->widget_data);
obj->widget_data = NULL;