Add smart callback signals of a scroller. "vbar,drag", "vbar,press", "vbar,unpress", "hbar,drag", "hbar,press", "hbar,unpress".

SVN revision: 83703
This commit is contained in:
Jaehwan Kim 2013-02-07 06:13:31 +00:00
parent e259a3b645
commit fb6356fc58
8 changed files with 408 additions and 5 deletions

View File

@ -980,3 +980,7 @@
2013-02-07 WooHyun Jung 2013-02-07 WooHyun Jung
* elm_entry_single_line_set should not change cnp_mode when PLAINTEXT mode. * elm_entry_single_line_set should not change cnp_mode when PLAINTEXT mode.
2013-02-07 Jaehwan Kim
* Add smart callback signals of a scroller. "vbar,drag", "vbar,press", "vbar,unpress", "hbar,drag", "hbar,press", "hbar,unpress".

View File

@ -32,6 +32,7 @@ Additions:
* Add "highlighted" and "unhighlighted" callbacks to list, genlist, and gengrid. * Add "highlighted" and "unhighlighted" callbacks to list, genlist, and gengrid.
* Add elm_index_delay_change_time_set/get for changing delay change time in index. * Add elm_index_delay_change_time_set/get for changing delay change time in index.
* Add elm_index smart callback - "language,changed". * Add elm_index smart callback - "language,changed".
* Add smart callback signals of a scroller. "vbar,drag", "vbar,press", "vbar,unpress", "hbar,drag", "hbar,press", "hbar,unpress".
Improvements: Improvements:

View File

