Gengrid item management
This code snippet demonstrates how to retrieve items from a gengrid: first, last, previous and next. It also shows hot to get index of an item and how to retrieve items count.
//return an icon (defined by data)
static Evas_Object *_item_content_get(void *data, Evas_Object *obj, const char *part) {
Evas_Object *icon = elm_icon_add(obj);
elm_icon_standard_set(icon, data);
evas_object_show(icon);
return icon;
}
static void gengrid_test(Evas_Object *parent) {
Evas_Object *grid = elm_gengrid_add(parent);
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(parent, grid);
evas_object_show(grid);
elm_gengrid_horizontal_set(grid, EINA_TRUE);
elm_gengrid_item_size_set(grid, 150, 150);
Elm_Gengrid_Item_Class *gic;
gic = elm_gengrid_item_class_new();
gic->func.content_get = _item_content_get;
//create ten clock items
for (int i = 0; i < 10; i++) {
elm_gengrid_item_append(grid, gic, "clock", NULL, NULL);
}
//get the first item and change it's data
Elm_Object_Item *first = elm_gengrid_first_item_get(grid);
elm_object_item_data_set(first, "close");
//get the second item
Elm_Object_Item *next =elm_gengrid_item_next_get(first);
elm_object_item_data_set(next, "refresh");
//get the last item
Elm_Object_Item *last = elm_gengrid_last_item_get(grid);
elm_object_item_data_set(last, "close");
//get the item before the last one
Elm_Object_Item *prev = elm_gengrid_item_prev_get(last);
elm_object_item_data_set(prev, "refresh");
//get index of an item
int index = elm_gengrid_item_index_get(prev);
dlog_print(DLOG_INFO, LOG_TAG, "index: %d", index);
//get item's count
int count = elm_gengrid_items_count(grid);
dlog_print(DLOG_INFO, LOG_TAG, "There are %d items in this gengrid.", count);
}