}
}
+//TIZEN_ONLY(24Jan2020): Go 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;
+
+ 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);
+ }
+//
static void
_eext_circle_object_genlist_change_color_signal_cb(void *data,
Evas_Object *widget_obj,
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_genlist_change_color_signal_cb);
+ //TIZEN_ONLY(24Jan2020): Go To Top Feature
+ edje_object_signal_callback_del(elm_layout_edje_get(circle_obj->widget_object),"elm,state,go_to_top", "elm", _eext_circle_object_genlist_first_item_show_cb);
+ //
if (widget_data->bezel_scrollbar_color_class) eina_stringshare_del(widget_data->bezel_scrollbar_color_class);
//
widget_data->bezel_scrollbar_color_class,
_eext_circle_object_genlist_change_color_signal_cb,
circle_obj);
+ //TIZEN_ONLY(24Jan2020): Go To Top Feature
+ edje_object_signal_callback_add(elm_layout_edje_get(circle_obj->widget_object), "elm,state,go_to_top", "elm", _eext_circle_object_genlist_first_item_show_cb, circle_obj);
+ //
//
eext_rotary_object_event_callback_add(circle_obj->widget_object, _rotary_changed_cb, circle_obj);
}
}
+//TIZEN_ONLY(24Jan2020): Go To Top Feature
+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;
+
+ 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);
+ }
+//
+
static void
_update_color_info(Eext_Circle_Object *obj)
{
//ONEUI1.5(04July2019): Support different color with bezel
edje_object_signal_callback_del(elm_layout_edje_get(obj->widget_object), "color_class,set",
data->bezel_scrollbar_color_class, _eext_circle_object_scroller_change_color_signal_cb);
+ //TIZEN_ONLY(24Jan2020): Go To Top Feature
+ edje_object_signal_callback_del(elm_layout_edje_get(obj->widget_object), "elm,state,go_to_top", "elm", _eext_circle_object_scroller_top_cb);
+ //
if (data->bezel_scrollbar_color_class) eina_stringshare_del(data->bezel_scrollbar_color_class);
evas_object_event_callback_del(obj->widget_object, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb);
evas_object_smart_callback_del_full(obj->widget_object, SIGNAL_DEACTIVATED, _eext_circle_object_scroller_deactivated_cb, obj);
edje_object_signal_callback_add(elm_layout_edje_get(obj->widget_object), "color_class,set", data->scrollbar_color_class, _eext_circle_object_scroller_change_color_signal_cb, obj);
edje_object_signal_callback_add(elm_layout_edje_get(obj->widget_object), "color_class,set", data->scrollbar_bg_color_class, _eext_circle_object_scroller_change_color_signal_cb, obj);
+ //TIZEN_ONLY(24Jan2020): Go To Top Feature
+ edje_object_signal_callback_add(elm_layout_edje_get(scroller), "elm,state,go_to_top", "elm", _eext_circle_object_scroller_top_cb, obj);
+ //
//ONEUI1.5(04July2019): Support different color with bezel
edje_object_signal_callback_add(elm_layout_edje_get(obj->widget_object), "color_class,set", data->bezel_scrollbar_color_class, _eext_circle_object_scroller_change_color_signal_cb, obj);
evas_object_smart_callback_add(obj->widget_object, SIGNAL_DEACTIVATED, _eext_circle_object_scroller_deactivated_cb, obj);
LOGE("scroller(%p), obj->main_obj(%p)", scroller, obj->main_obj);
}
+//TIZEN_ONLY(24Jan2020): Go To Top Feature
+static void
+_update_clipper_cb(void *data,
+ Evas_Object *obj,
+ void *event_info EINA_UNUSED)
+{
+ Evas_Object *edje_obj = elm_layout_edje_get(obj);
+ EEXT_CIRCLE_OBJECT_SCROLLER_SCROLL_IFACE_DATA_GET(obj, sid);
+
+ if (sid->gotop_clipper)
+ sid->gotop_clipper = edje_object_part_object_get(edje_obj, "elm.clip.gototop");
+}
+
+EAPI void
+eext_circle_object_scroller_gototop_enable_set(Evas_Object *obj, Eina_Bool enable)
+{
+ if (!obj) return;
+
+ EEXT_CIRCLE_OBJECT_SCROLLER_SCROLL_IFACE_DATA_GET(obj, sid);
+ Evas_Object *edje_obj = elm_layout_edje_get(obj);
+
+ if (enable)
+ {
+ Evas_Object *clipper = edje_object_part_object_get(edje_obj, "elm.clip.gototop");
+ sid->gotop_clipper = clipper;
+ sid->is_gotop_shown = EINA_FALSE;
+ evas_object_smart_callback_add(obj, "theme,changed", _update_clipper_cb, obj);
+ }
+ else
+ {
+ sid->gotop_clipper = NULL;
+ sid->is_gotop_shown = EINA_FALSE;
+ evas_object_smart_callback_del(obj, "theme,changed", _update_clipper_cb);
+ }
+}
+//
+
EAPI Evas_Object *
eext_circle_object_scroller_add(Evas_Object *scroller, Eext_Circle_Surface *surface)
{