bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7869778d02d862a0efd11857c3299cd391245551

commit 7869778d02d862a0efd11857c3299cd391245551
Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
Date:   Thu Aug 1 13:55:06 2019 +0200

    efl_ui_spin: move the step implementation to spin_button
    
    having efl_ui_spin implementing efl.ui.range_interactive does not make
    sense. Efl.Ui.Spin is a not interactive widget, so it should not
    implement that interface.
    
    ref T7897
    
    Reviewed-by: Xavi Artigas <xavierarti...@yahoo.es>
    Differential Revision: https://phab.enlightenment.org/D9475
---
 src/bin/elementary/test_ui_spin.c                  |  7 +++---
 src/lib/elementary/efl_ui_spin.c                   | 19 ----------------
 src/lib/elementary/efl_ui_spin.eo                  |  5 ++---
 src/lib/elementary/efl_ui_spin_button.c            | 25 ++++++++++++++++++----
 src/lib/elementary/efl_ui_spin_button.eo           |  4 ++--
 src/lib/elementary/efl_ui_spin_button_private.h    |  2 +-
 src/lib/elementary/efl_ui_spin_private.h           |  1 -
 .../elementary/spec/efl_test_range_interactive.c   |  4 +---
 8 files changed, 31 insertions(+), 36 deletions(-)

diff --git a/src/bin/elementary/test_ui_spin.c 
b/src/bin/elementary/test_ui_spin.c
index b57dfac81a..6f325bb034 100644
--- a/src/bin/elementary/test_ui_spin.c
+++ b/src/bin/elementary/test_ui_spin.c
@@ -4,6 +4,8 @@
 #include <Efl_Ui.h>
 #include <Elementary.h>
 
