Index widget settings
This code snippet demonstrate how to use some of index widget's settings: autohide, indicator, delay time.
const char *countries[] = { "Algeria", "Argentina", "Australia", "Brazil", "Canada", "China",
"Democratic Republic of the Congo", "Greenland", "India", "Indonesia", "Iran", "Kazakhstan", "Libya", "Mexico",
"Mongolia", "Peru", "Russia", "Saudi Arabia", "Sudan", "United States of America" };
static void _index_changed(void *data, Evas_Object *obj, void *event_info) {
elm_list_item_bring_in(elm_object_item_data_get(event_info));
}
static void index_test(Evas_Object *parent) {
Evas_Object *list = elm_list_add(parent);
elm_win_resize_object_add(parent, list);
evas_object_show(list);
Evas_Object * index = elm_index_add(parent);
evas_object_size_hint_weight_set(index, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(parent, index);
evas_object_show(index);
char currentLetter = 0;
for (int i = 0; i < (sizeof(countries) / sizeof(countries[0])); i++) {
Elm_Object_Item *lit = elm_list_item_append(list, countries[i], NULL, NULL, NULL, NULL);
if (currentLetter != countries[i][0]) {
currentLetter = countries[i][0];
char buf[32];
snprintf(buf, sizeof(buf), "%c", currentLetter);
elm_index_item_append(index, buf, NULL, lit);
}
}
evas_object_smart_callback_add(index, "delay,changed", _index_changed,
NULL);
//disable index autohide
elm_index_autohide_disabled_set(index, EINA_TRUE);
//disable popup with currently selected letter
elm_index_indicator_disabled_set(index, EINA_TRUE);
// set delay time after which list will go to the selected index
// here it is 1 sec, default value is 0.2sec
elm_index_delay_change_time_set(index, 1);
elm_index_level_go(index, 0);
}