Mobile native

Progressbar

This feature is supported in mobile applications only.

The progressbar component is used to display the progress status of a given job. It inherits from the layout component, so all function concerning the layout component is used on the progressbar component.

Figure: Progressbar component

Progressbar component

Figure: Progressbar hierarchy

Progressbar hierarchy

Adding a Progressbar Component

The following example shows how to create a progressbar component.

Evas_Object *pb = elm_progressbar_add(win);

Using the Progressbar Styles

The progressbar has several styles:

  • default
  • pending_list
  • process_large
  • process_medium
  • process_small

Set the style of the progressbar to pending_list.

elm_object_style_set(pb, "pending_list");

Using the Progressbar

By default, the progressbar does not show a label or an icon, and the unit label is set to %.0f %%.

The following example shows how to set a label. In this example it is named Test label.

elm_object_text_set(pb, "Test label");

An icon is set with elm_object_part_content_set() using the partname icon.

elm_object_part_content_set(pb, "icon", icon_object);

The unit label format string can be modified using a printf style format. Set it to be a float number with two decimals.

elm_progressbar_unit_format_set(pb, "%1.2f%%");

Configuring the Progressbar

The progressbar pulse mode is activated to make the progressbar loop infinitely between the start and end position.

elm_progressbar_pulse_set(pb, EINA_TRUE);
elm_progressbar_pulse(pb, EINA_TRUE);

The progressbar can be inverted. In that mode, the values are inverted so that the high values are on the left and the low values on the right.

elm_progressbar_inverted_set(pb, EINA_TRUE);

The progressbar emits the changed signal when the progress value changes. The value is changed with the elm_progressbar_value_set() function. Here the pb progress value is set to 20%.

elm_progressbar_value_set(pb, 0.2);

The current value can be read.

double value = elm_progressbar_value_get(pb);

You can set the orientation of the progressbar to vertical instead of the default horizontal orientation.

elm_progressbar_horizontal_set(pb, EINA_FALSE);

Using the Progressbar Callbacks

The changed signal is the only signal specifically emitted by the progressbar component.

The following example shows how to register a callback on this signal.

{
   evas_object_smart_callback_add(pb, "changed", changed_cb, data);
}

// Callback function for the "changed" signal
// This callback is called when the progressbar value changes
void changed_cb(void *data, Evas_Object *obj, void *event_info)
{
   dlog_print(DLOG_INFO, LOG_TAG, "The value has changed\n");
}
Go to top