jaehyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3cdd290f17560aaa85aa3027a55b73eab14c1ec8

commit 3cdd290f17560aaa85aa3027a55b73eab14c1ec8
Author: Woochan Lee <[email protected]>
Date:   Wed May 24 13:31:14 2017 +0900

    spinner: Add signal to notify the value of spinner has been reached at min, 
max.
    
    Summary: The User requires this signal to handle spinner widget easily on 
their app.
    
    Test Plan: Spinner test on elementary_test.
    
    Reviewers: cedric, jpeg, Hermet, woohyun, Jaehyun, myoungwoon, Jaehyun_Cho
    
    Reviewed By: myoungwoon, Jaehyun_Cho
    
    Subscribers: myoungwoon, cedric, jpeg
    
    Differential Revision: https://phab.enlightenment.org/D4886
---
 src/lib/elementary/elm_spinner.c  | 9 +++++++++
 src/lib/elementary/elm_spinner.eo | 2 ++
 2 files changed, 11 insertions(+)

diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c
index 56513cd..c3921f3 100644
--- a/src/lib/elementary/elm_spinner.c
+++ b/src/lib/elementary/elm_spinner.c
@@ -25,12 +25,16 @@ 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_MIN_REACHED[] = "min,reached";
+static const char SIG_MAX_REACHED[] = "max,reached";
 
 static const Evas_Smart_Cb_Description _smart_callbacks[] = {
    {SIG_CHANGED, ""},
    {SIG_DELAY_CHANGED, ""},
    {SIG_DRAG_START, ""},
    {SIG_DRAG_STOP, ""},
+   {SIG_MIN_REACHED, ""},
+   {SIG_MAX_REACHED, ""},
    {SIG_WIDGET_LANG_CHANGED, ""}, /**< handled by elm_widget */
    {SIG_WIDGET_ACCESS_CHANGED, ""}, /**< handled by elm_widget */
    {SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */
@@ -265,6 +269,11 @@ _value_set(Evas_Object *obj,
    if (new_val == sd->val) return EINA_FALSE;
    sd->val = new_val;
 
+   if (sd->val == sd->val_min)
+     efl_event_callback_legacy_call(obj, ELM_SPINNER_EVENT_MIN_REACHED, NULL);
+   else if (sd->val == sd->val_max)
+     efl_event_callback_legacy_call(obj, ELM_SPINNER_EVENT_MAX_REACHED, NULL);
+
    efl_event_callback_legacy_call(obj, ELM_SPINNER_EVENT_CHANGED, NULL);
    elm_interface_atspi_accessible_value_changed_signal_emit(obj);
    ecore_timer_del(sd->delay_change_timer);
diff --git a/src/lib/elementary/elm_spinner.eo 
b/src/lib/elementary/elm_spinner.eo
index 3404205..c2c0406 100644
--- a/src/lib/elementary/elm_spinner.eo
+++ b/src/lib/elementary/elm_spinner.eo
@@ -170,5 +170,7 @@ class Elm.Spinner (Elm.Layout, Efl.Ui.Spin,
       delay,changed; [[Called when spinner delay changed]]
       spinner,drag,start; [[Called when spinner drag started]]
       spinner,drag,stop; [[Called when spinner drag stopped]]
+      min,reached; [[Called when spinner value reached min]]
+      max,reached; [[Called when spinner value reached max]]
    }
 }

-- 


Reply via email to