@ -592,6 +592,16 @@ externals.external: "elm";
transition: LINEAR 1.0; \ transition: LINEAR 1.0; \
target: "sb_vbar_clip"; \ target: "sb_vbar_clip"; \
} \ } \
program { name: "sb_vbar_press"; \
signal: "mouse,down,1"; \
source: "elm.dragable.vbar"; \
action: SIGNAL_EMIT "elm,vbar,press" "elm"; \
} \
program { name: "sb_vbar_unpress"; \
signal: "mouse,up,1"; \
source: "elm.dragable.vbar"; \
action: SIGNAL_EMIT "elm,vbar,unpress" "elm"; \
} \
program { name: "sb_vbar_a1_down"; \ program { name: "sb_vbar_a1_down"; \
signal: "mouse,down,1"; \ signal: "mouse,down,1"; \
source: "sb_vbar_a1"; \ source: "sb_vbar_a1"; \
@ -692,6 +702,16 @@ externals.external: "elm";
transition: LINEAR 1.0; \ transition: LINEAR 1.0; \
target: "sb_hbar_clip"; \ target: "sb_hbar_clip"; \
} \ } \
program { name: "sb_hbar_press"; \
signal: "mouse,down,1"; \
source: "elm.dragable.hbar"; \
action: SIGNAL_EMIT "elm,hbar,press" "elm"; \
} \
program { name: "sb_hbar_unpress"; \
signal: "mouse,up,1"; \
source: "elm.dragable.hbar"; \
action: SIGNAL_EMIT "elm,hbar,unpress" "elm"; \
} \
program { name: "sb_hbar_a1_down"; \ program { name: "sb_hbar_a1_down"; \
signal: "mouse,down,1"; \ signal: "mouse,down,1"; \
source: "sb_hbar_a1"; \ source: "sb_hbar_a1"; \

View File

@ -386,6 +386,16 @@ group { name: "elm/scroller/base/default";
transition: LINEAR 0.5; transition: LINEAR 0.5;
target: "sb_vbar_clip"; target: "sb_vbar_clip";
} }
program { name: "sb_vbar_press";
signal: "mouse,down,1";
source: "elm.dragable.vbar";
action: SIGNAL_EMIT "elm,vbar,press" "elm";
}
program { name: "sb_vbar_unpress";
signal: "mouse,up,1";
source: "elm.dragable.vbar";
action: SIGNAL_EMIT "elm,vbar,unpress" "elm";
}
program { name: "hbar_show"; program { name: "hbar_show";
signal: "elm,action,show,hbar"; signal: "elm,action,show,hbar";
@ -443,6 +453,16 @@ group { name: "elm/scroller/base/default";
transition: LINEAR 0.5; transition: LINEAR 0.5;
target: "sb_hbar_clip"; target: "sb_hbar_clip";
} }
program { name: "sb_hbar_press";
signal: "mouse,down,1";
source: "elm.dragable.hbar";
action: SIGNAL_EMIT "elm,hbar,press" "elm";
}
program { name: "sb_hbar_unpress";
signal: "mouse,up,1";
source: "elm.dragable.hbar";
action: SIGNAL_EMIT "elm,hbar,unpress" "elm";
}
program { name: "scroll"; program { name: "scroll";
signal: "elm,action,scroll"; signal: "elm,action,scroll";

View File

@ -54,6 +54,12 @@ static const char SIG_EDGE_TOP[] = "edge,top";
static const char SIG_EDGE_BOTTOM[] = "edge,bottom"; static const char SIG_EDGE_BOTTOM[] = "edge,bottom";
static const char SIG_EDGE_LEFT[] = "edge,left"; static const char SIG_EDGE_LEFT[] = "edge,left";
static const char SIG_EDGE_RIGHT[] = "edge,right"; static const char SIG_EDGE_RIGHT[] = "edge,right";
static const char SIG_VBAR_DRAG[] = "vbar,drag";
static const char SIG_VBAR_PRESS[] = "vbar,press";
static const char SIG_VBAR_UNPRESS[] = "vbar,unpress";
static const char SIG_HBAR_DRAG[] = "hbar,drag";
static const char SIG_HBAR_PRESS[] = "hbar,press";
static const char SIG_HBAR_UNPRESS[] = "hbar,unpress";
static const char SIG_MULTI_SWIPE_LEFT[] = "multi,swipe,left"; static const char SIG_MULTI_SWIPE_LEFT[] = "multi,swipe,left";
static const char SIG_MULTI_SWIPE_RIGHT[] = "multi,swipe,right"; static const char SIG_MULTI_SWIPE_RIGHT[] = "multi,swipe,right";
static const char SIG_MULTI_SWIPE_UP[] = "multi,swipe,up"; static const char SIG_MULTI_SWIPE_UP[] = "multi,swipe,up";
@ -95,6 +101,12 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{SIG_EDGE_BOTTOM, ""}, {SIG_EDGE_BOTTOM, ""},
{SIG_EDGE_LEFT, ""}, {SIG_EDGE_LEFT, ""},
{SIG_EDGE_RIGHT, ""}, {SIG_EDGE_RIGHT, ""},
{SIG_VBAR_DRAG, ""},
{SIG_VBAR_PRESS, ""},
{SIG_VBAR_UNPRESS, ""},
{SIG_HBAR_DRAG, ""},
{SIG_HBAR_PRESS, ""},
{SIG_HBAR_UNPRESS, ""},
{SIG_MULTI_SWIPE_LEFT, ""}, {SIG_MULTI_SWIPE_LEFT, ""},
{SIG_MULTI_SWIPE_RIGHT, ""}, {SIG_MULTI_SWIPE_RIGHT, ""},
{SIG_MULTI_SWIPE_UP, ""}, {SIG_MULTI_SWIPE_UP, ""},
@ -4508,6 +4520,48 @@ _edge_bottom_cb(Evas_Object *obj,
evas_object_smart_callback_call(obj, SIG_EDGE_BOTTOM, NULL); evas_object_smart_callback_call(obj, SIG_EDGE_BOTTOM, NULL);
} }
static void
_vbar_drag_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_VBAR_DRAG, NULL);
}
static void
_vbar_press_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_VBAR_PRESS, NULL);
}
static void
_vbar_unpress_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_VBAR_UNPRESS, NULL);
}
static void
_hbar_drag_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_HBAR_DRAG, NULL);
}
static void
_hbar_press_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_HBAR_PRESS, NULL);
}
static void
_hbar_unpress_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_HBAR_UNPRESS, NULL);
}
static void static void
_decorate_item_realize(Elm_Gen_Item *it) _decorate_item_realize(Elm_Gen_Item *it)
{ {
@ -4673,7 +4727,13 @@ _elm_genlist_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
elm_scrollable_interface_edge_left_cb_set(_edge_left_cb), elm_scrollable_interface_edge_left_cb_set(_edge_left_cb),
elm_scrollable_interface_edge_right_cb_set(_edge_right_cb), elm_scrollable_interface_edge_right_cb_set(_edge_right_cb),
elm_scrollable_interface_edge_top_cb_set(_edge_top_cb), elm_scrollable_interface_edge_top_cb_set(_edge_top_cb),
elm_scrollable_interface_edge_bottom_cb_set(_edge_bottom_cb)); elm_scrollable_interface_edge_bottom_cb_set(_edge_bottom_cb),
elm_scrollable_interface_vbar_drag_cb_set(_vbar_drag_cb),
elm_scrollable_interface_vbar_press_cb_set(_vbar_press_cb),
elm_scrollable_interface_vbar_unpress_cb_set(_vbar_unpress_cb),
elm_scrollable_interface_hbar_drag_cb_set(_hbar_drag_cb),
elm_scrollable_interface_hbar_press_cb_set(_hbar_press_cb),
elm_scrollable_interface_hbar_unpress_cb_set(_hbar_unpress_cb));
priv->mode = ELM_LIST_SCROLL; priv->mode = ELM_LIST_SCROLL;
priv->max_items_per_block = MAX_ITEMS_PER_BLOCK; priv->max_items_per_block = MAX_ITEMS_PER_BLOCK;

