diff options
Diffstat (limited to 'Runtime/Scripting/LuaBindEnum.cpp')
-rw-r--r-- | Runtime/Scripting/LuaBindEnum.cpp | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/Runtime/Scripting/LuaBindEnum.cpp b/Runtime/Scripting/LuaBindEnum.cpp deleted file mode 100644 index ecf4a9f..0000000 --- a/Runtime/Scripting/LuaBindEnum.cpp +++ /dev/null @@ -1,67 +0,0 @@ -#include "LuaBindEnum.h" -#include "LuaBindState.h" -#include "LuaBindVM.h" - -namespace LuaBind -{ - - /// - /// Ö»¶ÁmetatableµÄ__index - /// - int _rmt__index(lua_State* L) - { - // params: - // 1: enum table - // 2: key - - // upvalues: - // 1: metatable - - int mt = lua_upvalueindex(1); - lua_pushvalue(L, 2); - lua_rawget(L, mt); - - return 1; - } - - int _rmt__newindex(lua_State* L) - { - // upvalue: - // 1: enum table name - - cc8* name = lua_tostring(L, lua_upvalueindex(1)); - - return luaL_error(L, "Enum called \"%s\" is readonly.", name); - } - - //--------------------------------------------------------------------------------// -#if LUA_BIND_ENABLE_PLAIN_ENUM - int PlainEnum::registry(lua_State* L) - { - // params: - // 1: enum name - // 2: metatable - - cc8* name = luaL_checkstring(L, 1); - - if (!lua_istable(L, 2)) - { - return luaL_error(L, "Create plain enum failed. Require table, but get %s", luaL_typename(L, 2)); - } - - lua_pushvalue(L, -1); - lua_setfield(L, -2, "__index"); - - lua_pushstring(L, name); - lua_pushcclosure(L, _rmt__newindex, 1); - lua_setfield(L, -2, "__newindex"); - - lua_newtable(L); // enum table - - lua_pushvalue(L, -2); // metatable - lua_setmetatable(L, -2); - - return 1; - } -#endif -}
\ No newline at end of file |