zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8fefb6f099ef1f6430d1bf093ad189b72b2d9d86

commit 8fefb6f099ef1f6430d1bf093ad189b72b2d9d86
Author: Marcel Hollerbach <[email protected]>
Date:   Mon Dec 30 11:08:41 2019 -0500

    elm_progressbar: make pulse and pulse_mode independend from legacy
    
    Summary:
    the next commit will refactor this API for Efl.Ui namespace.
    
    ref T8501
    
    Reviewers: cedric, woohyun, zmike, segfaultxavi
    
    Reviewed By: zmike
    
    Subscribers: #reviewers, #committers
    
    Tags: #efl
    
    Maniphest Tasks: T8501
    
    Differential Revision: https://phab.enlightenment.org/D10941
---
 src/lib/elementary/efl_ui_progressbar.c | 50 +++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 18 deletions(-)

diff --git a/src/lib/elementary/efl_ui_progressbar.c 
b/src/lib/elementary/efl_ui_progressbar.c
index 61c6ece78b..cc7a9e2b29 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -618,6 +618,18 @@ 
_efl_ui_progressbar_efl_ui_range_display_range_value_get(const Eo *obj, Efl_Ui_P
      return efl_ui_range_value_get(efl_part(obj, "efl.cur.progressbar"));
 }
 
+static void
+_apply_pulse_state(Eo *obj, Efl_Ui_Progressbar_Data *sd)
+{
+   Eina_Bool legacy = elm_widget_is_legacy(obj);
+   const char *emitter = legacy ? "elm" : "efl";
+   const char *signal = legacy ? "elm,state,pulse," : "efl,state,pulse,";
+   char signal_buffer[strlen(signal) + strlen("start") + 1];
+
+   snprintf(signal_buffer, sizeof(signal_buffer), "%s%s", signal, 
sd->pulse_state ? "start" : "stop");
+   elm_layout_signal_emit(obj, signal_buffer, emitter);
+}
+
 EOLIAN static void
 _efl_ui_progressbar_pulse_set(Eo *obj, Efl_Ui_Progressbar_Data *sd, Eina_Bool 
state)
 {
@@ -626,20 +638,7 @@ _efl_ui_progressbar_pulse_set(Eo *obj, 
Efl_Ui_Progressbar_Data *sd, Eina_Bool st
 
    sd->pulse_state = state;
 
-   if (elm_widget_is_legacy(obj))
-     {
-        if (sd->pulse_state)
-          elm_layout_signal_emit(obj, "elm,state,pulse,start", "elm");
-        else
-          elm_layout_signal_emit(obj, "elm,state,pulse,stop", "elm");
-     }
-   else
-     {
-        if (sd->pulse_state)
-          elm_layout_signal_emit(obj, "efl,state,pulse,start", "efl");
-        else
-          elm_layout_signal_emit(obj, "efl,state,pulse,stop", "efl");
-     }
+   _apply_pulse_state(obj, sd);
 }
 
 EOLIAN static Eina_Bool
@@ -899,25 +898,40 @@ elm_progressbar_add(Evas_Object *parent)
 EAPI void
 elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse)
 {
-   efl_ui_progressbar_pulse_mode_set(obj, pulse);
+   EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(obj, sd);
+   pulse = !!pulse;
+   if (sd->pulse == pulse) return;
+
+   sd->pulse = pulse;
+
+   efl_ui_widget_theme_apply(obj);
 }
 
 EAPI Eina_Bool
 elm_progressbar_pulse_get(const Evas_Object *obj)
 {
-   return efl_ui_progressbar_pulse_mode_get(obj);
+   EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(obj, sd, EINA_FALSE);
+   return sd->pulse;
 }
 
 EAPI void
 elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state)
 {
-   efl_ui_progressbar_pulse_set(obj, state);
+   EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(obj, sd);
+
+   state = !!state;
+   if ((!sd->pulse) || (sd->pulse_state == state)) return;
+
+   sd->pulse_state = state;
+
+   _apply_pulse_state(obj, sd);
 }
 
 EAPI Eina_Bool
 elm_progressbar_is_pulsing_get(const Evas_Object *obj)
 {
-   return efl_ui_progressbar_pulse_get(obj);
+   EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(obj, sd, EINA_FALSE);
+   return (sd->pulse_state && sd->pulse);
 }
 
 EAPI void

-- 


Reply via email to