View File

@ -959,6 +959,44 @@ _elm_scroll_anim_stop(Elm_Scrollable_Smart_Interface_Data *sid)
sid->cb_func.animate_stop(sid->obj, NULL); sid->cb_func.animate_stop(sid->obj, NULL);
} }
static void
_elm_scroll_vbar_drag_cb(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Elm_Scrollable_Smart_Interface_Data *sid = data;
if (sid->cb_func.vbar_drag)
sid->cb_func.vbar_drag(sid->obj, NULL);
_elm_scroll_scroll_bar_read_and_update(sid);
}
static void
_elm_scroll_vbar_press_cb(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Elm_Scrollable_Smart_Interface_Data *sid = data;
if (sid->cb_func.vbar_press)
sid->cb_func.vbar_press(sid->obj, NULL);
}
static void
_elm_scroll_vbar_unpress_cb(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Elm_Scrollable_Smart_Interface_Data *sid = data;
if (sid->cb_func.vbar_unpress)
sid->cb_func.vbar_unpress(sid->obj, NULL);
}
static void static void
_elm_scroll_edje_drag_v_start_cb(void *data, _elm_scroll_edje_drag_v_start_cb(void *data,
Evas_Object *obj __UNUSED__, Evas_Object *obj __UNUSED__,
@ -996,6 +1034,44 @@ _elm_scroll_edje_drag_v_cb(void *data,
_elm_scroll_scroll_bar_read_and_update(sid); _elm_scroll_scroll_bar_read_and_update(sid);
} }
static void
_elm_scroll_hbar_drag_cb(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Elm_Scrollable_Smart_Interface_Data *sid = data;
if (sid->cb_func.hbar_drag)
sid->cb_func.hbar_drag(sid->obj, NULL);
_elm_scroll_scroll_bar_read_and_update(sid);
}
static void
_elm_scroll_hbar_press_cb(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Elm_Scrollable_Smart_Interface_Data *sid = data;
if (sid->cb_func.hbar_press)
sid->cb_func.hbar_press(sid->obj, NULL);
}
static void
_elm_scroll_hbar_unpress_cb(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Elm_Scrollable_Smart_Interface_Data *sid = data;
if (sid->cb_func.hbar_unpress)
sid->cb_func.hbar_unpress(sid->obj, NULL);
}
static void static void
_elm_scroll_edje_drag_h_start_cb(void *data, _elm_scroll_edje_drag_h_start_cb(void *data,
Evas_Object *obj __UNUSED__, Evas_Object *obj __UNUSED__,
@ -3089,7 +3165,7 @@ _scroll_edje_object_attach(Evas_Object *obj)
(sid->edje_obj, EVAS_CALLBACK_MOVE, _on_edje_move, sid); (sid->edje_obj, EVAS_CALLBACK_MOVE, _on_edje_move, sid);
edje_object_signal_callback_add edje_object_signal_callback_add
(sid->edje_obj, "drag", "elm.dragable.vbar", _elm_scroll_edje_drag_v_cb, (sid->edje_obj, "drag", "elm.dragable.vbar", _elm_scroll_vbar_drag_cb,
sid); sid);
edje_object_signal_callback_add edje_object_signal_callback_add
(sid->edje_obj, "drag,set", "elm.dragable.vbar", (sid->edje_obj, "drag,set", "elm.dragable.vbar",
@ -3107,7 +3183,13 @@ _scroll_edje_object_attach(Evas_Object *obj)
(sid->edje_obj, "drag,page", "elm.dragable.vbar", (sid->edje_obj, "drag,page", "elm.dragable.vbar",
_elm_scroll_edje_drag_v_cb, sid); _elm_scroll_edje_drag_v_cb, sid);
edje_object_signal_callback_add edje_object_signal_callback_add
(sid->edje_obj, "drag", "elm.dragable.hbar", _elm_scroll_edje_drag_h_cb, (sid->edje_obj, "elm,vbar,press", "elm",
_elm_scroll_vbar_press_cb, sid);
edje_object_signal_callback_add
(sid->edje_obj, "elm,vbar,unpress", "elm",
_elm_scroll_vbar_unpress_cb, sid);
edje_object_signal_callback_add
(sid->edje_obj, "drag", "elm.dragable.hbar", _elm_scroll_hbar_drag_cb,
sid); sid);
edje_object_signal_callback_add edje_object_signal_callback_add
(sid->edje_obj, "drag,set", "elm.dragable.hbar", (sid->edje_obj, "drag,set", "elm.dragable.hbar",
@ -3124,6 +3206,12 @@ _scroll_edje_object_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);
edje_object_signal_callback_add
(sid->edje_obj, "elm,hbar,press", "elm",
_elm_scroll_hbar_press_cb, sid);
edje_object_signal_callback_add
(sid->edje_obj, "elm,hbar,unpress", "elm",
_elm_scroll_hbar_unpress_cb, sid);
} }
static void static void
@ -3156,7 +3244,7 @@ _scroll_edje_object_detach(Evas_Object *obj)
(sid->edje_obj, EVAS_CALLBACK_MOVE, _on_edje_move, sid); (sid->edje_obj, EVAS_CALLBACK_MOVE, _on_edje_move, sid);
edje_object_signal_callback_del_full edje_object_signal_callback_del_full
(sid->edje_obj, "drag", "elm.dragable.vbar", _elm_scroll_edje_drag_v_cb, (sid->edje_obj, "drag", "elm.dragable.vbar", _elm_scroll_vbar_drag_cb,
sid); sid);
edje_object_signal_callback_del_full edje_object_signal_callback_del_full
(sid->edje_obj, "drag,set", "elm.dragable.vbar", (sid->edje_obj, "drag,set", "elm.dragable.vbar",
@ -3174,7 +3262,13 @@ _scroll_edje_object_detach(Evas_Object *obj)
(sid->edje_obj, "drag,page", "elm.dragable.vbar", (sid->edje_obj, "drag,page", "elm.dragable.vbar",
_elm_scroll_edje_drag_v_cb, sid); _elm_scroll_edje_drag_v_cb, sid);
edje_object_signal_callback_del_full edje_object_signal_callback_del_full
(sid->edje_obj, "drag", "elm.dragable.hbar", _elm_scroll_edje_drag_h_cb, (sid->edje_obj, "elm,vbar,press", "elm",
_elm_scroll_vbar_press_cb, sid);
edje_object_signal_callback_del_full
(sid->edje_obj, "elm,vbar,unpress", "elm",
_elm_scroll_vbar_unpress_cb, sid);
edje_object_signal_callback_del_full
(sid->edje_obj, "drag", "elm.dragable.hbar", _elm_scroll_hbar_drag_cb,
sid); sid);
edje_object_signal_callback_del_full edje_object_signal_callback_del_full
(sid->edje_obj, "drag,set", "elm.dragable.hbar", (sid->edje_obj, "drag,set", "elm.dragable.hbar",
@ -3191,6 +3285,12 @@ _scroll_edje_object_detach(Evas_Object *obj)
edje_object_signal_callback_del_full edje_object_signal_callback_del_full
(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);
edje_object_signal_callback_del_full
(sid->edje_obj, "elm,hbar,press", "elm",
_elm_scroll_hbar_press_cb, sid);
edje_object_signal_callback_del_full
(sid->edje_obj, "elm,hbar,unpress", "elm",
_elm_scroll_hbar_unpress_cb, sid);
} }
static void static void
@ -3495,6 +3595,54 @@ _elm_scroll_edge_bottom_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
sid->cb_func.edge_bottom = edje_bottom_cb; sid->cb_func.edge_bottom = edje_bottom_cb;
} }
static void
_elm_scroll_vbar_drag_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
Elm_Interface_Scrollable_Cb vbar_drag_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
sid->cb_func.vbar_drag = vbar_drag_cb;
}
static void
_elm_scroll_vbar_press_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
Elm_Interface_Scrollable_Cb vbar_press_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
sid->cb_func.vbar_press = vbar_press_cb;
}
static void
_elm_scroll_vbar_unpress_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
Elm_Interface_Scrollable_Cb vbar_unpress_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
sid->cb_func.vbar_unpress = vbar_unpress_cb;
}
static void
_elm_scroll_hbar_drag_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
Elm_Interface_Scrollable_Cb hbar_drag_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
sid->cb_func.hbar_drag = hbar_drag_cb;
}
static void
_elm_scroll_hbar_press_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
Elm_Interface_Scrollable_Cb hbar_press_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
sid->cb_func.hbar_press = hbar_press_cb;
}
static void
_elm_scroll_hbar_unpress_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
Elm_Interface_Scrollable_Cb hbar_unpress_cb = va_arg(*list, Elm_Interface_Scrollable_Cb);
sid->cb_func.hbar_unpress = hbar_unpress_cb;
}
static void static void
_elm_scroll_content_min_limit_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) _elm_scroll_content_min_limit_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{ {
@ -4011,6 +4159,12 @@ _elm_scrollable_interface_constructor(Eo_Class *klass)
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_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), EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET), _elm_scroll_edge_top_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET), _elm_scroll_edge_bottom_cb_set), EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET), _elm_scroll_edge_bottom_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_DRAG_CB_SET), _elm_scroll_vbar_drag_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_PRESS_CB_SET), _elm_scroll_vbar_press_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_UNPRESS_CB_SET), _elm_scroll_vbar_unpress_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_DRAG_CB_SET), _elm_scroll_hbar_drag_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_PRESS_CB_SET), _elm_scroll_hbar_press_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_UNPRESS_CB_SET), _elm_scroll_hbar_unpress_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT_CB_SET), _elm_scroll_content_min_limit_cb_set), EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT_CB_SET), _elm_scroll_content_min_limit_cb_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_SET), _elm_scroll_content_pos_set), EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_SET), _elm_scroll_content_pos_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET), _elm_scroll_content_pos_get), EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET), _elm_scroll_content_pos_get),
@ -4065,6 +4219,12 @@ static const Eo_Op_Description op_desc[] = {
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_RIGHT_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"), EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET, "description here"), EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_DRAG_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_PRESS_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_UNPRESS_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_DRAG_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_PRESS_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_UNPRESS_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT_CB_SET, "description here"), EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT_CB_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_SET, "description here"), EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_SET, "description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET, "description here"), EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET, "description here"),

