glib_types.h
author Myhailo Danylenko <isbear@ukrpost.net>
Sun, 01 Feb 2009 21:28:57 +0200
changeset 0 84fdfb0344c9
permissions -rw-r--r--
Initial commit * It works * Still need to debug objects collection


#ifndef LGLIB_TYPES_H
#define LGLIB_TYPES_H

#include <lua.h>
#include <glib.h>

#ifndef LGLIB_OBJREGISTRY
#define LGLIB_OBJREGISTRY ( "lglib.obj_registry" )
#endif

typedef struct {
	int reference;
	lua_State *L;
} lglib_callback_t;

void lglib_callback_destroy (lglib_callback_t *cb);


#define LGLIB_DECLARE(WHAT, TYPE)                         \
typedef struct {                                            \
	TYPE *WHAT;                                           \
} lglib_##WHAT##_t;                                             \
                                                                  \
lglib_##WHAT##_t *luaL_checklglib_##WHAT (lua_State *L, int index); \
lglib_##WHAT##_t *lglib_##WHAT##_bless (lua_State *L, TYPE *WHAT);

LGLIB_DECLARE (main_context, GMainContext)
LGLIB_DECLARE (source, GSource)

#undef LGLIB_DECLARE

#endif