seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=c456cf83a0b318c5d031c73c83e7f3fedb357a62
commit c456cf83a0b318c5d031c73c83e7f3fedb357a62 Author: Christophe Sadoine <ch...@indefini.org> Date: Wed Oct 23 22:43:02 2013 +0900 spinner: added signals "spinner,drag,start" and "spinner,drag,stop" Reviewers: seoz CC: seoz Differential Revision: https://phab.enlightenment.org/D271 --- ChangeLog | 4 ++++ NEWS | 1 + src/bin/test_spinner.c | 19 +++++++++++++++++++ src/lib/elm_spinner.c | 8 ++++++++ src/lib/elm_spinner.h | 2 ++ 5 files changed, 34 insertions(+) diff --git a/ChangeLog b/ChangeLog index e403324..a1657cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1719,3 +1719,7 @@ 2013-10-22 Amitesh Singh (_ami_) * slider : Show popup on left/right/up/down key down press and hide on left/right/up/down key up press. + +2013-10-23 Christophe Sadoine + + * spinner: added signals "spinner,drag,start" and "spinner,drag,stop". diff --git a/NEWS b/NEWS index d56d0e0..edaf5a9 100644 --- a/NEWS +++ b/NEWS @@ -99,6 +99,7 @@ Additions: * Add elm_object_item_signal_emit support in hoversel. This works only when the item is created. * Add elm_fileselector_multi_select_set/get() and elm_fileselector_selected_paths_get to support multi-selection. * Add elm_fileselector_hidden_visible_set/get() to show or hide hidden files/directories. + * Add signals "spinner,drag,start" and "spinner,drag,stop" to the spinner widget. Improvements: diff --git a/src/bin/test_spinner.c b/src/bin/test_spinner.c index 0e9f950..d1b5dad 100644 --- a/src/bin/test_spinner.c +++ b/src/bin/test_spinner.c @@ -3,6 +3,21 @@ #endif #include <Elementary.h> #ifndef ELM_LIB_QUICKLAUNCH + +static void +_spinner_drag_start_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event EINA_UNUSED) +{ + printf("spinner drag started\n"); +} + +static void +_spinner_drag_stop_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event EINA_UNUSED) +{ + printf("spinner drag stopped\n"); +} + void test_spinner(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -24,6 +39,10 @@ test_spinner(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i elm_spinner_min_max_set(sp, -50.0, 250.0); evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_smart_callback_add(sp, "spinner,drag,start", + _spinner_drag_start_cb, NULL); + evas_object_smart_callback_add(sp, "spinner,drag,stop", + _spinner_drag_stop_cb, NULL); elm_box_pack_end(bx, sp); evas_object_show(sp); diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 6f91eeb..5040e20 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -17,6 +17,8 @@ EAPI Eo_Op ELM_OBJ_SPINNER_BASE_ID = EO_NOOP; #define MY_CLASS_NAME "elm_spinner" static const char SIG_CHANGED[] = "changed"; +static const char SIG_DRAG_START[] = "spinner,drag,start"; +static const char SIG_DRAG_STOP[] = "spinner,drag,stop"; static const char SIG_DELAY_CHANGED[] = "delay,changed"; static const char SIG_LANG_CHANGED[] = "language,changed"; @@ -24,6 +26,8 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_CHANGED, ""}, {SIG_DELAY_CHANGED, ""}, {SIG_LANG_CHANGED, ""}, + {SIG_DRAG_START, ""}, + {SIG_DRAG_STOP, ""}, {"focused", ""}, /**< handled by elm_widget */ {"unfocused", ""}, /**< handled by elm_widget */ {NULL, NULL} @@ -204,6 +208,8 @@ _drag_start_cb(void *data, ELM_SPINNER_DATA_GET(data, sd); sd->drag_start_val = sd->val; + + evas_object_smart_callback_call(obj, SIG_DRAG_START, NULL); } static void @@ -218,6 +224,8 @@ _drag_stop_cb(void *data, sd->drag_start_val = 0; edje_object_part_drag_value_set (wd->resize_obj, "elm.dragable.slider", 0.0, 0.0); + + evas_object_smart_callback_call(obj, SIG_DRAG_STOP, NULL); } static void diff --git a/src/lib/elm_spinner.h b/src/lib/elm_spinner.h index 8393f3f..a6ced26 100644 --- a/src/lib/elm_spinner.h +++ b/src/lib/elm_spinner.h @@ -34,6 +34,8 @@ * - @c "language,changed" - the program's language changed * - @c "focused" - When the spinner has received focus. (since 1.8) * - @c "unfocused" - When the spinner has lost focus. (since 1.8) + * - @c "spinner,drag,start" - When dragging has started. (since 1.8) + * - @c "spinner,drag,stop" - When dragging has stopped. (since 1.8) * * Available styles for it: * - @c "default"; --