View File

@ -161,6 +161,12 @@ enum
ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_RIGHT_CB_SET, ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_RIGHT_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET, ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_TOP_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET, ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_DRAG_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_PRESS_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_UNPRESS_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_DRAG_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_PRESS_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_UNPRESS_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT_CB_SET, ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT_CB_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_SET, ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET, ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET,
@ -336,6 +342,72 @@ enum
*/ */
#define elm_scrollable_interface_edge_bottom_cb_set(edge_bottom_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, edge_bottom_cb) #define elm_scrollable_interface_edge_bottom_cb_set(edge_bottom_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_EDGE_BOTTOM_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, edge_bottom_cb)
/**
* @def elm_scrollable_interface_vbar_drag_cb_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] vbra_drag_cb
*
*/
#define elm_scrollable_interface_vbar_drag_cb_set(vbar_drag_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_DRAG_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, vbar_drag_cb)
/**
* @def elm_scrollable_interface_vbar_press_cb_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] vbra_press_cb
*
*/
#define elm_scrollable_interface_vbar_press_cb_set(vbar_press_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_PRESS_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, vbar_press_cb)
/**
* @def elm_scrollable_interface_vbar_unpress_cb_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] vbra_unpress_cb
*
*/
#define elm_scrollable_interface_vbar_unpress_cb_set(vbar_unpress_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_VBAR_UNPRESS_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, vbar_unpress_cb)
/**
* @def elm_scrollable_interface_hbar_drag_cb_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] vbra_drag_cb
*
*/
#define elm_scrollable_interface_hbar_drag_cb_set(hbar_drag_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_DRAG_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, hbar_drag_cb)
/**
* @def elm_scrollable_interface_hbar_press_cb_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] vbra_press_cb
*
*/
#define elm_scrollable_interface_hbar_press_cb_set(hbar_press_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_PRESS_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, hbar_press_cb)
/**
* @def elm_scrollable_interface_hbar_unpress_cb_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] vbra_unpress_cb
*
*/
#define elm_scrollable_interface_hbar_unpress_cb_set(hbar_unpress_cb) ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_HBAR_UNPRESS_CB_SET), EO_TYPECHECK(Elm_Interface_Scrollable_Cb, hbar_unpress_cb)
/** /**
* @def elm_scrollable_interface_content_min_limit_cb_set * @def elm_scrollable_interface_content_min_limit_cb_set
* @since 1.8 * @since 1.8
@ -882,6 +954,12 @@ struct _Elm_Scrollable_Smart_Interface_Data
Elm_Interface_Scrollable_Cb edge_right; Elm_Interface_Scrollable_Cb edge_right;
Elm_Interface_Scrollable_Cb edge_top; Elm_Interface_Scrollable_Cb edge_top;
Elm_Interface_Scrollable_Cb edge_bottom; Elm_Interface_Scrollable_Cb edge_bottom;
Elm_Interface_Scrollable_Cb vbar_drag;
Elm_Interface_Scrollable_Cb vbar_press;
Elm_Interface_Scrollable_Cb vbar_unpress;
Elm_Interface_Scrollable_Cb hbar_drag;
Elm_Interface_Scrollable_Cb hbar_press;
Elm_Interface_Scrollable_Cb hbar_unpress;
Elm_Interface_Scrollable_Min_Limit_Cb content_min_limit; Elm_Interface_Scrollable_Min_Limit_Cb content_min_limit;
} cb_func; } cb_func;

View File

@ -19,6 +19,12 @@ static const char SIG_EDGE_LEFT[] = "edge,left";
static const char SIG_EDGE_RIGHT[] = "edge,right"; static const char SIG_EDGE_RIGHT[] = "edge,right";
static const char SIG_EDGE_TOP[] = "edge,top"; static const char SIG_EDGE_TOP[] = "edge,top";
static const char SIG_EDGE_BOTTOM[] = "edge,bottom"; static const char SIG_EDGE_BOTTOM[] = "edge,bottom";
static const char SIG_VBAR_DRAG[] = "vbar,drag";
static const char SIG_VBAR_PRESS[] = "vbar,press";
static const char SIG_VBAR_UNPRESS[] = "vbar,unpress";
static const char SIG_HBAR_DRAG[] = "hbar,drag";
static const char SIG_HBAR_PRESS[] = "hbar,press";
static const char SIG_HBAR_UNPRESS[] = "hbar,unpress";
static const Evas_Smart_Cb_Description _smart_callbacks[] = static const Evas_Smart_Cb_Description _smart_callbacks[] =
{ {
{SIG_SCROLL, ""}, {SIG_SCROLL, ""},
@ -30,6 +36,12 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] =
{SIG_EDGE_RIGHT, ""}, {SIG_EDGE_RIGHT, ""},
{SIG_EDGE_TOP, ""}, {SIG_EDGE_TOP, ""},
{SIG_EDGE_BOTTOM, ""}, {SIG_EDGE_BOTTOM, ""},
{SIG_VBAR_DRAG, ""},
{SIG_VBAR_PRESS, ""},
{SIG_VBAR_UNPRESS, ""},
{SIG_HBAR_DRAG, ""},
{SIG_HBAR_PRESS, ""},
{SIG_HBAR_UNPRESS, ""},
{NULL, NULL} {NULL, NULL}
}; };
@ -551,6 +563,48 @@ _scroll_drag_stop_cb(Evas_Object *obj,
evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_STOP, NULL); evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_STOP, NULL);
} }
static void
_vbar_drag_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_VBAR_DRAG, NULL);
}
static void
_vbar_press_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_VBAR_PRESS, NULL);
}
static void
_vbar_unpress_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_VBAR_UNPRESS, NULL);
}
static void
_hbar_drag_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_HBAR_DRAG, NULL);
}
static void
_hbar_press_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_HBAR_PRESS, NULL);
}
static void
_hbar_unpress_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_HBAR_UNPRESS, NULL);
}
static void static void
_elm_scroller_smart_content_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list) _elm_scroller_smart_content_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{ {
@ -683,6 +737,12 @@ _elm_scroller_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
elm_scrollable_interface_animate_stop_cb_set(_scroll_anim_stop_cb), elm_scrollable_interface_animate_stop_cb_set(_scroll_anim_stop_cb),
elm_scrollable_interface_drag_start_cb_set(_scroll_drag_start_cb), elm_scrollable_interface_drag_start_cb_set(_scroll_drag_start_cb),
elm_scrollable_interface_drag_stop_cb_set(_scroll_drag_stop_cb), elm_scrollable_interface_drag_stop_cb_set(_scroll_drag_stop_cb),
elm_scrollable_interface_vbar_drag_cb_set(_vbar_drag_cb),
elm_scrollable_interface_vbar_press_cb_set(_vbar_press_cb),
elm_scrollable_interface_vbar_unpress_cb_set(_vbar_unpress_cb),
elm_scrollable_interface_hbar_drag_cb_set(_hbar_drag_cb),
elm_scrollable_interface_hbar_press_cb_set(_hbar_press_cb),
elm_scrollable_interface_hbar_unpress_cb_set(_hbar_unpress_cb),
elm_scrollable_interface_content_min_limit_cb_set(_elm_scroller_content_min_limit_cb)); elm_scrollable_interface_content_min_limit_cb_set(_elm_scroller_content_min_limit_cb));
} }