Progressbar is not animated on real device

60 Views Asked by At

I've created an indeterminated progressbar for Tizen 4.0 using native C language:

Evas_Object* progressbar = elm_progressbar_add(parent);
evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

elm_object_style_set(progressbar, "process/small");
elm_progressbar_pulse_set(progressbar, EINA_TRUE);
elm_progressbar_pulse(progressbar, EINA_TRUE);

elm_object_part_content_set(parent, "elm.progress", progressbar);
evas_object_show(progressbar);

Here is "the" official documentation: https://docs.tizen.org/application/native/guides/ui/efl/wearable/component-progressbar.

If I run the code above on my emulator (x86, Tizen 4.0), I get the expected result:

enter image description here

However when running on the watch, it's simply does not start:

enter image description here

What's wrong with the code above? I guess nothing. But their documentation is lacking information again and again.

Update

The issue persists only if you want to do it from an event handler:

elm_layout_signal_callback_add(layout, "mouse,clicked,1", "elm.*", show_loader_cb, layout);

static void show_loader_cb(void* data, Evas_Object* object, const char* emission, const char* source) { 
  Evas_Object* parent = reinterpret_cast<Evas_Object*>(data);
  //PUT HERE THE CODE ABOVE 
}
1

There are 1 best solutions below

0
On

There seems to be no problem with your code.

But the progress not working (2nd image) is general status with

elm_progressbar_pulse(obj, EINA_FALSE);

Check this point once more.

And I'm not exactly sure of your intentions in the event handler part.

Do you ever want to add progress and work when you click on a layout?

If so, try this one,

evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, show_loader_cb, layout);

I haven't seen your full code, but I guess show_loader_cb wasn't called via callback.