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
* 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 elm_index_delay_change_time_set/get for changing delay change time in index.
* 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:

View File

@ -592,6 +592,16 @@ externals.external: "elm";
transition: LINEAR 1.0; \
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"; \
signal: "mouse,down,1"; \
source: "sb_vbar_a1"; \
@ -692,6 +702,16 @@ externals.external: "elm";
transition: LINEAR 1.0; \
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"; \
signal: "mouse,down,1"; \
source: "sb_hbar_a1"; \

View File

@ -386,6 +386,16 @@ group { name: "elm/scroller/base/default";
transition: LINEAR 0.5;
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";
signal: "elm,action,show,hbar";
@ -443,6 +453,16 @@ group { name: "elm/scroller/base/default";
transition: LINEAR 0.5;
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";
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_LEFT[] = "edge,left";
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_RIGHT[] = "multi,swipe,right";
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_LEFT, ""},
{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_RIGHT, ""},
{SIG_MULTI_SWIPE_UP, ""},
@ -4508,6 +4520,48 @@ _edge_bottom_cb(Evas_Object *obj,
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
_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_right_cb_set(_edge_right_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->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);
}
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
_elm_scroll_edje_drag_v_start_cb(void *data,
Evas_Object *obj __UNUSED__,
@ -996,6 +1034,44 @@ _elm_scroll_edje_drag_v_cb(void *data,
_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
_elm_scroll_edje_drag_h_start_cb(void *data,
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);
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);
edje_object_signal_callback_add
(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",
_elm_scroll_edje_drag_v_cb, sid);
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);
edje_object_signal_callback_add
(sid->edje_obj, "drag,set", "elm.dragable.hbar",
@ -3124,6 +3206,12 @@ _scroll_edje_object_attach(Evas_Object *obj)
edje_object_signal_callback_add
(sid->edje_obj, "drag,page", "elm.dragable.hbar",
_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
@ -3156,7 +3244,7 @@ _scroll_edje_object_detach(Evas_Object *obj)
(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_obj, "drag", "elm.dragable.vbar", _elm_scroll_vbar_drag_cb,
sid);
edje_object_signal_callback_del_full
(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",
_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_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);
edje_object_signal_callback_del_full
(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
(sid->edje_obj, "drag,page", "elm.dragable.hbar",
_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
@ -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;
}
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
_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_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_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_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),
@ -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_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_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_POS_SET, "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_TOP_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_POS_SET,
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)
/**
* @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
* @since 1.8
@ -882,6 +954,12 @@ struct _Elm_Scrollable_Smart_Interface_Data
Elm_Interface_Scrollable_Cb edge_right;
Elm_Interface_Scrollable_Cb edge_top;
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;
} 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_TOP[] = "edge,top";
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[] =
{
{SIG_SCROLL, ""},
@ -30,6 +36,12 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] =
{SIG_EDGE_RIGHT, ""},
{SIG_EDGE_TOP, ""},
{SIG_EDGE_BOTTOM, ""},
{SIG_VBAR_DRAG, ""},
{SIG_VBAR_PRESS, ""},
{SIG_VBAR_UNPRESS, ""},
{SIG_HBAR_DRAG, ""},
{SIG_HBAR_PRESS, ""},
{SIG_HBAR_UNPRESS, ""},
{NULL, NULL}
};
@ -551,6 +563,48 @@ _scroll_drag_stop_cb(Evas_Object *obj,
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
_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_drag_start_cb_set(_scroll_drag_start_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));
}