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
Figure: 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"); }