ami pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=99738e4d39a9228738bac6853de2942b1e364eb0

commit 99738e4d39a9228738bac6853de2942b1e364eb0
Author: Amitesh Singh <[email protected]>
Date:   Wed May 24 17:02:37 2017 +0900

    Efl.Ui.Progressbar: Implement Efl.Ui.Progress intf for progressbar part
    
    and remove part_value_set/get as EO APIs
    
    ref T5360
    
    Signed-off-by: Amitesh Singh <[email protected]>
---
 src/lib/elementary/efl_ui_progressbar.c            | 146 +++++++++++++--------
 src/lib/elementary/efl_ui_progressbar.eo           |  21 ---
 .../elementary/efl_ui_progressbar_internal_part.eo |   5 +-
 src/lib/elementary/elm_progressbar_legacy.h        |  30 +++++
 4 files changed, 125 insertions(+), 77 deletions(-)

diff --git a/src/lib/elementary/efl_ui_progressbar.c 
b/src/lib/elementary/efl_ui_progressbar.c
index 0a71905..e8ef50f 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -422,12 +422,62 @@ _efl_ui_progressbar_efl_ui_progress_span_size_get(Eo *obj 
EINA_UNUSED, Efl_Ui_Pr
    return sd->size;
 }
 
+static void
+_progressbar_part_value_set(Eo *obj, Efl_Ui_Progressbar_Data *sd, const char 
*part_name, double val)
+{
+   Efl_Ui_Progress_Status *ps;
+   Eina_Bool  existing_ps = EINA_FALSE;
+   Eina_List *l;
+
+   if (val < MIN_RATIO_LVL) val = MIN_RATIO_LVL;
+   if (val > MAX_RATIO_LVL) val = MAX_RATIO_LVL;
+
+   if (!strcmp(part_name, "elm.cur.progressbar"))
+     sd->val = val;
+
+   EINA_LIST_FOREACH(sd->progress_status, l, ps)
+     {
+        if (!strcmp(ps->part_name, part_name))
+          {
+             existing_ps = EINA_TRUE;
+             break;
+          }
+     }
+
+   if (!existing_ps)
+      {
+         ps = _progress_status_new(part_name, val);
+         sd->progress_status = eina_list_append(sd->progress_status, ps);
+      }
+   else
+      ps->val = val;
+
+   _val_set(obj);
+   _units_set(obj);
+   efl_event_callback_legacy_call
+     (obj, EFL_UI_PROGRESSBAR_EVENT_CHANGED, NULL);
+}
+
+static double
+_progressbar_part_value_get(Efl_Ui_Progressbar_Data *sd, const char* part)
+{
+   Efl_Ui_Progress_Status *ps;
+   Eina_List *l;
+
+   EINA_LIST_FOREACH(sd->progress_status, l, ps)
+     {
+        if (!strcmp(ps->part_name, part)) return ps->val;
+     }
+
+   return 0.0;
+}
+
 EOLIAN static void
 _efl_ui_progressbar_efl_ui_progress_progress_value_set(Eo *obj, 
Efl_Ui_Progressbar_Data *sd, double val)
 {
    if (EINA_DBL_EQ(sd->val, val)) return;
 
-   elm_progressbar_part_value_set(obj, "elm.cur.progressbar", val);
+   _progressbar_part_value_set(obj, sd, "elm.cur.progressbar", val);
 }
 
 EOLIAN static double
@@ -477,56 +527,6 @@ _efl_ui_progressbar_pulse_get(Eo *obj EINA_UNUSED, 
Efl_Ui_Progressbar_Data *sd)
    return (sd->pulse_state && sd->pulse);
 }
 
