void dt_lua_initialize_types(lua_State *L) { luaA_conversion(char_20,push_char_array,to_char20); luaA_conversion_push(const char_20,push_char_array); luaA_conversion(char_32,push_char_array,to_char32); luaA_conversion_push(const char_32,push_char_array); luaA_conversion(char_52,push_char_array,to_char52); luaA_conversion_push(const char_52,push_char_array); luaA_conversion(char_1024,push_char_array,to_char1024); luaA_conversion_push(const char_1024,push_char_array); luaA_conversion(char_filename_length,push_char_array,to_charfilename_length); luaA_conversion_push(const char_filename_length,push_char_array); luaA_conversion(char_path_length,push_char_array,to_charfilename_length); luaA_conversion_push(const char_path_length,push_char_array); luaA_conversion(int32_t,luaA_push_int, luaA_to_int); luaA_conversion_push(const int32_t,luaA_push_int); luaA_conversion_push(const_string,luaA_push_const_char_ptr); }
int main(int argc, char **argv) { lua_State* L = luaL_newstate(); luaA_open(); luaA_conversion(pair, luaA_push_pair, luaA_to_pair); luaA_struct(L, person_details); luaA_struct_member(L, person_details, id, int); luaA_struct_member(L, person_details, male, char); luaA_struct_member(L, person_details, coolness, float); pair p = {1, 2}; person_details my_details = {0, 1, 125212.213}; luaA_push(L, pair, &p); printf("Pair: (%s, %s)\n", lua_tostring(L, -2), lua_tostring(L, -1)); lua_pop(L, 2); luaA_push(L, person_details, &my_details); lua_getfield(L, -1, "id"); printf("Id: %i\n", (int)lua_tointeger(L, -1)); lua_pop(L, 1); lua_getfield(L, -1, "male"); printf("Male: %s\n", (bool)lua_toboolean(L, -1) ? "true" : "false"); lua_pop(L, 1); lua_pop(L, 1); luaA_close(); lua_close(L); return 0; }
int dt_lua_init_early_types(lua_State *L) { luaA_conversion(L, char_20, push_char_array, to_char20); luaA_conversion_push(L, const char_20, push_char_array); luaA_conversion(L, char_32, push_char_array, to_char32); luaA_conversion_push(L, const char_32, push_char_array); luaA_conversion(L, char_52, push_char_array, to_char52); luaA_conversion_push(L, const char_52, push_char_array); luaA_conversion(L, char_64, push_char_array, to_char64); luaA_conversion_push(L, const char_64, push_char_array); luaA_conversion(L, char_128, push_char_array, to_char128); luaA_conversion_push(L, const char_128, push_char_array); luaA_conversion(L, char_256, push_char_array, to_char256); luaA_conversion_push(L, const char_256, push_char_array); luaA_conversion(L, char_512, push_char_array, to_char512); luaA_conversion_push(L, const char_512, push_char_array); luaA_conversion(L, char_1024, push_char_array, to_char1024); luaA_conversion_push(L, const char_1024, push_char_array); luaA_conversion(L, char_filename_length, push_char_array, to_charfilename_length); luaA_conversion_push(L, const char_filename_length, push_char_array); luaA_conversion(L, char_path_length, push_char_array, to_charpath_length); luaA_conversion_push(L, const char_path_length, push_char_array); luaA_conversion(L, int32_t, luaA_push_int, luaA_to_int); luaA_conversion_push(L, const int32_t, luaA_push_int); luaA_conversion_push(L, const_string, luaA_push_const_char_ptr); luaA_conversion(L, protected_double, push_protected_double, luaA_to_double); luaA_conversion(L, progress_double, push_progress_double, to_progress_double); luaA_conversion_push_type(L, luaA_type_add(L,"unknown",sizeof(void*)), unknown_pushfunc); // table of gpointer values lua_newtable(L); lua_newtable(L); lua_pushstring(L, "kv"); lua_setfield(L, -2, "__mode"); lua_setmetatable(L, -2); lua_setfield(L, LUA_REGISTRYINDEX, "dt_lua_gpointer_values"); luaA_enum(L,dt_lua_orientation_t); luaA_enum_value_name(L,dt_lua_orientation_t,GTK_ORIENTATION_HORIZONTAL,"horizontal"); luaA_enum_value_name(L,dt_lua_orientation_t,GTK_ORIENTATION_VERTICAL,"vertical"); luaA_enum(L, dt_lua_align_t); luaA_enum_value_name(L, dt_lua_align_t, GTK_ALIGN_FILL, "fill"); luaA_enum_value_name(L, dt_lua_align_t, GTK_ALIGN_START, "start"); luaA_enum_value_name(L, dt_lua_align_t, GTK_ALIGN_END, "end"); luaA_enum_value_name(L, dt_lua_align_t, GTK_ALIGN_CENTER, "center"); luaA_enum_value_name(L, dt_lua_align_t, GTK_ALIGN_BASELINE, "baseline"); luaA_enum(L, dt_lua_ellipsize_mode_t); luaA_enum_value_name(L, dt_lua_ellipsize_mode_t, PANGO_ELLIPSIZE_NONE, "none"); luaA_enum_value_name(L, dt_lua_ellipsize_mode_t, PANGO_ELLIPSIZE_START, "start"); luaA_enum_value_name(L, dt_lua_ellipsize_mode_t, PANGO_ELLIPSIZE_MIDDLE, "middle"); luaA_enum_value_name(L, dt_lua_ellipsize_mode_t, PANGO_ELLIPSIZE_END, "end"); return 0; }
int dt_lua_init_early_types(lua_State *L) { luaA_conversion(L, char_20, push_char_array, to_char20); luaA_conversion_push(L, const char_20, push_char_array); luaA_conversion(L, char_32, push_char_array, to_char32); luaA_conversion_push(L, const char_32, push_char_array); luaA_conversion(L, char_52, push_char_array, to_char52); luaA_conversion_push(L, const char_52, push_char_array); luaA_conversion(L, char_64, push_char_array, to_char64); luaA_conversion_push(L, const char_64, push_char_array); luaA_conversion(L, char_128, push_char_array, to_char128); luaA_conversion_push(L, const char_128, push_char_array); luaA_conversion(L, char_256, push_char_array, to_char256); luaA_conversion_push(L, const char_256, push_char_array); luaA_conversion(L, char_512, push_char_array, to_char512); luaA_conversion_push(L, const char_512, push_char_array); luaA_conversion(L, char_1024, push_char_array, to_char1024); luaA_conversion_push(L, const char_1024, push_char_array); luaA_conversion(L, char_filename_length, push_char_array, to_charfilename_length); luaA_conversion_push(L, const char_filename_length, push_char_array); luaA_conversion(L, char_path_length, push_char_array, to_charpath_length); luaA_conversion_push(L, const char_path_length, push_char_array); luaA_conversion(L, int32_t, luaA_push_int, luaA_to_int); luaA_conversion_push(L, const int32_t, luaA_push_int); luaA_conversion_push(L, const_string, luaA_push_const_char_ptr); luaA_conversion(L, protected_double, push_protected_double, luaA_to_double); luaA_conversion(L, progress_double, push_progress_double, to_progress_double); luaA_conversion_push_type(L, luaA_type_add(L,"unknown",sizeof(void*)), unknown_pushfunc); // table of gpointer values lua_newtable(L); lua_newtable(L); lua_pushstring(L, "kv"); lua_setfield(L, -2, "__mode"); lua_setmetatable(L, -2); lua_setfield(L, LUA_REGISTRYINDEX, "dt_lua_gpointer_values"); return 0; }