From fbe18f2eabffff2bc716fa6bfd43b4d5b6421d96 Mon Sep 17 00:00:00 2001 From: Christophe Sadoine Date: Wed, 23 Oct 2013 22:43:02 +0900 Subject: [PATCH] spinner: added signals "spinner,drag,start" and "spinner,drag,stop" Reviewers: seoz CC: seoz Differential Revision: https://phab.enlightenment.org/D271 --- legacy/elementary/ChangeLog | 4 ++++ legacy/elementary/NEWS | 1 + legacy/elementary/src/bin/test_spinner.c | 19 +++++++++++++++++++ legacy/elementary/src/lib/elm_spinner.c | 8 ++++++++ legacy/elementary/src/lib/elm_spinner.h | 2 ++ 5 files changed, 34 insertions(+) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index e403324a78..a1657cd2a3 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/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/legacy/elementary/NEWS b/legacy/elementary/NEWS index d56d0e0bc3..edaf5a9c26 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/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/legacy/elementary/src/bin/test_spinner.c b/legacy/elementary/src/bin/test_spinner.c index 0e9f9507f2..d1b5dad5b8 100644 --- a/legacy/elementary/src/bin/test_spinner.c +++ b/legacy/elementary/src/bin/test_spinner.c @@ -3,6 +3,21 @@ #endif #include #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/legacy/elementary/src/lib/elm_spinner.c b/legacy/elementary/src/lib/elm_spinner.c index 6f91eebf51..5040e20fd9 100644 --- a/legacy/elementary/src/lib/elm_spinner.c +++ b/legacy/elementary/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/legacy/elementary/src/lib/elm_spinner.h b/legacy/elementary/src/lib/elm_spinner.h index 8393f3faf4..a6ced26c53 100644 --- a/legacy/elementary/src/lib/elm_spinner.h +++ b/legacy/elementary/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";