static Evas_Object * _page_grid_add(Evas_Object *parent, App_Inwin_Data *aid) { Evas_Object *grid; char *theme, *emo; Eina_List *emos, *it; static Elm_Gengrid_Item_Class *it_class; it_class = elm_gengrid_item_class_new(); it_class->item_style = "default"; it_class->func.text_get = _emo_label_get; it_class->func.content_get = _emo_content_get; it_class->func.del = _emo_del; theme = elm_theme_list_item_path_get("default", NULL); if (!theme) return NULL; emos = edje_file_collection_list(theme); free(theme); if (!emos) return NULL; grid = elm_gengrid_add(parent); elm_gengrid_item_size_set(grid, 64, 80); evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL); EINA_LIST_FOREACH(emos, it, emo) { char name[512]; if (strncmp(emo, "elm/entry/emoticon/", 19)) continue; sscanf(emo, "elm/entry/emoticon/%[^/]/default", name); elm_gengrid_item_append(grid, it_class, strdup(name), _it_sel_cb, aid); }
EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *grid, *idx; Elm_Object_Item *gg_it; unsigned int i; Elm_Gengrid_Item_Class gic; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_app_info_set(elm_main, "elementary", "images"); win = elm_win_util_standard_add("index", "Index Example"); elm_win_autodel_set(win, EINA_TRUE); grid = elm_gengrid_add(win); elm_gengrid_item_size_set(grid, 150, 150); gic.item_style = "default"; gic.func.text_get = _grid_label_get; gic.func.content_get = _grid_content_get; gic.func.state_get = NULL; gic.func.del = NULL; evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, grid); evas_object_show(grid); idx = elm_index_add(win); evas_object_size_hint_weight_set(idx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, idx); evas_object_show(idx); for (i = 0; i < (sizeof(items) / sizeof(items[0])); i++) { char buf[32]; gg_it = elm_gengrid_item_append(grid, &gic, (void *)i, NULL, NULL); /* indexing by first letters */ snprintf(buf, sizeof(buf), "%c", items[i][0]); elm_index_item_sorted_insert(idx, buf, NULL, gg_it, _index_icmp, NULL); } evas_object_smart_callback_add(idx, "delay,changed", _index_changed, NULL); elm_index_autohide_disabled_set(idx, EINA_FALSE); elm_index_level_go(idx, 0); evas_object_resize(win, 320, 300); evas_object_show(win); elm_run(); elm_shutdown(); return 0; }
/* append an item */ static void _append_bt_clicked(void *data, Evas_Object *obj, void *event_info) { Evas_Object *grid = data; Example_Item *it = _item_new(); elm_gengrid_item_append(grid, gic, it, _grid_sel, NULL); }
void GengridItemBase::Append(Evas_Object *_gengrid) { gengrid = _gengrid; item = elm_gengrid_item_append(gengrid, &item_class, this, _item_sel_cb, /* select function */ this); /* select function data */ elm_object_item_data_set(item, this); itemAdded(); }
void main_menu_update_libraries_list() { Enlil_String *string; Eina_List *list = enlil_library_eet_path_load(); elm_gengrid_clear(libraries_list); // Library *lib = calloc(1, sizeof(Library)); lib->is_new_library = EINA_TRUE; lib->path = eina_stringshare_add("Add a new Library"); elm_gengrid_item_append(libraries_list, &itc_grid, lib, _library_select, NULL); // EINA_LIST_FREE(list, string) { Library *lib = calloc(1, sizeof(Library)); lib->is_new_library = EINA_FALSE; lib->path = eina_stringshare_add(string->string); lib->photo1 = enlil_photo_new(); Enlil_Photo_Data *photo_data1 = calloc(1, sizeof(Enlil_Photo_Data)); enlil_photo_user_data_set(lib->photo1, photo_data1, enlil_photo_data_free); enlil_photo_mustNotBeSaved_set(lib->photo1, EINA_TRUE); lib->photo2 = enlil_photo_new(); Enlil_Photo_Data *photo_data2 = calloc(1, sizeof(Enlil_Photo_Data)); enlil_photo_user_data_set(lib->photo2, photo_data2, enlil_photo_data_free); enlil_photo_mustNotBeSaved_set(lib->photo2, EINA_TRUE); photo_data1->library_item = elm_gengrid_item_append(libraries_list, &itc_grid, lib, _library_select, NULL); photo_data2->library_item = photo_data1->library_item; EINA_STRINGSHARE_DEL(string->string); FREE(string); }
///////////////// GENGRID ///////////////////////////// static void _entrance_fill_gengrid(Evas_Object *obj, Entrance_Fill *ef, Eina_List *contents, Evas_Smart_Cb func) { Eina_List *l; Elm_Gengrid_Item_Class *ggc; void *content; if (!ef->ggc) { ggc = elm_gengrid_item_class_new(); ef->ggc = ggc; } else ggc = ef->ggc; ggc->item_style = ef->item_style; ggc->func.text_get = ef->func.text_get; ggc->func.content_get = ef->func.content_get; ggc->func.state_get = ef->func.state_get; ggc->func.del = ef->func.del; EINA_LIST_FOREACH(contents, l, content) elm_gengrid_item_append(obj, ggc, content, func, content); }