diff --git a/legacy/elementary/src/bin/test_diskselector.c b/legacy/elementary/src/bin/test_diskselector.c index 0488204dd5..5bb7cb114d 100644 --- a/legacy/elementary/src/bin/test_diskselector.c +++ b/legacy/elementary/src/bin/test_diskselector.c @@ -166,6 +166,13 @@ _print_disk_info_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev printf("Selected label: %s\n", elm_object_item_text_get(ds_it)); } +static void +_item_clicked_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) +{ + Elm_Object_Item *ds_it = event_info; + printf("Clicked label: %s\n", elm_object_item_text_get(ds_it)); +} + static Evas_Object * _disk_create(Evas_Object *win, Eina_Bool rnd) { @@ -325,6 +332,7 @@ test_diskselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *even elm_box_pack_end(bx, disk); evas_object_show(disk); evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL); + evas_object_smart_callback_add(disk, "clicked", _item_clicked_cb, NULL); // displayed item number setting example disk = elm_diskselector_add(win); diff --git a/legacy/elementary/src/lib/elm_diskselector.c b/legacy/elementary/src/lib/elm_diskselector.c index 1b09686154..a7e9144ac2 100644 --- a/legacy/elementary/src/lib/elm_diskselector.c +++ b/legacy/elementary/src/lib/elm_diskselector.c @@ -15,6 +15,7 @@ EAPI const char ELM_DISKSELECTOR_SMART_NAME[] = "elm_diskselector"; static const char SIG_SELECTED[] = "selected"; +static const char SIG_CLICKED[] = "clicked"; 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"; @@ -22,6 +23,7 @@ static const char SIG_SCROLL_DRAG_STOP[] = "scroll,drag,stop"; static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_SELECTED, ""}, + {SIG_CLICKED, ""}, {SIG_SCROLL_ANIM_START, ""}, {SIG_SCROLL_ANIM_STOP, ""}, {SIG_SCROLL_DRAG_START, ""}, @@ -535,6 +537,7 @@ _item_click_cb(void *data, } if (it->func) it->func((void *)it->base.data, WIDGET(it), it); + evas_object_smart_callback_call(WIDGET(it), SIG_CLICKED, it); } static char * diff --git a/legacy/elementary/src/lib/elm_diskselector.h b/legacy/elementary/src/lib/elm_diskselector.h index e9bf88b118..b731899ba7 100644 --- a/legacy/elementary/src/lib/elm_diskselector.h +++ b/legacy/elementary/src/lib/elm_diskselector.h @@ -28,6 +28,7 @@ * This widget emits the following signals, besides the ones sent from * @ref Layout: * @li @c "selected" - when item is selected, i.e. scroller stops. + * @li @c "clicked" - This is called when a user clicks an item (@since 1.8) * @li @c "scroll,anim,start" - scrolling animation has started * @li @c "scroll,anim,stop" - scrolling animation has stopped * @li @c "scroll,drag,start" - dragging the diskselector has started