forked from enlightenment/efl
Add the smart signals in scroller. "scroll,left", "scroll,right", "scroll,up", "scroll,down".
This commit is contained in:
parent
568edfcb71
commit
5f8af66123
|
@ -1153,3 +1153,7 @@
|
|||
2013-03-13 Tae-Hwan Kim (bluezery)
|
||||
|
||||
* Fix a memory leak in elm_genlist. Return value of elm_genlist_realized_items_get should be freed
|
||||
|
||||
2013-03-15 Jaehwan Kim
|
||||
|
||||
* Add the smart signals in scroller. "scroll,left", "scroll,right", "scroll,up", "scroll,down".
|
||||
|
|
|
@ -49,6 +49,7 @@ Additions:
|
|||
* Add the config ELM_THUMBSCROLL_HOLD_THRESHOLD.
|
||||
* Add elm_naviframe_item_pop_cb_set().
|
||||
* Add elm_widget_newest_focus_order_get for knowing the last object(and its focus order) which got focus.
|
||||
* Add the smart signals in scroller. "scroll,left", "scroll,right", "scroll,up", "scroll,down".
|
||||
|
||||
Improvements:
|
||||
|
||||
|
|
|
@ -1502,8 +1502,6 @@ _elm_scroll_content_pos_set(Eo *obj, void *_pd, va_list *list)
|
|||
edje_object_part_drag_value_set
|
||||
(sid->edje_obj, "elm.dragable.hbar", vx, 0.0);
|
||||
|
||||
if (sig && ((px != x) || (py != y)))
|
||||
edje_object_signal_emit(sid->edje_obj, "elm,action,scroll", "elm");
|
||||
if (!sid->down.bounce_x_animator)
|
||||
{
|
||||
if (((x < minx) && (0 <= sid->down.dx)) ||
|
||||
|
@ -1527,13 +1525,38 @@ _elm_scroll_content_pos_set(Eo *obj, void *_pd, va_list *list)
|
|||
sid->bouncemey = EINA_FALSE;
|
||||
}
|
||||
|
||||
if ((x != px) || (y != py))
|
||||
{
|
||||
if (sid->cb_func.scroll)
|
||||
sid->cb_func.scroll(obj, NULL);
|
||||
}
|
||||
if (sig)
|
||||
{
|
||||
if ((x != px) || (y != py))
|
||||
{
|
||||
if (sid->cb_func.scroll)
|
||||
sid->cb_func.scroll(obj, NULL);
|
||||
edje_object_signal_emit(sid->edje_obj, "elm,action,scroll", "elm");
|
||||
if (x < px)
|
||||
{
|
||||
if (sid->cb_func.scroll_left)
|
||||
sid->cb_func.scroll_left(obj, NULL);
|
||||
edje_object_signal_emit(sid->edje_obj, "elm,action,scroll,left", "elm");
|
||||
}
|
||||
if (x > px)
|
||||
{
|
||||
if (sid->cb_func.scroll_right)
|
||||
sid->cb_func.scroll_right(obj, NULL);
|
||||
edje_object_signal_emit(sid->edje_obj, "elm,action,scroll,right", "elm");
|
||||
}
|
||||
if (y < py)
|
||||
{
|
||||
if (sid->cb_func.scroll_up)
|
||||
sid->cb_func.scroll_up(obj, NULL);
|
||||
edje_object_signal_emit(sid->edje_obj, "elm,action,scroll,up", "elm");
|
||||
}
|
||||
if (y > py)
|
||||
{
|
||||
if (sid->cb_func.scroll_down)
|
||||
sid->cb_func.scroll_down(obj, NULL);
|
||||
edje_object_signal_emit(sid->edje_obj, "elm,action,scroll,down", "elm");
|
||||
}
|
||||
}
|
||||
if (x != px)
|
||||
{
|
||||
if (x == minx)
|
||||
|
@ -3573,6 +3596,38 @@ _elm_scroll_scroll_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
|||
sid->cb_func.scroll = scroll_cb;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_scroll_scroll_left_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
|
||||
Elm_Interface_Scrollable_Cb scroll_left_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
|
||||
sid->cb_func.scroll_left = scroll_left_cb;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_scroll_scroll_right_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
|
||||
Elm_Interface_Scrollable_Cb scroll_right_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
|
||||
sid->cb_func.scroll_right = scroll_right_cb;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_scroll_scroll_up_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
|
||||
Elm_Interface_Scrollable_Cb scroll_up_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
|
||||
sid->cb_func.scroll_up = scroll_up_cb;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_scroll_scroll_down_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
|
||||
Elm_Interface_Scrollable_Cb scroll_down_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
|
||||
sid->cb_func.scroll_down = scroll_down_cb;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_scroll_edge_left_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
|
@ -4165,6 +4220,10 @@ _elm_scrollable_interface_constructor(Eo_Class *klass)
|
|||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_ANIMATE_START_CB_SET), _elm_scroll_animate_start_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_ANIMATE_STOP_CB_SET), _elm_scroll_animate_stop_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_CB_SET), _elm_scroll_scroll_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_LEFT_CB_SET), _elm_scroll_scroll_left_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_RIGHT_CB_SET), _elm_scroll_scroll_right_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_UP_CB_SET), _elm_scroll_scroll_up_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_DOWN_CB_SET), _elm_scroll_scroll_down_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_LEFT_CB_SET), _elm_scroll_edge_left_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_RIGHT_CB_SET), _elm_scroll_edge_right_cb_set),
|
||||
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET), _elm_scroll_edge_top_cb_set),
|
||||
|
@ -4227,6 +4286,10 @@ static const Eo_Op_Description op_desc[] = {
|
|||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_ANIMATE_START_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_ANIMATE_STOP_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_LEFT_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_RIGHT_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_UP_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_DOWN_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_LEFT_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_RIGHT_CB_SET, "description here"),
|
||||
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET, "description here"),
|
||||
|
|
|
@ -157,6 +157,10 @@ enum
|
|||
ELM_SCROLLABLE_INTERFACE_SUB_ID_ANIMATE_START_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_ANIMATE_STOP_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_LEFT_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_RIGHT_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_UP_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_DOWN_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_LEFT_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_RIGHT_CB_SET,
|
||||
ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET,
|
||||
|
@ -298,6 +302,50 @@ enum
|
|||
*/
|
||||
#define elm_scrollable_interface_scroll_cb_set(scroll_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, scroll_cb)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_scroll_left_cb_set
|
||||
* @since 1.8
|
||||
*
|
||||
* No description supplied by the EAPI.
|
||||
*
|
||||
* @param[in] scroll_left_cb
|
||||
*
|
||||
*/
|
||||
#define elm_scrollable_interface_scroll_left_cb_set(scroll_left_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_LEFT_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, scroll_left_cb)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_scroll_right_cb_set
|
||||
* @since 1.8
|
||||
*
|
||||
* No description supplied by the EAPI.
|
||||
*
|
||||
* @param[in] scroll_right_cb
|
||||
*
|
||||
*/
|
||||
#define elm_scrollable_interface_scroll_right_cb_set(scroll_right_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_RIGHT_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, scroll_right_cb)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_scroll_up_cb_set
|
||||
* @since 1.8
|
||||
*
|
||||
* No description supplied by the EAPI.
|
||||
*
|
||||
* @param[in] scroll_up_cb
|
||||
*
|
||||
*/
|
||||
#define elm_scrollable_interface_scroll_up_cb_set(scroll_up_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_UP_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, scroll_up_cb)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_scroll_down_cb_set
|
||||
* @since 1.8
|
||||
*
|
||||
* No description supplied by the EAPI.
|
||||
*
|
||||
* @param[in] scroll_down_cb
|
||||
*
|
||||
*/
|
||||
#define elm_scrollable_interface_scroll_down_cb_set(scroll_down_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_SCROLL_DOWN_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, scroll_down_cb)
|
||||
|
||||
/**
|
||||
* @def elm_scrollable_interface_edge_left_cb_set
|
||||
* @since 1.8
|
||||
|
@ -951,6 +999,10 @@ struct _Elm_Scrollable_Smart_Interface_Data
|
|||
Elm_Interface_Scrollable_Cb animate_start;
|
||||
Elm_Interface_Scrollable_Cb animate_stop;
|
||||
Elm_Interface_Scrollable_Cb scroll;
|
||||
Elm_Interface_Scrollable_Cb scroll_left;
|
||||
Elm_Interface_Scrollable_Cb scroll_right;
|
||||
Elm_Interface_Scrollable_Cb scroll_up;
|
||||
Elm_Interface_Scrollable_Cb scroll_down;
|
||||
Elm_Interface_Scrollable_Cb edge_left;
|
||||
Elm_Interface_Scrollable_Cb edge_right;
|
||||
Elm_Interface_Scrollable_Cb edge_top;
|
||||
|
|
|
@ -11,6 +11,10 @@ EAPI Eo_Op ELM_OBJ_SCROLLER_BASE_ID = EO_NOOP;
|
|||
#define MY_CLASS_NAME "elm_scroller"
|
||||
|
||||
static const char SIG_SCROLL[] = "scroll";
|
||||
static const char SIG_SCROLL_LEFT[] = "scroll,left";
|
||||
static const char SIG_SCROLL_RIGHT[] = "scroll,right";
|
||||
static const char SIG_SCROLL_UP[] = "scroll,up";
|
||||
static const char SIG_SCROLL_DOWN[] = "scroll,down";
|
||||
static const char SIG_SCROLL_ANIM_START[] = "scroll,anim,start";
|
||||
static const char SIG_SCROLL_ANIM_STOP[] = "scroll,anim,stop";
|
||||
static const char SIG_SCROLL_DRAG_START[] = "scroll,drag,start";
|
||||
|
@ -28,6 +32,10 @@ static const char SIG_HBAR_UNPRESS[] = "hbar,unpress";
|
|||
static const Evas_Smart_Cb_Description _smart_callbacks[] =
|
||||
{
|
||||
{SIG_SCROLL, ""},
|
||||
{SIG_SCROLL_LEFT, ""},
|
||||
{SIG_SCROLL_RIGHT, ""},
|
||||
{SIG_SCROLL_UP, ""},
|
||||
{SIG_SCROLL_DOWN, ""},
|
||||
{SIG_SCROLL_ANIM_START, ""},
|
||||
{SIG_SCROLL_ANIM_STOP, ""},
|
||||
{SIG_SCROLL_DRAG_START, ""},
|
||||
|
@ -535,6 +543,34 @@ _scroll_cb(Evas_Object *obj,
|
|||
evas_object_smart_callback_call(obj, SIG_SCROLL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_scroll_left_cb(Evas_Object *obj,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
evas_object_smart_callback_call(obj, SIG_SCROLL_LEFT, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_scroll_right_cb(Evas_Object *obj,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
evas_object_smart_callback_call(obj, SIG_SCROLL_RIGHT, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_scroll_up_cb(Evas_Object *obj,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
evas_object_smart_callback_call(obj, SIG_SCROLL_UP, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_scroll_down_cb(Evas_Object *obj,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
evas_object_smart_callback_call(obj, SIG_SCROLL_DOWN, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_scroll_anim_start_cb(Evas_Object *obj,
|
||||
void *data __UNUSED__)
|
||||
|
@ -735,6 +771,10 @@ _elm_scroller_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
elm_scrollable_interface_edge_top_cb_set(_edge_top_cb),
|
||||
elm_scrollable_interface_edge_bottom_cb_set(_edge_bottom_cb),
|
||||
elm_scrollable_interface_scroll_cb_set(_scroll_cb),
|
||||
elm_scrollable_interface_scroll_left_cb_set(_scroll_left_cb),
|
||||
elm_scrollable_interface_scroll_right_cb_set(_scroll_right_cb),
|
||||
elm_scrollable_interface_scroll_up_cb_set(_scroll_up_cb),
|
||||
elm_scrollable_interface_scroll_down_cb_set(_scroll_down_cb),
|
||||
elm_scrollable_interface_animate_start_cb_set(_scroll_anim_start_cb),
|
||||
elm_scrollable_interface_animate_stop_cb_set(_scroll_anim_stop_cb),
|
||||
elm_scrollable_interface_drag_start_cb_set(_scroll_drag_start_cb),
|
||||
|
|
Loading…
Reference in New Issue