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";

-- 


Reply via email to