efl/src/lib/elua/Elua.h

117 lines
2.9 KiB
C
Raw Normal View History

/**
* @file Elua.h
* @brief Elua Library
*
* @defgroup Elua Elua
*/
/**
*
* @section intro Elua library
*
* The Elua library was created to ease integration of EFL Lua into other EFL
* libraries or applications. Using the Elua library you can easily create a
* Lua state that is fully set up for running EFL Lua bindings.
*
* You can find the API documentation at @ref Elua
*/
#ifndef _ELUA_H
#define _ELUA_H
#ifdef EAPI
# undef EAPI
#endif
#ifdef _WIN32
# ifdef EFL_ELUA_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# endif /* ! EFL_ELUA_BUILD */
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
#endif /* ! _WIN32 */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef EFL_BETA_API_SUPPORT
2015-04-08 08:43:14 -07:00
#include <Eina.h>
2014-12-12 02:44:58 -08:00
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
typedef struct _Elua_State Elua_State;
EAPI int elua_init(void);
EAPI int elua_shutdown(void);
2015-04-10 06:36:26 -07:00
EAPI Elua_State *elua_state_new(const char *progname);
2015-04-09 06:21:18 -07:00
EAPI Elua_State *elua_state_from_lua_get(lua_State *L);
EAPI void elua_state_free(Elua_State *es);
2015-04-08 08:43:14 -07:00
EAPI void elua_state_dirs_set(Elua_State *es, const char *core,
const char *mods, const char *apps);
EAPI void elua_state_dirs_fill(Elua_State *es, Eina_Bool ignore_env);
2015-04-08 08:43:14 -07:00
2015-04-09 06:21:18 -07:00
EAPI Eina_Stringshare *elua_state_core_dir_get(const Elua_State *es);
EAPI Eina_Stringshare *elua_state_mod_dir_get(const Elua_State *es);
EAPI Eina_Stringshare *elua_state_apps_dir_get(const Elua_State *es);
2015-04-09 06:17:38 -07:00
EAPI Eina_Stringshare *elua_state_prog_name_get(const Elua_State *es);
EAPI void elua_state_include_path_add(Elua_State *es, const char *path);
EAPI Eina_Bool elua_state_require_ref_push(Elua_State *es);
EAPI Eina_Bool elua_state_appload_ref_push(Elua_State *es);
2015-04-09 06:34:21 -07:00
EAPI lua_State *elua_state_lua_state_get(const Elua_State *es);
2015-04-13 08:21:25 -07:00
EAPI int elua_error_report(const Elua_State *es, const char *pname, int status);
2015-04-08 06:29:58 -07:00
2015-04-13 08:21:25 -07:00
EAPI Eina_Bool elua_state_i18n_setup(const Elua_State *es);
EAPI Eina_Bool elua_state_modules_setup(const Elua_State *es);
EAPI Eina_Bool elua_state_io_setup(const Elua_State *es);
2014-12-17 06:43:50 -08:00
2015-04-09 06:21:18 -07:00
EAPI int elua_io_loadfile(const Elua_State *es, const char *fname);
2014-12-12 04:04:10 -08:00
EAPI int elua_io_popen(lua_State *L);
2015-04-13 08:21:25 -07:00
EAPI int elua_module_init(lua_State *L);
EAPI int elua_module_system_init(lua_State *L);
2014-12-12 04:04:10 -08:00
2015-04-10 08:36:26 -07:00
EAPI int elua_util_require(Elua_State *es, const char *libname);
EAPI int elua_util_file_run(Elua_State *es, const char *fname);
EAPI int elua_util_string_run(Elua_State *es, const char *chunk,
const char *chname);
EAPI Eina_Bool elua_util_app_load(Elua_State *es, const char *appname);
EAPI int elua_util_script_run(Elua_State *es, int argc, char **argv, int n,
int *quit);
#endif
#ifdef __cplusplus
} // extern "C" {
#endif
#endif