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; }
/* change items' size */ static void _size_changed(void *data, Evas_Object *obj, void *event_info) { Evas_Object *grid = data; int size = elm_spinner_value_get(obj); elm_gengrid_item_size_set(grid, size, size); }
static void startup(void) { tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ "); _elm_precondition(); test_win = elm_win_add(NULL, "Page Control", ELM_WIN_BASIC); elm_win_title_set(test_win, "Page Control"); elm_win_autodel_set(test_win, 1); test_bg = elm_bg_add(test_win); elm_win_resize_object_add(test_win, test_bg); evas_object_size_hint_weight_set(test_bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(test_bg); evas_object_resize(test_win, 480, 800); evas_object_show(test_win); test_eo = elm_gengrid_add(test_win); elm_gengrid_item_size_set(test_eo, 120, 120); tet_infoline("[[ TET_MSG ]]:: Completing startup"); }
EAPI int elm_main(int argc, char **argv) { Evas_Object *window; Evas_Object *layout; Evas_Object *edje; Evas_Object *grid; Evas_Object *list; char path[PATH_MAX]; Eina_Bool quit_option = EINA_FALSE; int args; Ecore_Getopt_Value values[] = { ECORE_GETOPT_VALUE_BOOL(crazy_option), ECORE_GETOPT_VALUE_BOOL(quit_option), ECORE_GETOPT_VALUE_BOOL(quit_option), ECORE_GETOPT_VALUE_BOOL(quit_option), ECORE_GETOPT_VALUE_BOOL(quit_option), ECORE_GETOPT_VALUE_NONE }; _log_domain = eina_log_domain_register("Excessive", NULL); if (_log_domain < 0) { EINA_LOG_CRIT("could not create log domain 'Excessive'."); return -1; } args = ecore_getopt_parse(&options, values, argc, argv); if (args < 0) { ERR("could not parse command line options."); return -1; } if (quit_option) return 0; excessive_browse_init(); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_theme_extension_add(NULL, PACKAGE_DATA_DIR "/themes/theme.edj"); elm_theme_overlay_add(NULL, PACKAGE_DATA_DIR "/themes/theme.edj"); elm_need_efreet(); elm_need_ethumb(); window = elm_win_add(NULL, PACKAGE_NAME, ELM_WIN_BASIC); if (!window) { ERR("could'nt create window."); return -1; } /* FIXME: later remember last size */ elm_win_alpha_set(window, 1); evas_object_resize(window, 800, 600); elm_win_title_set(window, PACKAGE_STRING); elm_win_autodel_set(window, 1); layout = elm_layout_add(window); if (!layout) { ERR("couldn't create layout object."); return -1; } evas_object_size_hint_align_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_win_resize_object_add(window, layout); if (!elm_layout_theme_set(layout, "layout", "application", "content")) { ERR("could not load style 'content' from theme"); return -1; } evas_object_show(layout); evas_object_show(window); edje = elm_layout_edje_get(layout); grid = edje_object_part_external_object_get(edje, "grid"); evas_object_data_set(grid, "excessive/layout", layout); evas_object_data_set(layout, "excessive/win", window); evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_gengrid_bounce_set(grid, EINA_FALSE, EINA_TRUE); elm_gengrid_align_set(grid, 0.5, 0.5); elm_gengrid_item_size_set(grid, 128, 128); excessive_browse_load(layout); list = edje_object_part_external_object_get(edje, "shortcut"); excessive_shortcut_init(list, grid); if (argc < args + 1) { getcwd(path, PATH_MAX); excessive_browse_directory(grid, path); } else { excessive_browse_directory(grid, argv[args]); } elm_run(); excessive_shortcut_shutdown(); excessive_browse_shutdown(); return 0; }
void main_menu_new(Evas_Object *edje) { Elm_Genlist_Item *item; Evas_Object *bt; //Libraries //libraries_list = edje_object_part_external_object_get(edje, "object.main_menu.list_libraries"); libraries_list = elm_gengrid_add(edje); elm_gengrid_item_size_set(libraries_list, 256, 256); if (!edje_object_part_swallow(edje, "object.main_menu.list_libraries", libraries_list)) edje_object_part_swallow( global_object, "object.main_menu.list_libraries", libraries_list); itc_grid.func.text_get = _library_get; itc_grid.func.del = _library_del; itc_grid.func.content_get = _library_icon_get; itc_grid.item_style = "enki"; // itc_menu.item_style = "default"; itc_menu.func.text_get = _gl_text_get; itc_menu.func.content_get = _gl_icon_get; itc_menu.func.state_get = NULL; itc_menu.func.del = NULL; bt_slideshow = enki_elm_genlist_item_menu_append(edje, &itc_menu, (void*) MENU_SLIDESHOW, NULL, _gl_sel, (void*) MENU_SLIDESHOW); bt_album_new = enki_elm_genlist_item_menu_append(edje, &itc_menu, (void*) MENU_ALBUM_NEW, NULL, _gl_sel, (void*) MENU_ALBUM_NEW); bt_import = enki_elm_genlist_item_menu_append(edje, &itc_menu, (void*) MENU_IMPORT_PHOTOS, NULL, _gl_sel, (void*) MENU_IMPORT_PHOTOS); bt_del_bg = enki_elm_genlist_item_menu_append(edje, &itc_menu, (void*) MENU_DEL_BG, NULL, _gl_sel, (void*) MENU_DEL_BG); item = enki_elm_genlist_item_menu_append(edje, &itc_menu, (void*) MENU_PREFERENCES, NULL, _gl_sel, (void*) MENU_PREFERENCES); bt_sync = enki_elm_genlist_item_menu_append(edje, &itc_menu, (void*) MENU_WEBSYNC, NULL, _gl_sel, (void*) MENU_WEBSYNC); bt = edje_object_part_external_object_get(edje, "object.menu.bt.preferences"); if (bt) evas_object_smart_callback_add(bt, "clicked", (Evas_Smart_Cb) _preferences_cb, NULL); bt = edje_object_part_external_object_get(edje, "object.menu.bt.libraries"); if (bt) evas_object_smart_callback_add(bt, "clicked", _libraries_cb, edje); // // bt = enki_elm_genlist_item_menu_append(edje, &itc_menu, // (void*)MENU_CLOSEENKI, NULL, // _gl_sel, (void*)MENU_CLOSEENKI); //library list main_menu_update_libraries_list(); }
EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *grid, *bx, *hbx_1, *hbx_2, *hbx_3, *bt, *ck, *sl, *sp; Eina_Bool bounce; double h, v; srand(time(NULL)); 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("gengrid", "Generic Grid Example"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); grid = elm_gengrid_add(win); elm_gengrid_item_size_set(grid, 150, 150); 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); elm_box_pack_end(bx, grid); evas_object_smart_callback_add(grid, "clicked,double", _double_click, NULL); evas_object_smart_callback_add(grid, "longpressed", _long_pressed, NULL); evas_object_show(grid); hbx_1 = elm_box_add(win); evas_object_size_hint_weight_set(hbx_1, EVAS_HINT_EXPAND, 0.0); elm_box_horizontal_set(hbx_1, EINA_TRUE); elm_box_pack_end(bx, hbx_1); evas_object_show(hbx_1); bt = elm_button_add(win); elm_object_text_set(bt, "Append"); evas_object_smart_callback_add(bt, "clicked", _append_bt_clicked, grid); elm_box_pack_end(hbx_1, bt); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Prepend"); evas_object_smart_callback_add(bt, "clicked", _prepend_bt_clicked, grid); elm_box_pack_end(hbx_1, bt); evas_object_show(bt); before_bt = elm_button_add(win); elm_object_text_set(before_bt, "Insert before"); evas_object_smart_callback_add(before_bt, "clicked", _before_bt_clicked, grid); elm_box_pack_end(hbx_1, before_bt); evas_object_show(before_bt); after_bt = elm_button_add(win); elm_object_text_set(after_bt, "Insert after"); evas_object_smart_callback_add(after_bt, "clicked", _after_bt_clicked, grid); elm_box_pack_end(hbx_1, after_bt); evas_object_show(after_bt); bt = elm_button_add(win); elm_object_text_set(bt, "Clear"); evas_object_smart_callback_add(bt, "clicked", _clear_cb, grid); elm_box_pack_end(hbx_1, bt); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Bring in 1st"); evas_object_smart_callback_add(bt, "clicked", _bring_1st_clicked, grid); elm_box_pack_end(hbx_1, bt); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Show last"); evas_object_smart_callback_add(bt, "clicked", _show_last_clicked, grid); elm_box_pack_end(hbx_1, bt); evas_object_show(bt); sp = elm_spinner_add(win); elm_spinner_min_max_set(sp, 10, 1024); elm_spinner_value_set(sp, 150); elm_spinner_label_format_set(sp, "Item size: %.0f"); evas_object_smart_callback_add(sp, "changed", _size_changed, grid); evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_box_pack_end(hbx_1, sp); evas_object_show(sp); hbx_2 = elm_box_add(win); evas_object_size_hint_weight_set(hbx_2, EVAS_HINT_EXPAND, 0.0); elm_box_horizontal_set(hbx_2, EINA_TRUE); elm_box_pack_end(bx, hbx_2); evas_object_show(hbx_2); bt = elm_button_add(win); elm_object_text_set(bt, "Disable item"); evas_object_smart_callback_add(bt, "clicked", _toggle_disabled_cb, grid); elm_box_pack_end(hbx_2, bt); evas_object_show(bt); ck = elm_check_add(win); elm_object_text_set(ck, "Horizontal mode"); evas_object_smart_callback_add(ck, "changed", _horizontal_grid, grid); elm_box_pack_end(hbx_2, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "Always select"); evas_object_smart_callback_add(ck, "changed", _always_select_change, grid); elm_box_pack_end(hbx_2, ck); evas_object_show(ck); ck = elm_check_add(win); elm_scroller_bounce_get(grid, &bounce, NULL); elm_object_text_set(ck, "Bouncing"); elm_check_state_set(ck, bounce); evas_object_smart_callback_add(ck, "changed", _bouncing_change, grid); elm_box_pack_end(hbx_2, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "Multi-selection"); elm_check_state_set(ck, elm_gengrid_multi_select_get(grid)); evas_object_smart_callback_add(ck, "changed", _multi_change, grid); elm_box_pack_end(hbx_2, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "No selection"); evas_object_smart_callback_add(ck, "changed", _no_sel_change, grid); elm_box_pack_end(hbx_2, ck); evas_object_show(ck); hbx_3 = elm_box_add(win); evas_object_size_hint_weight_set(hbx_3, EVAS_HINT_EXPAND, 0.0); elm_box_horizontal_set(hbx_3, EINA_TRUE); elm_box_pack_end(bx, hbx_3); evas_object_show(hbx_3); elm_gengrid_align_get(grid, &h, &v); evas_object_smart_callback_add(grid, "scroll,anim,stop", _grid_scroll_stopped_cb, NULL); sl = elm_slider_add(win); elm_object_text_set(sl, "Horiz. alignment"); elm_slider_span_size_set(sl, 100); evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL); evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND); elm_slider_indicator_format_set(sl, "%1.1f"); elm_slider_value_set(sl, h); elm_box_pack_end(hbx_3, sl); evas_object_show(sl); evas_object_smart_callback_add(sl, "changed", _h_align_change_cb, grid); sl = elm_slider_add(win); elm_object_text_set(sl, "Vert. alignment"); elm_slider_span_size_set(sl, 100); evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL); evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND); elm_slider_indicator_format_set(sl, "%1.1f"); elm_slider_value_set(sl, v); elm_box_pack_end(hbx_3, sl); evas_object_show(sl); evas_object_smart_callback_add(sl, "changed", _v_align_change_cb, grid); elm_gengrid_align_get(grid, &h, &v); sl = elm_slider_add(win); elm_object_text_set(sl, "Page rel. size"); elm_slider_span_size_set(sl, 100); evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL); evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND); elm_slider_indicator_format_set(sl, "%1.1f"); elm_slider_value_set(sl, h); elm_box_pack_end(hbx_3, sl); evas_object_show(sl); _page_change_cb(grid, sl, NULL); evas_object_smart_callback_add(sl, "changed", _page_change_cb, grid); if (!gic) { gic = elm_gengrid_item_class_new(); gic->item_style = "default"; gic->func.text_get = _grid_label_get; gic->func.content_get = _grid_content_get; gic->func.state_get = _grid_state_get; gic->func.del = _grid_del; } // we only create the first time its needed. we dont unref/free _append_bt_clicked(grid, NULL, NULL); _append_bt_clicked(grid, NULL, NULL); _append_bt_clicked(grid, NULL, NULL); evas_object_resize(win, 600, 600); evas_object_show(win); elm_run(); return 0; }