summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitesh Singh <amitesh.sh@samsung.com>2017-05-24 17:02:37 +0900
committerAmitesh Singh <amitesh.sh@samsung.com>2017-05-24 19:23:17 +0900
commit1bb7e2c7ec501113932c504c2b8bf68513f549e0 (patch)
tree89a20f716a8a14cc01b871a1dc44682b35cc8482
parent5ef7d816c8d2f19d1c2cc46cb1b68aa3920c6c44 (diff)
downloadefl-devs/ami/pb_work.tar.gz
Efl.Ui.Progressbar: Implement Efl.Ui.Progress intf for progressbar partdevs/ami/pb_work
and remove part_value_set/get as EO APIs ref T5360 Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c146
-rw-r--r--src/lib/elementary/efl_ui_progressbar.eo21
-rw-r--r--src/lib/elementary/efl_ui_progressbar_internal_part.eo5
-rw-r--r--src/lib/elementary/elm_progressbar_legacy.h30
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 0a71905233..e8ef50fdbf 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 d067e117c1..2dcaf65040 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 080ba5d8f4..09f40ee3d7 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 57ae0a8c13..5068bc0dee 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