ephoto/src/bin/ephoto.c

109 lines
2.5 KiB
C

#include "ephoto.h"
#ifndef ELM_LIB_QUICKLAUNCH
static void _ephoto_display_usage(void);
Ephoto *ephoto;
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);
elm_theme_extension_add(NULL, PACKAGE_DATA_DIR "/themes/default/ephoto.edj");
if (!efreet_mime_init())
printf("Ephoto could not init efreet_mime!\n");
client = elm_thumb_ethumb_client_get();
if (!client)
{
printf("Ephoto could not get ethumb_client; Terminating...\n");
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);
ephoto = calloc(1, sizeof(Ephoto));
ephoto->client = client;
if (argc > 2)
{
printf("Too many arguments; Terminating...\n");
_ephoto_display_usage();
r = 1;
goto end;
}
if (argc == 2)
{
if (!strncmp(argv[1], "--help", 6) || !strncmp(argv[1], "-h", 2))
{
_ephoto_display_usage();
r = 0;
goto end;
}
else if (argc == 2)
{
char *real = ecore_file_realpath(argv[1]);
if (!real)
{
printf("Invalid file or directory: '%s'; Terminating...\n", argv[1]);
r = 1;
goto end;
}
if (ecore_file_is_dir(real))
ephoto->directory = eina_stringshare_add(real);
else if (ecore_file_exists(real))
ephoto->file = eina_stringshare_add(real);
free(real);
}
}
if (!ephoto_window_add())
{
printf("Could not create the main window; Terminating...\n");
r = 1;
goto end;
}
elm_run();
end:
if (ephoto)
free(ephoto);
efreet_mime_shutdown();
elm_shutdown();
eio_shutdown();
return r;
}
static void
_ephoto_display_usage(void)
{
printf("Ephoto Usage: \n"
"ephoto --help | -h : This page\n"
"ephoto filename : Specifies a file to open\n"
"ephoto directory : Specifies a directory to open\n");
}
#endif
ELM_MAIN()