/* vim: set ts=4 sw=4 : */

#include <Evas.h>

#define VARARG(s) rb_hash_aref(arghash, ID2SYM(rb_intern(s)))
#define CHECKARG(a, s) if (a == Qnil) { rb_raise(rb_eArgError, "must specify '" s "' argument"); return Qnil; } 
#define VARARG_CHECK(a, s) a = VARARG(s); CHECKARG(a, s);

typedef struct {
	Evas evas;
} Ruby_Evas;

typedef struct {
	Evas_Object obj;
	Ruby_Evas *re;
	VALUE callbacks;
} Ruby_Evas_Object;

void xlib_init();
void rb_eo_init();
Display* xlib_dpy_from_rb(VALUE display);
void xlib_set_size_hints(Display *dpy, Window win, int width, int height);

extern VALUE cDisplay;
extern VALUE cEvas, cEvasObject, cEOImage, cEOText;