-EOLIAN static void
-_efl_ui_progressbar_part_value_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Progressbar_Data *sd, const char *part_name, double val)
-{
-   Efl_Ui_Progress_Status *ps;
-   Eina_Bool  existing_ps = EINA_FALSE;
-   Eina_List *l;
-
-   if (val < MIN_RATIO_LVL) val = MIN_RATIO_LVL;
-   if (val > MAX_RATIO_LVL) val = MAX_RATIO_LVL;
-
-   if (!strcmp(part_name, "elm.cur.progressbar"))
-     sd->val = val;
-
-   EINA_LIST_FOREACH(sd->progress_status, l, ps)
-     {
-        if (!strcmp(ps->part_name, part_name))
-          {
-             existing_ps = EINA_TRUE;
-             break;
-          }
-     }
-
-   if (!existing_ps)
-      {
-         ps = _progress_status_new(part_name, val);
-         sd->progress_status = eina_list_append(sd->progress_status, ps);
-      }
-   else
-      ps->val = val;
-
-   _val_set(obj);
-   _units_set(obj);
-   efl_event_callback_legacy_call
-     (obj, EFL_UI_PROGRESSBAR_EVENT_CHANGED, NULL);
-}
-
-EOLIAN static double
-_efl_ui_progressbar_part_value_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Progressbar_Data *sd, const char* part)
-{
-   Efl_Ui_Progress_Status *ps;
-   Eina_List *l;
-
-   EINA_LIST_FOREACH(sd->progress_status, l, ps)
-     {
-        if (!strcmp(ps->part_name, part)) return ps->val;
-     }
-
-   return 0.0;
-}
-
 EAPI void
 elm_progressbar_value_set(Evas_Object *obj, double val)
 {
@@ -658,9 +658,34 @@ _efl_ui_progressbar_class_constructor(Efl_Class *klass)
 }
 
 /* Efl.Part begin */
-
 ELM_PART_OVERRIDE(efl_ui_progressbar, EFL_UI_PROGRESSBAR, ELM_LAYOUT, 
Efl_Ui_Progressbar_Data, Elm_Part_Data)
-ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_progressbar, EFL_UI_PROGRESSBAR, 
ELM_LAYOUT, Efl_Ui_Progressbar_Data, Elm_Part_Data)
+
+static EOLIAN Eina_Bool
+_efl_ui_progressbar_internal_part_efl_container_content_set(Eo *obj, 
Elm_Part_Data *_pd EINA_UNUSED, Efl_Gfx *content)
+{
+   Elm_Part_Data *pd = efl_data_scope_get(obj, ELM_LAYOUT_INTERNAL_PART_CLASS);
+   Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, 
EFL_UI_PROGRESSBAR_CLASS);
+   ELM_PART_RETURN_VAL(_efl_ui_progressbar_content_set(pd->obj, sd, pd->part, 
content));
+}
+
+EOLIAN static void
+_efl_ui_progressbar_internal_part_efl_ui_progress_progress_value_set(Eo *obj, 
Elm_Part_Data *_pd EINA_UNUSED, double val)
+{
+  Elm_Part_Data *pd = efl_data_scope_get(obj, ELM_LAYOUT_INTERNAL_PART_CLASS);
+  Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, 
EFL_UI_PROGRESSBAR_CLASS);
+
+  _progressbar_part_value_set(pd->obj, sd, pd->part, val);
+}
+
+EOLIAN static double
+_efl_ui_progressbar_internal_part_efl_ui_progress_progress_value_get(Eo *obj, 
Elm_Part_Data *_pd EINA_UNUSED)
+{
+   Elm_Part_Data *pd = efl_data_scope_get(obj, ELM_LAYOUT_INTERNAL_PART_CLASS);
+   Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, 
EFL_UI_PROGRESSBAR_CLASS);
+
+   return _progressbar_part_value_get(sd, pd->part);
+}
+
 #include "efl_ui_progressbar_internal_part.eo.c"
 
 /* Efl.Part end */
