}
static void
+_elm_scroll_pan_resized_cb(void *data,
+ Evas *e __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ Evas_Coord w, h;
+ Elm_Scrollable_Smart_Interface_Data *sid = data;
+
+ if (sid->cb_func.content_viewport_resize)
+ {
+ _elm_scroll_content_viewport_size_get(sid->obj, &w, &h);
+ sid->cb_func.content_viewport_resize(sid->obj, w, h);
+ }
+}
+
+static void
_elm_scroll_content_del_cb(void *data,
Evas *e __UNUSED__,
Evas_Object *obj __UNUSED__,
sid->pan_obj = o;
evas_object_smart_callback_add
(o, SIG_CHANGED, _elm_scroll_pan_changed_cb, sid);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE,
+ _elm_scroll_pan_resized_cb, sid);
edje_object_part_swallow(sid->edje_obj, "elm.swallow.content", o);
}
{
evas_object_smart_callback_del
(sid->pan_obj, SIG_CHANGED, _elm_scroll_pan_changed_cb);
+ evas_object_event_callback_del(sid->pan_obj, EVAS_CALLBACK_RESIZE,
+ _elm_scroll_pan_resized_cb);
}
if (sid->extern_pan)
sid->extern_pan = EINA_TRUE;
evas_object_smart_callback_add
(sid->pan_obj, SIG_CHANGED, _elm_scroll_pan_changed_cb, sid);
+ evas_object_event_callback_add(sid->pan_obj, EVAS_CALLBACK_RESIZE,
+ _elm_scroll_pan_resized_cb, sid);
edje_object_part_swallow
(sid->edje_obj, "elm.swallow.content", sid->pan_obj);
}
sid->cb_func.content_min_limit = c_min_limit_cb;
}
+static void
+_elm_scroll_content_viewport_resize_cb_set(Evas_Object *obj,
+ void (*c_viewport_resize_cb)(Evas_Object *obj,
+ Evas_Coord w,
+ Evas_Coord h))
+{
+ ELM_SCROLL_IFACE_DATA_GET_OR_RETURN(obj, sid);
+
+ sid->cb_func.content_viewport_resize = c_viewport_resize_cb;
+}
+
static Eina_Bool
_elm_scroll_momentum_animator_disabled_get(const Evas_Object *obj)
{
_elm_scroll_hbar_press_cb_set,
_elm_scroll_hbar_unpress_cb_set,
_elm_scroll_content_min_limit_cb_set,
+ _elm_scroll_content_viewport_resize_cb_set,
_elm_scroll_content_pos_set,
_elm_scroll_content_pos_get,
_elm_scroll_content_region_show,
}
static void
+_elm_scroller_content_viewport_resize_cb(Evas_Object *obj,
+ Evas_Coord w __UNUSED__,
+ Evas_Coord h __UNUSED__)
+{
+ elm_layout_sizing_eval(obj);
+}
+
+static void
_elm_scroller_smart_add(Evas_Object *obj)
{
Evas_Coord minw, minh;
priv->s_iface->content_min_limit_cb_set
(obj, _elm_scroller_content_min_limit_cb);
+ priv->s_iface->content_viewport_resize_cb_set
+ (obj, _elm_scroller_content_viewport_resize_cb);
}
static void