+#define STEP_SIZE 2
+
 static void
 _spin_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev)
 {
@@ -23,13 +25,13 @@ _spin_max_reached_cb(void *data EINA_UNUSED, const 
Efl_Event *ev)
 static void
 _inc_clicked(void *data, const Efl_Event *ev EINA_UNUSED)
 {
-   efl_ui_range_value_set(data, (efl_ui_range_value_get(data) + 
efl_ui_range_step_get(data)));
+   efl_ui_range_value_set(data, (efl_ui_range_value_get(data) + STEP_SIZE));
 }
 
 static void
 _dec_clicked(void *data, const Efl_Event *ev EINA_UNUSED)
 {
-   efl_ui_range_value_set(data, (efl_ui_range_value_get(data) - 
efl_ui_range_step_get(data)));
+   efl_ui_range_value_set(data, (efl_ui_range_value_get(data) - STEP_SIZE));
 }
 
 void
@@ -49,7 +51,6 @@ test_ui_spin(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_i
    sp = efl_add(EFL_UI_SPIN_CLASS, bx,
                 efl_ui_range_limits_set(efl_added, 0, 10),
                 efl_ui_range_value_set(efl_added, 6),
-                efl_ui_range_step_set(efl_added, 2),
                 efl_ui_format_string_set(efl_added, "test %d", 
EFL_UI_FORMAT_STRING_TYPE_SIMPLE),
                 efl_event_callback_add(efl_added, 
EFL_UI_RANGE_EVENT_CHANGED,_spin_changed_cb, NULL),
                 efl_event_callback_add(efl_added, 
EFL_UI_RANGE_EVENT_MIN_REACHED,_spin_min_reached_cb, NULL),
diff --git a/src/lib/elementary/efl_ui_spin.c b/src/lib/elementary/efl_ui_spin.c
index 0e50457f33..b8dfa169ba 100644
--- a/src/lib/elementary/efl_ui_spin.c
+++ b/src/lib/elementary/efl_ui_spin.c
@@ -39,7 +39,6 @@ _efl_ui_spin_efl_object_constructor(Eo *obj, Efl_Ui_Spin_Data 
*sd)
    obj = efl_constructor(efl_super(obj, MY_CLASS));
 
    sd->val_max = 100.0;
-   sd->step = 1.0;
 
    if (elm_widget_theme_object_set(obj, wd->resize_obj,
                                        elm_widget_theme_klass_get(obj),
@@ -97,24 +96,6 @@ _efl_ui_spin_efl_ui_range_display_range_limits_get(const Eo 
*obj EINA_UNUSED, Ef
    if (max) *max = sd->val_max;
 }
 
-EOLIAN static void
-_efl_ui_spin_efl_ui_range_interactive_range_step_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Spin_Data *sd, double step)
-{
-   if (step <= 0)
-     {
-        ERR("Wrong param. The step(%lf) should be bigger than 0.0", step);
-        return;
-     }
-
-   sd->step = step;
-}
-
-EOLIAN static double
-_efl_ui_spin_efl_ui_range_interactive_range_step_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Spin_Data *sd)
-{
-   return sd->step;
-}
-
 EOLIAN static void
 _efl_ui_spin_efl_ui_range_display_range_value_set(Eo *obj, Efl_Ui_Spin_Data 
*sd, double val)
 {
diff --git a/src/lib/elementary/efl_ui_spin.eo 
b/src/lib/elementary/efl_ui_spin.eo
index 717c569e0d..9f55338ee2 100644
--- a/src/lib/elementary/efl_ui_spin.eo
+++ b/src/lib/elementary/efl_ui_spin.eo
@@ -1,5 +1,5 @@
-class @beta Efl.Ui.Spin extends Efl.Ui.Layout_Base implements 
Efl.Ui.Range_Interactive, Efl.Ui.Format,
-                   Efl.Access.Value, Efl.Access.Widget.Action
+class @beta Efl.Ui.Spin extends Efl.Ui.Layout_Base implements 
Efl.Ui.Range_Display,
+Efl.Ui.Format, Efl.Access.Value, Efl.Access.Widget.Action
 {
    [[A Spin.
 
@@ -10,7 +10,6 @@ class @beta Efl.Ui.Spin extends Efl.Ui.Layout_Base implements 
Efl.Ui.Range_Inter
       Efl.Object.constructor;
       Efl.Object.destructor;
       Efl.Ui.Range_Display.range_limits { get; set; }
-      Efl.Ui.Range_Interactive.range_step { get; set; }
       Efl.Ui.Range_Display.range_value { get; set; }
       Efl.Ui.Format.apply_formatted_value;
    }
diff --git a/src/lib/elementary/efl_ui_spin_button.c 
b/src/lib/elementary/efl_ui_spin_button.c
index 0419022df1..d71e10135c 100644
--- a/src/lib/elementary/efl_ui_spin_button.c
+++ b/src/lib/elementary/efl_ui_spin_button.c
@@ -404,7 +404,7 @@ _entry_toggle_cb(void *data EINA_UNUSED,
 static void
 _spin_value(Efl_Ui_Spin *obj, Eina_Bool inc)
 {
-   Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS);
+   Efl_Ui_Spin_Button_Data *pd = efl_data_scope_get(obj, 
EFL_UI_SPIN_BUTTON_CLASS);
 
    int absolut_value = efl_ui_range_value_get(obj) + (inc ? pd->step : 
-pd->step);
 
@@ -643,6 +643,7 @@ _efl_ui_spin_button_efl_object_constructor(Eo *obj, 
Efl_Ui_Spin_Button_Data *sd)
 
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    _sync_widget_theme_klass(obj, sd);
+   sd->step = 1.0;
 
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
 
@@ -788,10 +789,8 @@ _efl_ui_spin_button_efl_access_value_range_get(const Eo 
*obj EINA_UNUSED, Efl_Ui
 }
 
 EOLIAN static double
-_efl_ui_spin_button_efl_access_value_increment_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Spin_Button_Data *sd EINA_UNUSED)
+_efl_ui_spin_button_efl_access_value_increment_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Spin_Button_Data *pd)
 {
-   Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS);
-
    return pd->step;
 }
 
@@ -812,6 +811,24 @@ _efl_ui_spin_button_efl_ui_format_apply_formatted_value(Eo 
*obj, Efl_Ui_Spin_But
    efl_canvas_group_change(obj);
 }
 
+EOLIAN static void
+_efl_ui_spin_button_efl_ui_range_interactive_range_step_set(Eo *obj 
EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd, double step)
+{
+   if (step <= 0)
+     {
+        ERR("Wrong param. The step(%lf) should be bigger than 0.0", step);
+        return;
+     }
+
+   sd->step = step;
+}
+
+EOLIAN static double
+_efl_ui_spin_button_efl_ui_range_interactive_range_step_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd)
+{
+   return sd->step;
+}
+
 // A11Y Accessibility - END
 
 #include "efl_ui_spin_button.eo.c"
diff --git a/src/lib/elementary/efl_ui_spin_button.eo 
b/src/lib/elementary/efl_ui_spin_button.eo
index 45b16b7af8..06a57f111d 100644
--- a/src/lib/elementary/efl_ui_spin_button.eo
+++ b/src/lib/elementary/efl_ui_spin_button.eo
@@ -1,5 +1,4 @@
-class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin implements 
Efl.Ui.Focus.Composition, Efl.Ui.Layout_Orientable,
-                          Efl.Access.Widget.Action
+class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin implements 
Efl.Ui.Focus.Composition, Efl.Ui.Layout_Orientable, Efl.Ui.Range_Interactive, 
Efl.Access.Widget.Action
 {
    [[A Button Spin.
 
@@ -73,5 +72,6 @@ class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin implements 
Efl.Ui.Focus.Compo
       Efl.Access.Value.increment { get; }
       Efl.Access.Widget.Action.elm_actions { get; }
       Efl.Ui.Format.apply_formatted_value;
+      Efl.Ui.Range_Interactive.range_step { get; set; }
    }
 }
diff --git a/src/lib/elementary/efl_ui_spin_button_private.h 
b/src/lib/elementary/efl_ui_spin_button_private.h
index daab1ad4e1..642b08eb27 100644
--- a/src/lib/elementary/efl_ui_spin_button_private.h
+++ b/src/lib/elementary/efl_ui_spin_button_private.h
@@ -8,7 +8,7 @@ struct _Efl_Ui_Spin_Button_Data
    Eina_Future          *delay_change_timer; /**< a timer for a delay,changed 
smart callback */
 
    Efl_Ui_Layout_Orientation dir;
-
+   double                step;
    Eina_Bool             entry_visible : 1;
    Eina_Bool             entry_reactivate : 1;
    Eina_Bool             editable : 1;
diff --git a/src/lib/elementary/efl_ui_spin_private.h 
b/src/lib/elementary/efl_ui_spin_private.h
index 3dbc06b4ea..e67f326fdc 100644
--- a/src/lib/elementary/efl_ui_spin_private.h
+++ b/src/lib/elementary/efl_ui_spin_private.h
@@ -7,7 +7,6 @@ typedef struct _Efl_Ui_Spin_Data    Efl_Ui_Spin_Data;
 struct _Efl_Ui_Spin_Data
 {
    double                val, val_min, val_max;
-   double                step; /**< step for the value change. 1 by default. */
 };
 
 #endif
diff --git a/src/tests/elementary/spec/efl_test_range_interactive.c 
b/src/tests/elementary/spec/efl_test_range_interactive.c
index b7fd4ad793..c900524120 100644
--- a/src/tests/elementary/spec/efl_test_range_interactive.c
+++ b/src/tests/elementary/spec/efl_test_range_interactive.c
@@ -10,7 +10,7 @@
 
 /* spec-meta-start
       {"test-interface":"Efl.Ui.Range_Display_Interactive",
-       "test-widgets": ["Efl.Ui.Spin", "Efl.Ui.Slider", "Efl.Ui.Spin_Button"]}
+       "test-widgets": ["Efl.Ui.Slider", "Efl.Ui.Spin_Button"]}
    spec-meta-end */
 
 EFL_START_TEST(step_setting)
@@ -52,8 +52,6 @@ EFL_START_TEST(steady_event)
    Evas *e;
    int count = 0;
 
-   if (efl_isa(widget, EFL_UI_SPIN_CLASS)) return;
-
    efl_event_callback_add(widget, EFL_UI_RANGE_EVENT_STEADY, _steady_cb, 
&count),
    efl_ui_range_limits_set(widget, 0, 100);
    efl_ui_range_step_set(widget, 10);

-- 


Reply via email to