forked from enlightenment/efl
[elm] Permit multipe object
attachments/detachments from a scrollable iface. SVN revision: 74600
This commit is contained in:
parent
40eacfcb99
commit
1fd2616b4c
|
@ -3024,7 +3024,7 @@ _on_edje_resize(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_scroll_objects_attach(Evas_Object *obj)
|
_scroll_edje_object_attach(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
ELM_SCROLL_IFACE_DATA_GET(obj, sid);
|
ELM_SCROLL_IFACE_DATA_GET(obj, sid);
|
||||||
|
|
||||||
|
@ -3069,6 +3069,12 @@ _elm_scroll_objects_attach(Evas_Object *obj)
|
||||||
edje_object_signal_callback_add
|
edje_object_signal_callback_add
|
||||||
(sid->edje_obj, "drag,page", "elm.dragable.hbar",
|
(sid->edje_obj, "drag,page", "elm.dragable.hbar",
|
||||||
_elm_scroll_edje_drag_h_cb, sid);
|
_elm_scroll_edje_drag_h_cb, sid);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_scroll_event_object_attach(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
ELM_SCROLL_IFACE_DATA_GET(obj, sid);
|
||||||
|
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(sid->event_rect, EVAS_CALLBACK_MOUSE_WHEEL, _elm_scroll_wheel_event_cb,
|
(sid->event_rect, EVAS_CALLBACK_MOUSE_WHEEL, _elm_scroll_wheel_event_cb,
|
||||||
|
@ -3084,6 +3090,73 @@ _elm_scroll_objects_attach(Evas_Object *obj)
|
||||||
_elm_scroll_mouse_move_event_cb, sid);
|
_elm_scroll_mouse_move_event_cb, sid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_scroll_edje_object_detach(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
ELM_SCROLL_IFACE_DATA_GET(obj, sid);
|
||||||
|
|
||||||
|
evas_object_event_callback_del_full
|
||||||
|
(sid->edje_obj, EVAS_CALLBACK_RESIZE, _on_edje_resize, sid);
|
||||||
|
evas_object_event_callback_del_full
|
||||||
|
(sid->edje_obj, EVAS_CALLBACK_MOVE, _on_edje_move, sid);
|
||||||
|
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag", "elm.dragable.vbar", _elm_scroll_edje_drag_v_cb,
|
||||||
|
sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,set", "elm.dragable.vbar",
|
||||||
|
_elm_scroll_edje_drag_v_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,start", "elm.dragable.vbar",
|
||||||
|
_elm_scroll_edje_drag_v_start_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,stop", "elm.dragable.vbar",
|
||||||
|
_elm_scroll_edje_drag_v_stop_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,step", "elm.dragable.vbar",
|
||||||
|
_elm_scroll_edje_drag_v_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,page", "elm.dragable.vbar",
|
||||||
|
_elm_scroll_edje_drag_v_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag", "elm.dragable.hbar", _elm_scroll_edje_drag_h_cb,
|
||||||
|
sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,set", "elm.dragable.hbar",
|
||||||
|
_elm_scroll_edje_drag_h_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,start", "elm.dragable.hbar",
|
||||||
|
_elm_scroll_edje_drag_h_start_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,stop", "elm.dragable.hbar",
|
||||||
|
_elm_scroll_edje_drag_h_stop_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,step", "elm.dragable.hbar",
|
||||||
|
_elm_scroll_edje_drag_h_cb, sid);
|
||||||
|
edje_object_signal_callback_del_full
|
||||||
|
(sid->edje_obj, "drag,page", "elm.dragable.hbar",
|
||||||
|
_elm_scroll_edje_drag_h_cb, sid);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_scroll_event_object_detach(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
ELM_SCROLL_IFACE_DATA_GET(obj, sid);
|
||||||
|
|
||||||
|
evas_object_event_callback_del_full
|
||||||
|
(sid->event_rect, EVAS_CALLBACK_MOUSE_WHEEL, _elm_scroll_wheel_event_cb,
|
||||||
|
sid);
|
||||||
|
evas_object_event_callback_del_full
|
||||||
|
(sid->event_rect, EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
|
_elm_scroll_mouse_down_event_cb, sid);
|
||||||
|
evas_object_event_callback_del_full
|
||||||
|
(sid->event_rect, EVAS_CALLBACK_MOUSE_UP,
|
||||||
|
_elm_scroll_mouse_up_event_cb, sid);
|
||||||
|
evas_object_event_callback_del_full
|
||||||
|
(sid->event_rect, EVAS_CALLBACK_MOUSE_MOVE,
|
||||||
|
_elm_scroll_mouse_move_event_cb, sid);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_scroll_objects_set(Evas_Object *obj,
|
_elm_scroll_objects_set(Evas_Object *obj,
|
||||||
Evas_Object *edje_object,
|
Evas_Object *edje_object,
|
||||||
|
@ -3093,19 +3166,21 @@ _elm_scroll_objects_set(Evas_Object *obj,
|
||||||
|
|
||||||
ELM_SCROLL_IFACE_DATA_GET_OR_RETURN(obj, sid);
|
ELM_SCROLL_IFACE_DATA_GET_OR_RETURN(obj, sid);
|
||||||
|
|
||||||
if (!edje_object) return;
|
if (!edje_object || !hit_rectangle) return;
|
||||||
if (sid->edje_obj) evas_object_del(sid->edje_obj);
|
|
||||||
|
if (sid->edje_obj)
|
||||||
|
_scroll_edje_object_detach(obj);
|
||||||
|
|
||||||
sid->edje_obj = edje_object;
|
sid->edje_obj = edje_object;
|
||||||
|
|
||||||
if (sid->event_rect) evas_object_del(sid->event_rect);
|
if (sid->event_rect)
|
||||||
|
_scroll_event_object_detach(obj);
|
||||||
|
|
||||||
sid->event_rect = hit_rectangle;
|
sid->event_rect = hit_rectangle;
|
||||||
evas_object_repeat_events_set(hit_rectangle, EINA_TRUE);
|
evas_object_repeat_events_set(hit_rectangle, EINA_TRUE);
|
||||||
|
|
||||||
_elm_scroll_objects_attach(obj);
|
_scroll_edje_object_attach(obj);
|
||||||
|
_scroll_event_object_attach(obj);
|
||||||
edje_object_scale_set
|
|
||||||
(sid->edje_obj, elm_widget_scale_get(sid->obj) *
|
|
||||||
elm_config_scale_get());
|
|
||||||
|
|
||||||
mw = mh = -1;
|
mw = mh = -1;
|
||||||
elm_coords_finger_size_adjust(1, &mw, 1, &mh);
|
elm_coords_finger_size_adjust(1, &mw, 1, &mh);
|
||||||
|
|
Loading…
Reference in New Issue