efl/legacy/edje/src/bin/edje_main.c

91 lines
2.2 KiB
C

#include "edje.h"
double start_time = 0.0;
Ecore_Evas *ecore_evas = NULL;
Evas *evas = NULL;
static int main_start(int argc, char **argv);
static void main_stop(void);
static void main_resize(Ecore_Evas *ee);
static int main_signal_exit(void *data, int ev_type, void *ev);
static void main_delete_request(Ecore_Evas *ee);
static int
main_start(int argc, char **argv)
{
start_time = ecore_time_get();
if (!ecore_init()) return -1;
ecore_app_args_set(argc, (const char **)argv);
ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, NULL);
if (!ecore_evas_init()) return -1;
if ((argc > 1) && (!strcmp(argv[1], "-fb")))
ecore_evas = ecore_evas_fb_new(NULL, 0, 240, 320);
else if ((argc > 1) && (!strcmp(argv[1], "-x")))
ecore_evas = ecore_evas_software_x11_new(NULL, 0, 0, 0, 240, 320);
else if ((argc > 1) && (!strcmp(argv[1], "-h")))
{
printf("%s -x Run in X (default)\n"
"%s -fb Run in the Framebuffer\n"
"%s -h Display this help\n",
argv[0], argv[0], argv[0]);
ecore_evas_shutdown();
ecore_shutdown();
return 0;
}
else
ecore_evas = ecore_evas_software_x11_new(NULL, 0, 0, 0, 240, 320);
if (!ecore_evas) return -1;
ecore_evas_callback_delete_request_set(ecore_evas, main_delete_request);
ecore_evas_callback_resize_set(ecore_evas, main_resize);
ecore_evas_title_set(ecore_evas, "Evoak");
ecore_evas_name_class_set(ecore_evas, "evoak", "main");
ecore_evas_show(ecore_evas);
evas = ecore_evas_get(ecore_evas);
evas_image_cache_set(evas, 8192 * 1024);
evas_font_cache_set(evas, 512 * 1024);
// evas_font_path_append(evas, FN);
return 1;
}
static void
main_stop(void)
{
ecore_evas_shutdown();
ecore_shutdown();
}
static void
main_resize(Ecore_Evas *ee)
{
double w, h;
evas_output_viewport_get(evas, NULL, NULL, &w, &h);
// FIXME: do something for resize
}
static int
main_signal_exit(void *data, int ev_type, void *ev)
{
ecore_main_loop_quit();
return 1;
}
static void
main_delete_request(Ecore_Evas *ee)
{
ecore_main_loop_quit();
}
int
main(int argc, char **argv)
{
if (main_start(argc, argv) < 1) return -1;
ecore_main_loop_begin();
main_stop();
return 0;
}