diff options
Diffstat (limited to 'gg_elife/src/elife.c')
-rw-r--r-- | gg_elife/src/elife.c | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/gg_elife/src/elife.c b/gg_elife/src/elife.c new file mode 100644 index 0000000..8b97cb8 --- /dev/null +++ b/gg_elife/src/elife.c @@ -0,0 +1,106 @@ +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <fcntl.h> +#include <Evas.h> +#include <Ecore.h> +#include <Ecore_Evas.h> + +#include "elife_evas_smart.h" + +#define BG 0xff002b36 +#define FG 0xff839496 + +#define MIN(a,b) (((a)<(b))?(a):(b)) + +static struct { + Ecore_Evas *ee; + Evas *evas; + Evas_Coord w, h; + Evas_Object *bg; + Evas_Object *elife; +} elife_g; +#define _G elife_g + +static void +resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(_G.bg, w, h); + evas_object_resize(_G.elife, w, h); +} + +static Eina_Bool +timer_cb(void *data) +{ + Evas_Object *o = (Evas_Object *)data; + + evas_object_smart_callback_call(o, "refresh", NULL); + + return EINA_TRUE; +} + +int +main(void) +{ + unsigned int seedval; + int fd; + + if (!ecore_evas_init()) + return -1; + + _G.w = 600; + _G.h = 350; + + + /*open file */ + if ((fd = open("/dev/urandom", O_RDONLY)) < 0) { + perror(NULL); + exit(1); + } + if (read(fd, &seedval, sizeof(seedval)) != sizeof(seedval)) { + perror(NULL); + close(fd); + exit(1); + } + close(fd); + srand(seedval); + + _G.ee = ecore_evas_software_x11_new( + NULL, /* const char * disp_name */ + 0, /* Ecore_X_Window parent */ + 0, 0, _G.w, _G.h); + + ecore_evas_title_set(_G.ee, "elife"); + ecore_evas_borderless_set(_G.ee, 0); + ecore_evas_show(_G.ee); + _G.evas = ecore_evas_get(_G.ee); + + _G.bg = evas_object_rectangle_add(_G.evas); + evas_object_color_set(_G.bg, + (BG >> 16) & 0xff, + (BG >> 8) & 0xff, + BG & 0xff, + BG >> 24); + evas_object_move(_G.bg, 0, 0); + evas_object_resize(_G.bg, _G.w, _G.h); + evas_object_show(_G.bg); + + _G.elife = elife_smart_new(_G.evas); + evas_object_resize(_G.elife, _G.w, _G.h); + evas_object_show(_G.elife); + + ecore_timer_add(0.1, timer_cb, _G.elife); + + ecore_evas_callback_resize_set(_G.ee, &resize_cb); + + ecore_main_loop_begin(); + + ecore_evas_shutdown(); + ecore_shutdown(); + + return 0; +} |