@@ -694,4 +719,17 @@ EAPI Eina_Bool
 elm_progressbar_is_pulsing_get(const Evas_Object *obj)
 {
    return efl_ui_progressbar_pulse_get(obj);
-}
\ No newline at end of file
+}
+
+EAPI void
+elm_progressbar_part_value_set(Evas_Object *obj, const char *part, double val)
+{
+   if (EINA_DBL_EQ(efl_ui_progress_value_get(efl_part(obj, part)), val)) 
return;
+   efl_ui_progress_value_set(efl_part(obj, part), val);
+}
+
+EAPI double
+elm_progressbar_part_value_get(const Evas_Object *obj, const char *part)
+{
+   return efl_ui_progress_value_get(efl_part(obj, part));
+}
diff --git a/src/lib/elementary/efl_ui_progressbar.eo 
b/src/lib/elementary/efl_ui_progressbar.eo
index d067e11..2dcaf65 100644
--- a/src/lib/elementary/efl_ui_progressbar.eo
+++ b/src/lib/elementary/efl_ui_progressbar.eo
@@ -2,7 +2,6 @@ class Efl.Ui.Progressbar (Elm.Layout, Efl.Ui.Progress,
                           Efl.Orientation)
 {
    [[Elementary progressbar class]]
-   //legacy_prefix: elm_progressbar;
    methods {
       @property pulse_mode {
          [[Control whether a given progress bar widget is at "pulsing mode" or 
not.
@@ -47,26 +46,6 @@ class Efl.Ui.Progressbar (Elm.Layout, Efl.Ui.Progress,
            state: bool; [[$true, to start the pulsing animation, $false to 
stop it]]
          }
       }
-      part_value_set {
-         [[Set the progress value (in percentage) on a given progress bar 
widget for the given part name
-
-           Use this call to set progress bar status for more than one progress 
status .
-
-           @since 1.8]]
-         params {
-            @in part: string; [[The partname to which val have to set]]
-            @in val: double; [[The progress value (must be between $0.0 and 
1.0)]]
-         }
-      }
-      part_value_get @const {
-         [[Get the progress value (in percentage) on a given progress bar 
widget for a particular part
-
-           @since 1.8]]
-         return: double; [[The value of the progressbar]]
-         params {
-            @in part: string; [[The part name of the progress bar]]
-         }
-      }
    }
    implements {
       class.constructor;
diff --git a/src/lib/elementary/efl_ui_progressbar_internal_part.eo 
b/src/lib/elementary/efl_ui_progressbar_internal_part.eo
index 080ba5d..09f40ee 100644
--- a/src/lib/elementary/efl_ui_progressbar_internal_part.eo
+++ b/src/lib/elementary/efl_ui_progressbar_internal_part.eo
@@ -1,8 +1,9 @@
-class Efl.Ui.Progressbar.Internal.Part (Elm.Layout.Internal.Part)
+class Efl.Ui.Progressbar.Internal.Part (Elm.Layout.Internal.Part, 
Efl.Ui.Progress)
 {
    [[Elementary progressbar internal part class]]
-   data: null;
+   data: Elm_Part_Data;
    implements {
       Efl.Container.content { set; }
+      Efl.Ui.Progress.progress_value { set; get; }
    }
 }
diff --git a/src/lib/elementary/elm_progressbar_legacy.h 
b/src/lib/elementary/elm_progressbar_legacy.h
index 57ae0a8..5068bc0 100644
--- a/src/lib/elementary/elm_progressbar_legacy.h
+++ b/src/lib/elementary/elm_progressbar_legacy.h
@@ -253,4 +253,34 @@ EAPI void elm_progressbar_pulse(Evas_Object *obj, 
Eina_Bool state);
  */
 EAPI Eina_Bool elm_progressbar_is_pulsing_get(const Evas_Object *obj);
 
+
+/**
+ * @brief Set the progress value (in percentage) on a given progress bar widget
+ * for the given part name
+ *
+ * Use this call to set progress bar status for more than one progress status .
+ *
+ * @param[in] part The partname to which val have to set
+ * @param[in] val The progress value (must be between $0.0 and 1.0)
+ *
+ * @since 1.8
+ *
+ * @ingroup Elm_Progressbar
+ */
+EAPI void elm_progressbar_part_value_set(Evas_Object *obj, const char *part, 
double val);
+
+/**
+ * @brief Get the progress value (in percentage) on a given progress bar widget
+ * for a particular part
+ *
+ * @param[in] part The part name of the progress bar
+ *
+ * @return The value of the progressbar
+ *
+ * @since 1.8
+ *
+ * @ingroup Elm_Progressbar
+ */
+EAPI double elm_progressbar_part_value_get(const Evas_Object *obj, const char 
*part);
+
 #include "efl_ui_progressbar.eo.legacy.h"
\ No newline at end of file

-- 


Reply via email to