forked from enlightenment/efl
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 <amitesh.sh@samsung.com>
This commit is contained in:
parent
071bdb6b22
commit
99738e4d39
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
Loading…
Reference in New Issue