From: John L. <jr...@us...> - 2007-12-22 06:07:43
|
Update of /cvsroot/wxlua/wxLua/bindings In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv16833/wxLua/bindings Modified Files: genwxbind.lua Log Message: * Updated the naming conventions of the wxLua C/C++ functions to get rid of the term "tag" which dates back to Lua 4. Lua 5 does not use "tags", but rather metatables to attach functions to userdata in Lua. The new term for the C++ objects that wxLua wraps in Lua userdata and assigns a metatable to are wxLua types. wxLua types < 0, the WXLUA_TXXX types, correspond to the LUA_TXXX Lua types. wxLua types > 0 are types from the bindings and denote a class or struct. - Most notably for people who have written their own overrides for their bindings will be that wxLuaState::PushUserTag() is now wxluaT_PushUserDataType(). Those two functions existed before, but basically did the same thing. The calling arguments of PushUserTag() were taken however and were the reverse of what PushUserDataType() had. - wxluaT_new/get/set/tag() are now wxluaT_new/setmetatable() and wxluaT_type() where the latter works just like lua_type(), but returns one of the wxLua types. - Fix crash in wxListCtrl and wxTreeCtrl::AssignImageList() to use the %ungc tag to release wxLua from deleting the input wxImageList. Index: genwxbind.lua =================================================================== RCS file: /cvsroot/wxlua/wxLua/bindings/genwxbind.lua,v retrieving revision 1.156 retrieving revision 1.157 diff -C2 -d -r1.156 -r1.157 *** genwxbind.lua 20 Dec 2007 02:26:54 -0000 1.156 --- genwxbind.lua 22 Dec 2007 06:07:07 -0000 1.157 *************** *** 18,22 **** -- --------------------------------------------------------------------------- ! WXLUA_BINDING_VERSION = 20 -- Used to verify that the bindings are updated -- This must match modules/wxlua/include/wxldefs.h -- otherwise a compile time error will be generated. --- 18,22 ---- -- --------------------------------------------------------------------------- ! WXLUA_BINDING_VERSION = 21 -- Used to verify that the bindings are updated -- This must match modules/wxlua/include/wxldefs.h -- otherwise a compile time error will be generated. *************** *** 44,48 **** classBindingTable = {} enumClassBindingTable = {} -- table[classname][i] = { Map, Condition, ... } ! classTagBindingTable = {} classIncludeBindingTable = {} encapsulationBindingTable = {} --- 44,48 ---- classBindingTable = {} enumClassBindingTable = {} -- table[classname][i] = { Map, Condition, ... } ! classTypeBindingTable = {} classIncludeBindingTable = {} encapsulationBindingTable = {} *************** *** 575,581 **** elseif string.find(condition, "wxLUA_USE_", 1, 1) then ! print("WARNING: unknown wxLUA_USE_XXX tag, maybe a missing condition? '"..condition.."'") elseif string.find(condition, "wxUSE_", 1, 1) then ! print("WARNING: unknown wxUSE_XXX tag, maybe a missing condition? '"..condition.."'") elseif string.find(condition, "%wxchkver2", 1, 1) then --- 575,581 ---- elseif string.find(condition, "wxLUA_USE_", 1, 1) then ! print("WARNING: unknown wxLUA_USE_XXX condition? '"..condition.."'") elseif string.find(condition, "wxUSE_", 1, 1) then ! print("WARNING: unknown wxUSE_XXX condition? '"..condition.."'") elseif string.find(condition, "%wxchkver2", 1, 1) then *************** *** 2748,2753 **** table.insert(codeList, " wxLuaState wxlState(L);\n") CommentBindingTable(codeList, " // get this\n") ! table.insert(codeList, " "..parseObject.Name.." *self = ("..parseObject.Name.." *)wxluaT_getuserdatatype(L, 1, s_wxluatag_"..MakeClassVar(parseObject.Name)..");\n") ! overload_argList = "&s_wxluatag_"..MakeClassVar(parseObject.Name)..", "..overload_argList if memberType == "wxString" then --- 2748,2753 ---- table.insert(codeList, " wxLuaState wxlState(L);\n") CommentBindingTable(codeList, " // get this\n") ! table.insert(codeList, " "..parseObject.Name.." *self = ("..parseObject.Name.." *)wxluaT_getuserdatatype(L, 1, g_wxluatype_"..MakeClassVar(parseObject.Name)..");\n") ! overload_argList = "&g_wxluatype_"..MakeClassVar(parseObject.Name)..", "..overload_argList if memberType == "wxString" then *************** *** 2758,2768 **** -- if string.find(member.Name, "::") then ! -- table.insert(codeList, " wxluaT_pushuserdatatype(L, s_wxluatag_"..MakeClassVar(memberType)..", "..member.Name..");\n") -- else ! table.insert(codeList, " wxluaT_pushuserdatatype(L, s_wxluatag_"..MakeClassVar(memberType)..", &self->"..member.Name..");\n") -- end elseif not numeric then CommentBindingTable(codeList, " // push the result datatype\n") ! table.insert(codeList, " wxluaT_pushuserdatatype(L, s_wxluatag_"..MakeClassVar(memberType)..", self->"..member.Name..");\n") elseif (memberType == "BOOL") or (memberType == "bool") then --- 2758,2768 ---- -- if string.find(member.Name, "::") then ! -- table.insert(codeList, " wxluaT_pushuserdatatype(L, "..member.Name..", g_wxluatype_"..MakeClassVar(memberType)..");\n") -- else ! table.insert(codeList, " wxluaT_pushuserdatatype(L, &self->"..member.Name..", g_wxluatype_"..MakeClassVar(memberType)..");\n") -- end elseif not numeric then CommentBindingTable(codeList, " // push the result datatype\n") ! table.insert(codeList, " wxluaT_pushuserdatatype(L, self->"..member.Name..", g_wxluatype_"..MakeClassVar(memberType)..");\n") elseif (memberType == "BOOL") or (memberType == "bool") then *************** *** 2779,2785 **** table.insert(codeList, "}\n") ! local overload_argListName = "s_wxluatagArray_"..funcName if overload_argList == "" then ! overload_argListName = "s_wxluaargArray_None" else overload_argList = "{ "..overload_argList.."NULL }" --- 2779,2785 ---- table.insert(codeList, "}\n") ! local overload_argListName = "s_wxluatypeArray_"..funcName if overload_argList == "" then ! overload_argListName = "g_wxluaargtypeArray_None" else overload_argList = "{ "..overload_argList.."NULL }" *************** *** 2839,2863 **** if memberType == "wxString" then ! overload_argList = overload_argList.."&s_wxluaarg_String, " CommentBindingTable(codeList, " // get the string value\n") table.insert(codeList, " wxString val = wxlua_getwxStringtype(L, 2);\n") elseif not numeric and (not memberPtr or (memberPtr == "&")) then ! overload_argList = overload_argList.."&s_wxluatag_"..MakeClassVar(memberType)..", " CommentBindingTable(codeList, " // get the data type value\n") ! table.insert(codeList, " "..memberType.."* val = ("..memberType.."*)wxluaT_getuserdatatype(L, 2, s_wxluatag_"..MakeClassVar(memberType)..");\n") elseif not numeric then ! overload_argList = overload_argList.."&s_wxluatag_"..MakeClassVar(memberType)..", " CommentBindingTable(codeList, " // get the data type value\n") ! table.insert(codeList, " "..memberType.."* val = ("..memberType.."*)wxluaT_getuserdatatype(L, 2, s_wxluatag_"..MakeClassVar(memberType)..");\n") elseif (memberType == "BOOL") or (memberType == "bool") then ! overload_argList = overload_argList.."&s_wxluaarg_Boolean, " CommentBindingTable(codeList, " // get the boolean value\n") table.insert(codeList, " bool val = wxlua_getbooleantype(L, 2);\n") elseif IsDataTypeEnum(memberType) then ! overload_argList = overload_argList.."&s_wxluaarg_Integer, " CommentBindingTable(codeList, " // get the number value\n") table.insert(codeList, " "..memberType.." val = ("..memberType..")wxlua_getintegertype(L, 2);\n") else ! overload_argList = overload_argList.."&s_wxluaarg_Number, " CommentBindingTable(codeList, " // get the number value\n") table.insert(codeList, " "..memberType.." val = ("..memberType..")wxlua_getnumbertype(L, 2);\n") --- 2839,2863 ---- if memberType == "wxString" then ! overload_argList = overload_argList.."&g_wxluatype_TSTRING, " CommentBindingTable(codeList, " // get the string value\n") table.insert(codeList, " wxString val = wxlua_getwxStringtype(L, 2);\n") elseif not numeric and (not memberPtr or (memberPtr == "&")) then ! overload_argList = overload_argList.."&g_wxluatype_"..MakeClassVar(memberType)..", " CommentBindingTable(codeList, " // get the data type value\n") ! table.insert(codeList, " "..memberType.."* val = ("..memberType.."*)wxluaT_getuserdatatype(L, 2, g_wxluatype_"..MakeClassVar(memberType)..");\n") elseif not numeric then ! overload_argList = overload_argList.."&g_wxluatype_"..MakeClassVar(memberType)..", " CommentBindingTable(codeList, " // get the data type value\n") ! table.insert(codeList, " "..memberType.."* val = ("..memberType.."*)wxluaT_getuserdatatype(L, 2, g_wxluatype_"..MakeClassVar(memberType)..");\n") elseif (memberType == "BOOL") or (memberType == "bool") then ! overload_argList = overload_argList.."&g_wxluatype_TBOOLEAN, " CommentBindingTable(codeList, " // get the boolean value\n") table.insert(codeList, " bool val = wxlua_getbooleantype(L, 2);\n") elseif IsDataTypeEnum(memberType) then ! overload_argList = overload_argList.."&g_wxluatype_TINTEGER, " CommentBindingTable(codeList, " // get the number value\n") table.insert(codeList, " "..memberType.." val = ("..memberType..")wxlua_getintegertype(L, 2);\n") else ! overload_argList = overload_argList.."&g_wxluatype_TNUMBER, " CommentBindingTable(codeList, " // get the number value\n") table.insert(codeList, " "..memberType.." val = ("..memberType..")wxlua_getnumbertype(L, 2);\n") *************** *** 2865,2870 **** CommentBindingTable(codeList, " // get this\n") ! table.insert(codeList, " "..parseObject.Name.." *self = ("..parseObject.Name.." *)wxluaT_getuserdatatype(L, 1, s_wxluatag_"..MakeClassVar(parseObject.Name)..");\n") ! overload_argList = "&s_wxluatag_"..MakeClassVar(parseObject.Name)..", "..overload_argList if not numeric and (not memberPtr or (memberPtr == "&")) then --- 2865,2870 ---- CommentBindingTable(codeList, " // get this\n") ! table.insert(codeList, " "..parseObject.Name.." *self = ("..parseObject.Name.." *)wxluaT_getuserdatatype(L, 1, g_wxluatype_"..MakeClassVar(parseObject.Name)..");\n") ! overload_argList = "&g_wxluatype_"..MakeClassVar(parseObject.Name)..", "..overload_argList if not numeric and (not memberPtr or (memberPtr == "&")) then *************** *** 2878,2884 **** table.insert(codeList, "}\n") ! local overload_argListName = "s_wxluatagArray_".. funcName if overload_argList == "" then ! overload_argListName = "s_wxluaargArray_None" else overload_argList = "{ "..overload_argList.."NULL }" --- 2878,2884 ---- table.insert(codeList, "}\n") ! local overload_argListName = "s_wxluatypeArray_".. funcName if overload_argList == "" then ! overload_argListName = "g_wxluaargtypeArray_None" else overload_argList = "{ "..overload_argList.."NULL }" *************** *** 3021,3025 **** { LuaName = luaname, ! Map = " { \""..luaname.."\", &s_wxluatag_"..MakeClassVar(parseObject.Name)..", &"..member.Name..", NULL },\n", Condition = fullcondition } --- 3021,3025 ---- { LuaName = luaname, ! Map = " { \""..luaname.."\", &g_wxluatype_"..MakeClassVar(parseObject.Name)..", &"..member.Name..", NULL },\n", Condition = fullcondition } *************** *** 3036,3040 **** { LuaName = luaname, ! Map = " { \""..luaname.."\", &s_wxluatag_"..MakeClassVar(parseObject.Name)..", NULL, (const void **) &"..member.Name.." },\n", Condition = fullcondition } --- 3036,3040 ---- { LuaName = luaname, ! Map = " { \""..luaname.."\", &g_wxluatype_"..MakeClassVar(parseObject.Name)..", NULL, (const void **) &"..member.Name.." },\n", Condition = fullcondition } *************** *** 3051,3055 **** { LuaName = luaname, ! Map = " { \""..luaname.."\", &"..member.Name..", &s_wxluatag_"..MakeClassVar(parseObject.Name).." },\n", Condition = fullcondition } --- 3051,3055 ---- { LuaName = luaname, ! Map = " { \""..luaname.."\", &"..member.Name..", &g_wxluatype_"..MakeClassVar(parseObject.Name).." },\n", Condition = fullcondition } *************** *** 3144,3148 **** ((indirectionCount == 0) or ((indirectionCount == 1) and (argPtr == "&") and string.find(argTypeWithAttrib, "const", 1, 1)))) then ! overload_argList = overload_argList.."&s_wxluatag_wxArrayString, " argItem = "wxlua_getwxArrayString(L, "..argNum..")" declare = "wxLuaSmartwxArrayString" --- 3144,3148 ---- ((indirectionCount == 0) or ((indirectionCount == 1) and (argPtr == "&") and string.find(argTypeWithAttrib, "const", 1, 1)))) then ! overload_argList = overload_argList.."&g_wxluatype_wxArrayString, " argItem = "wxlua_getwxArrayString(L, "..argNum..")" declare = "wxLuaSmartwxArrayString" *************** *** 3150,3154 **** ((indirectionCount == 0) or ((indirectionCount == 1) and (argPtr == "&") and string.find(argTypeWithAttrib, "const", 1, 1)))) then ! overload_argList = overload_argList.."&s_wxluatag_wxSortedArrayString, " argItem = "wxlua_getwxSortedArrayString(L, "..argNum..")" declare = "wxLuaSmartwxSortedArrayString" --- 3150,3154 ---- ((indirectionCount == 0) or ((indirectionCount == 1) and (argPtr == "&") and string.find(argTypeWithAttrib, "const", 1, 1)))) then ! overload_argList = overload_argList.."&g_wxluatype_wxSortedArrayString, " argItem = "wxlua_getwxSortedArrayString(L, "..argNum..")" declare = "wxLuaSmartwxSortedArrayString" *************** *** 3156,3164 **** ((indirectionCount == 0) or ((indirectionCount == 1) and (argPtr == "&") and string.find(argTypeWithAttrib, "const", 1, 1)))) then ! overload_argList = overload_argList.."&s_wxluatag_wxArrayInt, " argItem = "wxlua_getwxArrayInt(L, "..argNum..")" declare = "wxLuaSmartwxArrayInt" elseif argType == "IntArray_FromLuaTable" then ! overload_argList = overload_argList.."&s_wxluaarg_Table, " argItem = "NULL; ptr = "..argName.." = wxlua_getintarray(L, "..argNum..", count_)" declare = "int count_ = 0; wxLuaSmartIntArray ptr; int*" --- 3156,3164 ---- ((indirectionCount == 0) or ((indirectionCount == 1) and (argPtr == "&") and string.find(argTypeWithAttrib, "const", 1, 1)))) then ! overload_argList = overload_argList.."&g_wxluatype_wxArrayInt, " argItem = "wxlua_getwxArrayInt(L, "..argNum..")" declare = "wxLuaSmartwxArrayInt" elseif argType == "IntArray_FromLuaTable" then ! overload_argList = overload_argList.."&g_wxluatype_TTABLE, " argItem = "NULL; ptr = "..argName.." = wxlua_getintarray(L, "..argNum..", count_)" declare = "int count_ = 0; wxLuaSmartIntArray ptr; int*" *************** *** 3167,3171 **** -- THIS MUST BE AN OVERRIDE AND HANDLED THERE, we just set overload_argList -- the code genererated here is nonsense ! overload_argList = overload_argList.."&s_wxluaarg_Table, " argItem = "YOU MUST OVERRIDE THIS FUNCTION " declare = "YOU MUST OVERRIDE THIS FUNCTION " --- 3167,3171 ---- -- THIS MUST BE AN OVERRIDE AND HANDLED THERE, we just set overload_argList -- the code genererated here is nonsense ! overload_argList = overload_argList.."&g_wxluatype_TTABLE, " argItem = "YOU MUST OVERRIDE THIS FUNCTION " declare = "YOU MUST OVERRIDE THIS FUNCTION " *************** *** 3173,3177 **** -- THIS MUST BE AN OVERRIDE AND HANDLED THERE, we just set overload_argList -- the code genererated here is nonsense ! overload_argList = overload_argList.."&s_wxluaarg_Function, " argItem = "YOU MUST OVERRIDE THIS FUNCTION " declare = "YOU MUST OVERRIDE THIS FUNCTION " --- 3173,3177 ---- -- THIS MUST BE AN OVERRIDE AND HANDLED THERE, we just set overload_argList -- the code genererated here is nonsense ! overload_argList = overload_argList.."&g_wxluatype_TFUNCTION, " argItem = "YOU MUST OVERRIDE THIS FUNCTION " declare = "YOU MUST OVERRIDE THIS FUNCTION " *************** *** 3186,3192 **** end ! overload_argList = overload_argList.."&s_wxluaarg_Table, " argItem = "wxlua_getwxStringarray("..argNum..", count)" - --declare = "int count = 0; wxLuaSmartStringArray ptr; "..argTypeWithAttrib.." "..argName.."; ptr = " declare = "int count = 0; wxLuaSmartStringArray " elseif argType == "int" then --- 3186,3191 ---- end ! overload_argList = overload_argList.."&g_wxluatype_TTABLE, " argItem = "wxlua_getwxStringarray("..argNum..", count)" declare = "int count = 0; wxLuaSmartStringArray " elseif argType == "int" then *************** *** 3196,3205 **** end ! overload_argList = overload_argList.."&s_wxluaarg_Table, " argItem = "wxlua_getintarray(L, "..argNum..", count)" - --declare = "int count = 0; wxLuaSmartIntArray ptr; "..argTypeWithAttrib.." "..argName.."; ptr = " declare = "int count = 0; wxLuaSmartIntArray " elseif not numeric then ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", s_wxluatag_"..MakeClassVar(argType)..")" else argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" --- 3195,3203 ---- end ! overload_argList = overload_argList.."&g_wxluatype_TTABLE, " argItem = "wxlua_getintarray(L, "..argNum..", count)" declare = "int count = 0; wxLuaSmartIntArray " elseif not numeric then ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", g_wxluatype_"..MakeClassVar(argType)..")" else argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" *************** *** 3207,3211 **** elseif (indirectionCount == 1) and (argPtr == "*") then if (argType == "wxString") or (argType == "wxChar") then ! overload_argList = overload_argList.."&s_wxluaarg_String, " argItem = "wxlua_getwxStringtype(L, "..argNum..")" --- 3205,3209 ---- elseif (indirectionCount == 1) and (argPtr == "*") then if (argType == "wxString") or (argType == "wxChar") then ! overload_argList = overload_argList.."&g_wxluatype_TSTRING, " argItem = "wxlua_getwxStringtype(L, "..argNum..")" *************** *** 3227,3231 **** elseif argType == "char" then ! overload_argList = overload_argList.."&s_wxluaarg_String, " argItem = "wxlua_getstringtype(L, "..argNum..")" --- 3225,3229 ---- elseif argType == "char" then ! overload_argList = overload_argList.."&g_wxluatype_TSTRING, " argItem = "wxlua_getstringtype(L, "..argNum..")" *************** *** 3240,3247 **** if not numeric then ! overload_argList = overload_argList.."&s_wxluatag_"..MakeClassVar(argType)..", " ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", s_wxluatag_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&s_wxluaarg_LightUserData, " argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" end --- 3238,3245 ---- if not numeric then ! overload_argList = overload_argList.."&g_wxluatype_"..MakeClassVar(argType)..", " ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", g_wxluatype_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&g_wxluatype_TLIGHTUSERDATA, " argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" end *************** *** 3260,3268 **** elseif (indirectionCount == 2) and (argPtr == "*") then if not numeric then ! overload_argList = overload_argList.."&s_wxluatag_"..MakeClassVar(argType)..", " argTypeWithAttrib = argTypeWithAttrib.." **" ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", s_wxluatag_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&s_wxluaarg_LightUserData, " argTypeWithAttrib = argTypeWithAttrib.." *" argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" --- 3258,3266 ---- elseif (indirectionCount == 2) and (argPtr == "*") then if not numeric then ! overload_argList = overload_argList.."&g_wxluatype_"..MakeClassVar(argType)..", " argTypeWithAttrib = argTypeWithAttrib.." **" ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", g_wxluatype_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&g_wxluatype_TLIGHTUSERDATA, " argTypeWithAttrib = argTypeWithAttrib.." *" argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" *************** *** 3270,3274 **** elseif (indirectionCount == 1) and (argPtr == "&") then if argType == "wxString" then ! overload_argList = overload_argList.."&s_wxluaarg_String, " argItem = "wxlua_getwxStringtype(L, "..argNum..")" --- 3268,3272 ---- elseif (indirectionCount == 1) and (argPtr == "&") then if argType == "wxString" then ! overload_argList = overload_argList.."&g_wxluatype_TSTRING, " argItem = "wxlua_getwxStringtype(L, "..argNum..")" *************** *** 3286,3293 **** argTypeWithAttrib = argTypeWithAttrib.." *" if not numeric then ! overload_argList = overload_argList.."&s_wxluatag_"..MakeClassVar(argType)..", " ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", s_wxluatag_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&s_wxluaarg_LightUserData, " argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" end --- 3284,3291 ---- argTypeWithAttrib = argTypeWithAttrib.." *" if not numeric then ! overload_argList = overload_argList.."&g_wxluatype_"..MakeClassVar(argType)..", " ! argItem = "("..argTypeWithAttrib..")wxluaT_getuserdatatype(L, "..argNum..", g_wxluatype_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&g_wxluatype_TLIGHTUSERDATA, " argItem = "("..argTypeWithAttrib..")wxlua_touserdata(L, "..argNum..")" end *************** *** 3300,3304 **** elseif indirectionCount == 0 then if argType == "wxString" then ! overload_argList = overload_argList.."&s_wxluaarg_String, " argItem = "wxlua_getwxStringtype(L, "..argNum..")" --- 3298,3302 ---- elseif indirectionCount == 0 then if argType == "wxString" then ! overload_argList = overload_argList.."&g_wxluatype_TSTRING, " argItem = "wxlua_getwxStringtype(L, "..argNum..")" *************** *** 3314,3327 **** end elseif (argType == "bool") or (argType == "BOOL") then ! overload_argList = overload_argList.."&s_wxluaarg_Boolean, " argItem = "wxlua_getbooleantype(L, "..argNum..")" elseif IsDataTypeEnum(argType) then ! overload_argList = overload_argList.."&s_wxluaarg_Integer, " argItem = "("..argType..")wxlua_getintegertype(L, "..argNum..")" elseif not numeric then ! overload_argList = overload_argList.."&s_wxluatag_"..MakeClassVar(argType)..", " ! argItem = "*("..argTypeWithAttrib.."*)wxluaT_getuserdatatype(L, "..argNum..", s_wxluatag_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&s_wxluaarg_Number, " argItem = "("..argType..")wxlua_getnumbertype(L, "..argNum..")" end --- 3312,3325 ---- end elseif (argType == "bool") or (argType == "BOOL") then ! overload_argList = overload_argList.."&g_wxluatype_TBOOLEAN, " argItem = "wxlua_getbooleantype(L, "..argNum..")" elseif IsDataTypeEnum(argType) then ! overload_argList = overload_argList.."&g_wxluatype_TINTEGER, " argItem = "("..argType..")wxlua_getintegertype(L, "..argNum..")" elseif not numeric then ! overload_argList = overload_argList.."&g_wxluatype_"..MakeClassVar(argType)..", " ! argItem = "*("..argTypeWithAttrib.."*)wxluaT_getuserdatatype(L, "..argNum..", g_wxluatype_"..MakeClassVar(argType)..")" else ! overload_argList = overload_argList.."&g_wxluatype_TNUMBER, " argItem = "("..argType..")wxlua_getnumbertype(L, "..argNum..")" end *************** *** 3570,3574 **** CommentBindingTable(codeList, " // push the constructed class pointer\n") ! table.insert(codeList, " wxluaT_pushuserdatatype(L, s_wxluatag_"..MakeClassVar(parseObject.Name)..", returns);\n") table.insert(codeList, "\n return 1;\n") --- 3568,3572 ---- CommentBindingTable(codeList, " // push the constructed class pointer\n") ! table.insert(codeList, " wxluaT_pushuserdatatype(L, returns, g_wxluatype_"..MakeClassVar(parseObject.Name)..");\n") table.insert(codeList, "\n return 1;\n") *************** *** 3583,3588 **** CommentBindingTable(codeList, " // get this\n") ! table.insert(codeList, " "..parseObject.Name.." * self = ("..parseObject.Name.." *)wxluaT_getuserdatatype(L, 1, s_wxluatag_"..MakeClassVar(parseObject.Name)..");\n") ! overload_argList = "&s_wxluatag_"..MakeClassVar(parseObject.Name)..", "..overload_argList if parseObject["%ungc_this"] then --- 3581,3586 ---- CommentBindingTable(codeList, " // get this\n") ! table.insert(codeList, " "..parseObject.Name.." * self = ("..parseObject.Name.." *)wxluaT_getuserdatatype(L, 1, g_wxluatype_"..MakeClassVar(parseObject.Name)..");\n") ! overload_argList = "&g_wxluatype_"..MakeClassVar(parseObject.Name)..", "..overload_argList if parseObject["%ungc_this"] then *************** *** 3680,3684 **** elseif not numeric then CommentBindingTable(codeList, " // push the result datatype\n") ! table.insert(codeList, " wxluaT_pushuserdatatype(L, s_wxluatag_"..MakeClassVar(memberType)..", returns);\n") elseif (member.DataType == "BOOL") or (member.DataType == "bool") then CommentBindingTable(codeList, " // push the result flag\n") --- 3678,3682 ---- elseif not numeric then CommentBindingTable(codeList, " // push the result datatype\n") ! table.insert(codeList, " wxluaT_pushuserdatatype(L, returns, g_wxluatype_"..MakeClassVar(memberType)..");\n") elseif (member.DataType == "BOOL") or (member.DataType == "bool") then CommentBindingTable(codeList, " // push the result flag\n") *************** *** 3697,3703 **** end ! local overload_argListName = "s_wxluatagArray_".. funcName if overload_argList == "" then ! overload_argListName = "s_wxluaargArray_None" else overload_argList = "{ "..overload_argList.."NULL }" --- 3695,3701 ---- end ! local overload_argListName = "s_wxluatypeArray_".. funcName if overload_argList == "" then ! overload_argListName = "g_wxluaargtypeArray_None" else overload_argList = "{ "..overload_argList.."NULL }" *************** *** 3771,3779 **** local enumArrayName = MakeVar(parseObject.Name).."_enums" local enumArrayCountName = MakeVar(parseObject.Name).."_enumCount" ! local ExternEnumDeclaration = "extern "..output_cpp_impexpsymbol.." wxLuaBindDefine "..enumArrayName.."[];\n" local ExternEnumCountDeclaration = "extern "..MakeImpExpData("int").." "..enumArrayCountName..";\n" if enumClassBindingTable[MakeVar(parseObject.Name)] == nil then ! enumArrayName = "s_wxluadefineArray_None" enumArrayCountName = 0 ExternEnumDeclaration = "" --- 3769,3777 ---- local enumArrayName = MakeVar(parseObject.Name).."_enums" local enumArrayCountName = MakeVar(parseObject.Name).."_enumCount" ! local ExternEnumDeclaration = "extern "..output_cpp_impexpsymbol.." wxLuaBindNumber "..enumArrayName.."[];\n" local ExternEnumCountDeclaration = "extern "..MakeImpExpData("int").." "..enumArrayCountName..";\n" if enumClassBindingTable[MakeVar(parseObject.Name)] == nil then ! enumArrayName = "g_wxluanumberArray_None" enumArrayCountName = 0 ExternEnumDeclaration = "" *************** *** 3784,3790 **** -- Extern Class Tag Declaration local tagcondition = FixCondition(parseObject.Condition) ! local classTagBinding = { ! ExternDeclaration = "extern "..MakeImpExpData("int").." s_wxluatag_"..MakeClassVar(parseObject.Name)..";\n", ExternMethodDeclaration = "extern "..output_cpp_impexpsymbol.." wxLuaBindMethod "..MakeVar(parseObject.Name).."_methods[];\n", ExternMethodCountDeclaration = "extern "..MakeImpExpData("int").." "..MakeVar(parseObject.Name).."_methodCount;\n", --- 3782,3788 ---- -- Extern Class Tag Declaration local tagcondition = FixCondition(parseObject.Condition) ! local classTypeBinding = { ! ExternDeclaration = "extern "..MakeImpExpData("int").." g_wxluatype_"..MakeClassVar(parseObject.Name)..";\n", ExternMethodDeclaration = "extern "..output_cpp_impexpsymbol.." wxLuaBindMethod "..MakeVar(parseObject.Name).."_methods[];\n", ExternMethodCountDeclaration = "extern "..MakeImpExpData("int").." "..MakeVar(parseObject.Name).."_methodCount;\n", *************** *** 3794,3799 **** } ! if not classTagBindingTable[tagcondition] then classTagBindingTable[tagcondition] = {} end ! classTagBindingTable[tagcondition][parseObject.Name] = classTagBinding -- Class Tag Declaration --- 3792,3797 ---- } ! if not classTypeBindingTable[tagcondition] then classTypeBindingTable[tagcondition] = {} end ! classTypeBindingTable[tagcondition][parseObject.Name] = classTypeBinding -- Class Tag Declaration *************** *** 3802,3806 **** decl = decl.."// Lua MetaTable Tag for Class '"..parseObject.Name.."'\n" end ! decl = decl.."int s_wxluatag_"..MakeClassVar(parseObject.Name).." = -1;\n" interface.objectData[o].TagDeclaration = decl --- 3800,3804 ---- decl = decl.."// Lua MetaTable Tag for Class '"..parseObject.Name.."'\n" end ! decl = decl.."int g_wxluatype_"..MakeClassVar(parseObject.Name).." = -1;\n" interface.objectData[o].TagDeclaration = decl *************** *** 3830,3835 **** local funcMapName = "s_wxluafunc_"..funcName ! local overload_argListName = "s_wxluatagArray_".. funcName ! local overload_argList = "{ &s_wxluatag_"..MakeClassVar(parseObject.Name)..", NULL }" local condition = FixCondition(parseObject.Condition) --- 3828,3833 ---- local funcMapName = "s_wxluafunc_"..funcName ! local overload_argListName = "s_wxluatypeArray_".. funcName ! local overload_argList = "{ &g_wxluatype_"..MakeClassVar(parseObject.Name)..", NULL }" local condition = FixCondition(parseObject.Condition) *************** *** 3870,3874 **** ..MakeVar(parseObject.Name).."_methodCount, " ..classinfo..", " ! .."&s_wxluatag_"..MakeClassVar(parseObject.Name)..", " ..MakeVar(baseclass)..", " .."NULL ," --- 3868,3872 ---- ..MakeVar(parseObject.Name).."_methodCount, " ..classinfo..", " ! .."&g_wxluatype_"..MakeClassVar(parseObject.Name)..", " ..MakeVar(baseclass)..", " .."NULL ," *************** *** 4063,4067 **** table.insert(fileData, "extern wxLuaBindClass *"..hook_cpp_class_funcname.."(size_t &count);\n") ! table.insert(fileData, "extern wxLuaBindDefine *"..hook_cpp_define_funcname.."(size_t &count);\n") table.insert(fileData, "extern wxLuaBindString *"..hook_cpp_string_funcname.."(size_t &count);\n") table.insert(fileData, "extern wxLuaBindEvent *"..hook_cpp_event_funcname.."(size_t &count);\n") --- 4061,4065 ---- table.insert(fileData, "extern wxLuaBindClass *"..hook_cpp_class_funcname.."(size_t &count);\n") ! table.insert(fileData, "extern wxLuaBindNumber *"..hook_cpp_define_funcname.."(size_t &count);\n") table.insert(fileData, "extern wxLuaBindString *"..hook_cpp_string_funcname.."(size_t &count);\n") table.insert(fileData, "extern wxLuaBindEvent *"..hook_cpp_event_funcname.."(size_t &count);\n") *************** *** 4077,4081 **** table.insert(fileData, "// ---------------------------------------------------------------------------\n\n") ! for condition, classTagBindingList in pairs_sort(classTagBindingTable) do local indent = "" --- 4075,4079 ---- table.insert(fileData, "// ---------------------------------------------------------------------------\n\n") ! for condition, classTypeBindingList in pairs_sort(classTypeBindingTable) do local indent = "" *************** *** 4085,4095 **** end ! for idx, classTagBinding in pairs_sort(classTagBindingList) do ! table.insert(fileData, indent..classTagBinding.ExternDeclaration) ! table.insert(fileData, indent..classTagBinding.ExternMethodDeclaration) ! table.insert(fileData, indent..classTagBinding.ExternMethodCountDeclaration) ! if string.len(classTagBinding.ExternEnumCountDeclaration) > 0 then ! table.insert(fileData, indent..classTagBinding.ExternEnumDeclaration) ! table.insert(fileData, indent..classTagBinding.ExternEnumCountDeclaration) end end --- 4083,4093 ---- end ! for idx, classTypeBinding in pairs_sort(classTypeBindingList) do ! table.insert(fileData, indent..classTypeBinding.ExternDeclaration) ! table.insert(fileData, indent..classTypeBinding.ExternMethodDeclaration) ! table.insert(fileData, indent..classTypeBinding.ExternMethodCountDeclaration) ! if string.len(classTypeBinding.ExternEnumCountDeclaration) > 0 then ! table.insert(fileData, indent..classTypeBinding.ExternEnumDeclaration) ! table.insert(fileData, indent..classTypeBinding.ExternEnumCountDeclaration) end end *************** *** 4217,4221 **** table.insert(fileData, " m_nameSpace = wxT(\""..hook_lua_namespace.."\");\n") table.insert(fileData, " m_classArray = "..hook_cpp_class_funcname.."(m_classCount);\n") ! table.insert(fileData, " m_defineArray = "..hook_cpp_define_funcname.."(m_defineCount);\n") table.insert(fileData, " m_stringArray = "..hook_cpp_string_funcname.."(m_stringCount);\n") table.insert(fileData, " m_eventArray = "..hook_cpp_event_funcname.."(m_eventCount);\n") --- 4215,4219 ---- table.insert(fileData, " m_nameSpace = wxT(\""..hook_lua_namespace.."\");\n") table.insert(fileData, " m_classArray = "..hook_cpp_class_funcname.."(m_classCount);\n") ! table.insert(fileData, " m_numberArray = "..hook_cpp_define_funcname.."(m_numberCount);\n") table.insert(fileData, " m_stringArray = "..hook_cpp_string_funcname.."(m_stringCount);\n") table.insert(fileData, " m_eventArray = "..hook_cpp_event_funcname.."(m_eventCount);\n") *************** *** 4313,4320 **** table.insert(fileData, "// ---------------------------------------------------------------------------\n\n") ! table.insert(fileData, "wxLuaBindDefine* "..hook_cpp_define_funcname.."(size_t &count)\n{\n") ! table.insert(fileData, " static wxLuaBindDefine defineList[] =\n {\n") ! -- mix the %define and %enums together since they're both in the same wxLuaBindDefine struct local namedBindingTable = {} GenerateLuaNameFromIndexedTable(defineBindingTable, namedBindingTable) --- 4311,4318 ---- table.insert(fileData, "// ---------------------------------------------------------------------------\n\n") ! table.insert(fileData, "wxLuaBindNumber* "..hook_cpp_define_funcname.."(size_t &count)\n{\n") ! table.insert(fileData, " static wxLuaBindNumber numberList[] =\n {\n") ! -- mix the %define and %enums together since they're both in the same wxLuaBindNumber struct local namedBindingTable = {} GenerateLuaNameFromIndexedTable(defineBindingTable, namedBindingTable) *************** *** 4328,4333 **** table.insert(fileData, " { 0, 0 },\n") table.insert(fileData, " };\n") ! table.insert(fileData, " count = sizeof(defineList)/sizeof(wxLuaBindDefine) - 1;\n") ! table.insert(fileData, " return defineList;\n") table.insert(fileData, "}\n\n") --- 4326,4331 ---- table.insert(fileData, " { 0, 0 },\n") table.insert(fileData, " };\n") ! table.insert(fileData, " count = sizeof(numberList)/sizeof(wxLuaBindNumber) - 1;\n") ! table.insert(fileData, " return numberList;\n") table.insert(fileData, "}\n\n") *************** *** 4446,4451 **** local function writeFunc(functionBinding) if functionBinding.Method then ! if functionBinding.ArgArrayName and (functionBinding.ArgArrayName ~= "s_wxluaargArray_None") then ! table.insert(fileData, "static wxLuaArgTag "..functionBinding.ArgArrayName.."[] = "..functionBinding.ArgArray..";\n") end --- 4444,4449 ---- local function writeFunc(functionBinding) if functionBinding.Method then ! if functionBinding.ArgArrayName and (functionBinding.ArgArrayName ~= "g_wxluaargtypeArray_None") then ! table.insert(fileData, "static wxLuaArgType "..functionBinding.ArgArrayName.."[] = "..functionBinding.ArgArray..";\n") end *************** *** 4545,4549 **** CommentBindingTable(funcMap, "// function overload table\n") table.insert(funcMap, "static wxLuaBindCFunc "..funcMapName.."[] =\n{\n") ! -- table.insert(funcMap, " { "..funcName..", WXLUAMETHOD_METHOD|WXLUAMETHOD_OVERLOAD, "..tostring(requiredParamCount)..", "..tostring(paramCount)..", s_wxluaargArray_None },\n") for i = 1, #methodBindings do if HasCondition(methodBindings[i].Condition) and (methodBindings[i].Condition ~= object.Condition) then --- 4543,4547 ---- CommentBindingTable(funcMap, "// function overload table\n") table.insert(funcMap, "static wxLuaBindCFunc "..funcMapName.."[] =\n{\n") ! -- table.insert(funcMap, " { "..funcName..", WXLUAMETHOD_METHOD|WXLUAMETHOD_OVERLOAD, "..tostring(requiredParamCount)..", "..tostring(paramCount)..", g_wxluaargtypeArray_None },\n") for i = 1, #methodBindings do if HasCondition(methodBindings[i].Condition) and (methodBindings[i].Condition ~= object.Condition) then *************** *** 4644,4649 **** table.insert(fileData, functionBinding.PreDefineCode) end ! if functionBinding.ArgArrayName and (functionBinding.ArgArrayName ~= "s_wxluaargArray_None") then ! table.insert(fileData, "static wxLuaArgTag "..functionBinding.ArgArrayName.."[] = "..functionBinding.ArgArray..";\n") end if functionBinding.FuncMapName then --- 4642,4647 ---- table.insert(fileData, functionBinding.PreDefineCode) end ! if functionBinding.ArgArrayName and (functionBinding.ArgArrayName ~= "g_wxluaargtypeArray_None") then ! table.insert(fileData, "static wxLuaArgType "..functionBinding.ArgArrayName.."[] = "..functionBinding.ArgArray..";\n") end if functionBinding.FuncMapName then *************** *** 4686,4690 **** if enumClassBindingTable[MakeClassVar(ObjectName)] then ! table.insert(fileData, "wxLuaBindDefine "..MakeClassVar(ObjectName).."_enums[] = {\n") local namedBindingTable = {} GenerateLuaNameFromIndexedTable(enumClassBindingTable[MakeClassVar(ObjectName)], namedBindingTable) --- 4684,4688 ---- if enumClassBindingTable[MakeClassVar(ObjectName)] then ! table.insert(fileData, "wxLuaBindNumber "..MakeClassVar(ObjectName).."_enums[] = {\n") local namedBindingTable = {} GenerateLuaNameFromIndexedTable(enumClassBindingTable[MakeClassVar(ObjectName)], namedBindingTable) *************** *** 4696,4700 **** -- since there may be conditions count them up afterwards ! table.insert(fileData, "int "..MakeVar(ObjectName).."_enumCount = sizeof("..MakeClassVar(ObjectName).."_enums)/sizeof(wxLuaBindDefine) - 1;\n") end --- 4694,4698 ---- -- since there may be conditions count them up afterwards ! table.insert(fileData, "int "..MakeVar(ObjectName).."_enumCount = sizeof("..MakeClassVar(ObjectName).."_enums)/sizeof(wxLuaBindNumber) - 1;\n") end |