This widget is used to display the progress status of a given job. It inherits from the layout widget, so all function concerning the layout widget is used on the progressbar widget.
This is how to create a progressbar widget.
Evas_Object *pb = elm_progressbar_add(win);
This widget has the following styles:
By default, the progressbar does not show a label or an icon, and the unit label is set to â%.0f % %â.
This is 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. We set it to be a float number with two decimals.
elm_progressbar_unit_format_set(pb, "%1.2f%%");
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);
It 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);
We can set the orientation of the progressbar to vertical instead of the default horizontal orientation.
elm_progressbar_horizontal_set(pb, EINA_FALSE);
This widget emits the following signals, besides the ones sent from Layout:
âchangedâ
- when the value is changed (since 1.7)âfocusedâ
- When the progressbar has received focus. (since 1.8)âunfocusedâ
- When the progressbar has lost focus. (since 1.8)âlanguage,changedâ
- the program's language changed (since 1.9)The âchangedâ signal is the only signal specifically emitted by the progressbar widget.
This is 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 static void changed_cb(void *data, Evas_Object *obj, void *event_info) { printf("The value has changed\n"); }