elementary/diskselector - more useful signal callbacks

SVN revision: 69333
This commit is contained in:
ChunEon Park 2012-03-14 12:29:22 +00:00
parent ea4ea0b0ab
commit f57c84c526
2 changed files with 47 additions and 3 deletions

View File

@ -77,8 +77,17 @@ static Evas_Object * _item_content_get_hook(const Elm_Object_Item *it,
const char *part);
static const char SIG_SELECTED[] = "selected";
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 Evas_Smart_Cb_Description _signals[] = {
{SIG_SELECTED, ""},
{SIG_SCROLL_ANIM_START, ""},
{SIG_SCROLL_ANIM_STOP, ""},
{SIG_SCROLL_DRAG_START, ""},
{SIG_SCROLL_DRAG_STOP, ""},
{NULL, NULL}
};
@ -688,7 +697,7 @@ static void
_scroller_stop_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Elm_Diskselector_Item *it;
Widget_Data *wd = data;
Widget_Data *wd = elm_widget_data_get(data);
Evas_Coord x, w, ow;
Eina_List *l, *list;
@ -708,6 +717,28 @@ _scroller_stop_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UN
if (!it) return;
_select_item(it);
evas_object_smart_callback_call(data, SIG_SCROLL_ANIM_STOP, it);
}
static void
_scroller_start_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
evas_object_smart_callback_call(data, SIG_SCROLL_ANIM_START,
elm_diskselector_selected_item_get(data));
}
static void
_drag_start_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
evas_object_smart_callback_call(data, SIG_SCROLL_DRAG_START,
elm_diskselector_selected_item_get(data));
}
static void
_drag_stop_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
evas_object_smart_callback_call(data, SIG_SCROLL_DRAG_STOP,
elm_diskselector_selected_item_get(data));
}
static Eina_Bool
@ -1013,7 +1044,14 @@ elm_diskselector_add(Evas_Object *parent)
evas_object_smart_callback_add(wd->scroller, "scroll", _scroller_move_cb,
wd);
evas_object_smart_callback_add(wd->scroller, "animate,stop",
_scroller_stop_cb, wd);
_scroller_stop_cb, obj);
evas_object_smart_callback_add(wd->scroller, "animate,start",
_scroller_start_cb, obj);
evas_object_smart_callback_add(wd->scroller, "drag,stop",
_drag_stop_cb, obj);
evas_object_smart_callback_add(wd->scroller, "drag,start",
_drag_start_cb, obj);
_elm_theme_object_set(obj, wd->scroller, "diskselector", "base",
"default");
evas_object_event_callback_add(wd->scroller, EVAS_CALLBACK_RESIZE,

View File

@ -13,7 +13,13 @@
* reduced for a defined length for side items.
*
* Smart callbacks one can listen to:
* - "selected" - when item is selected, i.e. scroller stops.
* @li "selected" - when item is selected, i.e. scroller stops.
* @li "scroll,anim,start" - scrolling animation has started
* @li "scroll,anim,stop" - scrolling animation has stopped
* @li "scroll,drag,start" - dragging the diskselector has started
* @li "scroll,drag,stop" - dragging the diskselector has stopped
* @note The "scroll,anim,*" and "scroll,drag,*" signals are only emitted by
* user intervention.
*
* Available styles for it:
* - @c "default"