Gengrid items selection
This code snippet shows how to use functions related to selecting gengrid items and finding out which items are already selected.
//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->item_style = "default";
gic->func.content_get = _item_content_get;
Elm_Object_Item* clock = elm_gengrid_item_append(grid, gic, "clock", NULL, NULL);
Elm_Object_Item *close = elm_gengrid_item_append(grid, gic, "close", NULL, NULL);
Elm_Object_Item *folder = elm_gengrid_item_append(grid, gic, "folder", NULL, NULL);
elm_gengrid_item_append(grid, gic, "apps", NULL, NULL);
//enable multiple selection
elm_gengrid_multi_select_set(grid, EINA_TRUE);
//select an item
elm_gengrid_item_selected_set(clock, EINA_TRUE);
elm_gengrid_item_selected_set(close, EINA_TRUE);
//check if an item is selected
Eina_Bool close_selected = elm_gengrid_item_selected_get(close); //true
Eina_Bool folder_selected = elm_gengrid_item_selected_get(folder); //false
//get selected item
//if multiple items are selected it will return the one that was selected first
Elm_Object_Item *selected_item = elm_gengrid_selected_item_get(grid);
//returns an Eina_List with all selected items
Eina_List *selected_items = elm_gengrid_selected_items_get(grid);
}