EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *bg; Evas_Object *thumb; char buf[PATH_MAX]; #ifdef ELM_ETHUMB Ethumb_Client *client; #endif elm_need_ethumb(); elm_app_info_set(elm_main, "elementary", "images/plant_01.jpg"); win = elm_win_add(NULL, "thumb", ELM_WIN_BASIC); elm_win_title_set(win, "Thumbnailer"); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_win_autodel_set(win, EINA_TRUE); bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bg); evas_object_show(bg); #ifdef ELM_ETHUMB client = elm_thumb_ethumb_client_get(); if (!client) { printf("error: could not get Ethumb client.\n"); return 1; } ethumb_client_size_set(client, 160, 160); #endif thumb = elm_thumb_add(win); evas_object_smart_callback_add(thumb, "generate,start", _generation_started_cb, NULL); evas_object_smart_callback_add(thumb, "generate,stop", _generation_finished_cb, NULL); evas_object_smart_callback_add(thumb, "generate,error", _generation_error_cb, NULL); elm_thumb_editable_set(thumb, EINA_FALSE); snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get()); elm_thumb_file_set(thumb, buf, NULL); elm_thumb_reload(thumb); evas_object_size_hint_weight_set(thumb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, thumb); evas_object_show(thumb); evas_object_size_hint_min_set(bg, 160, 160); evas_object_size_hint_max_set(bg, 640, 640); evas_object_resize(win, 320, 320); evas_object_show(win); elm_run(); /* and run the program now, starting to handle all * events, etc. */ elm_shutdown(); /* clean up and shut down */ /* exit code */ return 0; }
static void _icon_thumb_apply(Elm_Icon_Smart_Data *sd) { Ethumb_Client *ethumbd; int min_size; ethumbd = elm_thumb_ethumb_client_get(); _icon_thumb_stop(sd, ethumbd); if (!sd->thumb.file.path) return; _icon_pending_request++; if (!ethumb_client_file_set (ethumbd, sd->thumb.file.path, sd->thumb.file.key)) return; min_size = _icon_size_min_get(ELM_WIDGET_DATA(sd)->obj); ethumb_client_size_set(ethumbd, min_size, min_size); sd->thumb.request = ethumb_client_thumb_async_get (ethumbd, _icon_thumb_done, _icon_thumb_error, sd); }
EAPI int elm_main(int argc, char **argv) { Ethumb_Client *client; int r = 0; #if ENABLE_NLS setlocale(LC_ALL, ""); bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #endif eio_init(); elm_need_efreet(); elm_need_ethumb(); elm_init(argc, argv); __log_domain = eina_log_domain_register("ephoto", EINA_COLOR_ORANGE); if (!__log_domain) { EINA_LOG_ERR("Could not register log domain: Ephoto"); r = 1; goto end_log_domain; } elm_theme_extension_add(NULL, PACKAGE_DATA_DIR"/themes/default/ephoto.edj"); if (!efreet_mime_init()) ERR("Could not init efreet_mime!"); client = elm_thumb_ethumb_client_get(); if (!client) { ERR("could not get ethumb_client"); r = 1; goto end; } ethumb_client_crop_align_set(client, 0.5, 0.5); ethumb_client_aspect_set(client, ETHUMB_THUMB_CROP); ethumb_client_orientation_set(client, ETHUMB_THUMB_ORIENT_ORIGINAL); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); DBG("Logging initialized"); if (argc > 2) { printf("Too Many Arguments!\n"); _ephoto_display_usage(); r = 1; goto end; } else if (argc < 2) { Evas_Object *win = ephoto_window_add(NULL); if (!win) { r = 1; goto end; } } else if (!strncmp(argv[1], "--help", 6)) { _ephoto_display_usage(); r = 0; goto end; } else { char *real = ecore_file_realpath(argv[1]); if (!real) { printf("invalid file or directory: '%s'\n", argv[1]); r = 1; goto end; } Evas_Object *win = ephoto_window_add(real); free(real); if (!win) { r = 1; goto end; } } elm_run(); end: eina_log_domain_unregister(__log_domain); efreet_mime_shutdown(); end_log_domain: elm_shutdown(); eio_shutdown(); return r; }