elementary: Introduce a new edje_external param to the progressbar widget.

This widget was lacking an edje_external param to notify the widget to start or
stop pulsing from edje.

@fix Now the edje_external progressbar test works as expected.
This commit is contained in:
Michaël Bouchaud (yoz) 2016-09-02 01:58:27 +02:00
parent 8f96646605
commit a9a9240421
4 changed files with 68 additions and 1 deletions

View File

@ -735,6 +735,18 @@ embryo script and from C code.";
}
program { name: "disable_button3";
action: PARAM_SET "ext_button3" "disabled" 1;
after: "start_pulsing1";
}
program { name: "start_pulsing1";
action: PARAM_SET "ext_pbar2" "pulsing" 1;
after: "start_pulsing2";
}
program { name: "start_pulsing2";
action: PARAM_SET "ext_pbar5" "pulsing" 1;
after: "start_pulsing3";
}
program { name: "start_pulsing3";
action: PARAM_SET "ext_pbar7" "pulsing" 1;
after: "anim_0";
}
program { name: "anim_0";
@ -801,6 +813,18 @@ embryo script and from C code.";
}
program { name: "reenable_button3";
action: PARAM_SET "ext_button3" "disabled" 0;
after: "stop_pulsing1";
}
program { name: "stop_pulsing1";
action: PARAM_SET "ext_pbar2" "pulsing" 0;
after: "stop_pulsing2";
}
program { name: "stop_pulsing2";
action: PARAM_SET "ext_pbar5" "pulsing" 0;
after: "stop_pulsing3";
}
program { name: "stop_pulsing3";
action: PARAM_SET "ext_pbar7" "pulsing" 0;
}
script {
public my_value;
@ -819,6 +843,9 @@ embryo script and from C code.";
external_param_set_bool(PART:"ext_button1", "disabled", 0);
external_param_set_bool(PART:"ext_button2", "disabled", 0);
external_param_set_bool(PART:"ext_button3", "disabled", 0);
external_param_set_bool(PART:"ext_pbar2", "pulsing", 0);
external_param_set_bool(PART:"ext_pbar5", "pulsing", 0);
external_param_set_bool(PART:"ext_pbar7", "pulsing", 0);
}
}
}
@ -830,6 +857,9 @@ embryo script and from C code.";
external_param_set_bool(PART:"ext_button1", "disabled", 1);
external_param_set_bool(PART:"ext_button2", "disabled", 1);
external_param_set_bool(PART:"ext_button3", "disabled", 1);
external_param_set_bool(PART:"ext_pbar2", "pulsing", 1);
external_param_set_bool(PART:"ext_pbar5", "pulsing", 1);
external_param_set_bool(PART:"ext_pbar7", "pulsing", 1);
timer_cb(0);
}
}

View File

@ -16,6 +16,8 @@ typedef struct _Elm_Params_Progressbar
Eina_Bool horizontal_exists:1;
Eina_Bool pulse:1;
Eina_Bool pulse_exists:1;
Eina_Bool pulsing:1;
Eina_Bool pulsing_exists:1;
} Elm_Params_Progressbar;
static void
@ -45,6 +47,8 @@ external_progressbar_state_set(void *data EINA_UNUSED, Evas_Object *obj,
elm_progressbar_unit_format_set(obj, p->unit);
if (p->pulse_exists)
elm_progressbar_pulse_set(obj, p->pulse);
if (p->pulsing_exists)
elm_progressbar_pulse(obj, p->pulsing);
}
static Eina_Bool
@ -85,7 +89,7 @@ external_progressbar_param_set(void *data EINA_UNUSED, Evas_Object *obj,
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "pulse"))
else if (!strcmp(param->name, "pulse"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
@ -93,6 +97,14 @@ external_progressbar_param_set(void *data EINA_UNUSED, Evas_Object *obj,
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "pulsing"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
elm_progressbar_pulse(obj, param->i);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "inverted"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
@ -165,6 +177,14 @@ external_progressbar_param_get(void *data EINA_UNUSED, const Evas_Object *obj,
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "pulsing"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
param->i = elm_progressbar_is_pulsing_get(obj);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "inverted"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
@ -238,6 +258,11 @@ external_progressbar_params_parse(void *data EINA_UNUSED,
mem->pulse = !!param->i;
mem->pulse_exists = EINA_TRUE;
}
else if (!strcmp(param->name, "pulsing"))
{
mem->pulsing = !!param->i;
mem->pulsing_exists = EINA_TRUE;
}
else if (!strcmp(param->name, "unit format"))
mem->unit = eina_stringshare_add(param->s);
else if (!strcmp(param->name, "label"))
@ -274,6 +299,7 @@ static Edje_External_Param_Info external_progressbar_params[] = {
EDJE_EXTERNAL_PARAM_INFO_DOUBLE("value"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("horizontal"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("pulse"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("pulsing"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("inverted"),
EDJE_EXTERNAL_PARAM_INFO_INT("span"),
EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("unit format", "%1.2f"),

View File

@ -477,6 +477,12 @@ _elm_progressbar_pulse(Eo *obj, Elm_Progressbar_Data *sd, Eina_Bool state)
elm_layout_signal_emit(obj, "elm,state,pulse,stop", "elm");
}
EOLIAN static Eina_Bool
_elm_progressbar_is_pulsing_get(const Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd)
{
return (sd->pulse_state && sd->pulse);
}
EOLIAN static void
_elm_progressbar_part_value_set(Eo *obj EINA_UNUSED, Elm_Progressbar_Data *sd, const char *part_name, double val)
{

View File

@ -53,6 +53,11 @@ class Elm.Progressbar (Elm.Layout, Efl.Ui.Progress,
@in state: bool; [[$true, to start the pulsing animation, $false to stop it]]
}
}
is_pulsing_get @const {
[[Get the pulsing state on a given progressbar widget. ]]
return: bool; [[$true if the $obj is currently pulsing ]]
}
}
implements {
class.constructor;