added callback call "scroll", "scroll,anim,start", "scroll,anim,stop", "scroll,drag,start", "scroll,drag,stop"

in toolar widget.
This commit is contained in:
Hosang Kim 2013-07-03 13:57:17 +09:00 committed by Jaehwan Kim
parent 71341d5005
commit 32affd3725
1 changed files with 53 additions and 8 deletions

View File

@ -16,11 +16,21 @@ EAPI Eo_Op ELM_OBJ_TOOLBAR_BASE_ID = EO_NOOP;
#define ELM_TOOLBAR_ITEM_FROM_INLIST(item) \
((item) ? EINA_INLIST_CONTAINER_GET(item, Elm_Toolbar_Item) : NULL)
static const char SIG_SCROLL[] = "scroll";
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";
static const char SIG_SCROLL_DRAG_STOP[] = "scroll,drag,stop";
static const char SIG_CLICKED[] = "clicked";
static const char SIG_LONGPRESSED[] = "longpressed";
static const char SIG_CLICKED_DOUBLE[] = "clicked,double";
static const char SIG_LANG_CHANGED[] = "language,changed";
static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{SIG_SCROLL, ""},
{SIG_SCROLL_ANIM_START, ""},
{SIG_SCROLL_ANIM_STOP, ""},
{SIG_SCROLL_DRAG_START, ""},
{SIG_SCROLL_DRAG_STOP, ""},
{SIG_CLICKED, ""},
{SIG_LONGPRESSED, ""},
{SIG_CLICKED_DOUBLE, ""},
@ -1832,13 +1842,6 @@ _long_press_cb(void *data)
return ECORE_CALLBACK_CANCEL;
}
static void
_drag_start_cb(Evas_Object *obj, void *data __UNUSED__)
{
ELM_TOOLBAR_DATA_GET(obj, sd);
ELM_SAFE_FREE(sd->long_timer, ecore_timer_del);
}
static void
_mouse_move_cb(Elm_Toolbar_Item *it,
Evas *evas __UNUSED__,
@ -1919,6 +1922,44 @@ _mouse_out_cb(void *data,
elm_widget_signal_emit(it->icon, "elm,state,unhighlighted", "elm");
}
static void
_scroll_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_SCROLL, NULL);
}
static void
_scroll_anim_start_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_START, NULL);
}
static void
_scroll_anim_stop_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_STOP, NULL);
}
static void
_scroll_drag_start_cb(Evas_Object *obj,
void *data __UNUSED__)
{
ELM_TOOLBAR_DATA_GET(obj, sd);
ELM_SAFE_FREE(sd->long_timer, ecore_timer_del);
evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_START, NULL);
}
static void
_scroll_drag_stop_cb(Evas_Object *obj,
void *data __UNUSED__)
{
evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_STOP, NULL);
}
static void
_layout(Evas_Object *o,
Evas_Object_Box_Data *priv,
@ -2477,7 +2518,11 @@ _elm_toolbar_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
(_elm_config->thumbscroll_bounce_enable, EINA_FALSE),
elm_scrollable_interface_policy_set
(ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF),
elm_scrollable_interface_drag_start_cb_set(_drag_start_cb));
elm_scrollable_interface_scroll_cb_set(_scroll_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),
elm_scrollable_interface_drag_stop_cb_set(_scroll_drag_stop_cb));
edje_object_signal_callback_add
(edje, "elm,action,left", "elm", _elm_toolbar_action_left_cb, obj);