From: John L. <jr...@us...> - 2009-05-20 04:43:51
|
Update of /cvsroot/wxlua/wxLua/samples In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv5286/wxLua/samples Modified Files: bindings.wx.lua Log Message: Update bindings.wx.lua to handle multiple base classes remove wrong wxBitmapComboBox base class temporarily Index: bindings.wx.lua =================================================================== RCS file: /cvsroot/wxlua/wxLua/samples/bindings.wx.lua,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** bindings.wx.lua 14 May 2009 05:06:21 -0000 1.24 --- bindings.wx.lua 20 May 2009 04:43:41 -0000 1.25 *************** *** 1033,1036 **** --- 1033,1074 ---- } + local function BaseClassRecursor(baseBindClasses, c_table, c_table_pos) + if not baseBindClasses then return end + + local bc_list = baseBindClasses + local c_table_lens = {} + + for bc_i = 1, #bc_list do + local bc = bc_list[bc_i] + -- check for mistakes in the bindings + if (not bc.classInfo) and wx.wxClassInfo.FindClass(bc.name) then + print(bc.name.." is missing its wxClassInfo, please report this.") + end + + -- make a new entry and copy the previous ones + if bc_i > 1 then + c_table[c_table_pos+bc_i-1] = {} + for k, v in pairs(c_table[c_table_pos]) do + if (tonumber(k) == nil) then + c_table[c_table_pos+1][k] = v + elseif (k < c_table_lens[c_table_pos]) then + -- use "" to blank out + c_table[c_table_pos+1][k] = v -- "" + end + end + + c_table[c_table_pos+bc_i-1][1] = c_table[c_table_pos][1]..string.char(string.byte("a")+c_table_pos+bc_i-3) + c_table[c_table_pos+bc_i-1][2] = c_table[c_table_pos][2] + end + table.insert(c_table[c_table_pos+bc_i-1], bc.name) + + for i = 1, #c_table do + c_table_lens[i] = #c_table[i] + end + + BaseClassRecursor(bc.baseBindClasses, c_table, c_table_pos+bc_i-1) + end + end + for b = 1, #bindingList do local binding = bindingList[b] *************** *** 1051,1073 **** end -- traverse through the wxLua defined base classes ! local bc = c ! while bc do ! -- check for mistakes in the bindings ! if (not bc.classInfo) and wx.wxClassInfo.FindClass(bc.name) then ! print(bc.name.." is missing its wxClassInfo, please report this.") ! end ! table.insert(c_table, bc.name) ! bc = bc.baseclass end - if max_cols < #c_table then max_cols = #c_table end - table.insert(t, c_table) - -- now do wxWidgets base class info if c.classInfo then local ci = c.classInfo ! local c_table2 = {a.."c"} while ci do --- 1089,1106 ---- end + c_table = {c_table} + -- traverse through the wxLua defined base classes ! BaseClassRecursor({c}, c_table, 1) ! for j = 1, #c_table do ! if max_cols < #c_table[j] then max_cols = #c_table[j] end ! table.insert(t, c_table[j]) end -- now do wxWidgets base class info if c.classInfo then local ci = c.classInfo ! local c_table2 = {a.."wx"} while ci do *************** *** 1090,1094 **** end ! --if ci:GetBaseClass2() then print(ci:GetClassName(), "Has two bases!") end ci = ci:GetBaseClass1() -- FIXME handle two base classes, maybe? end --- 1123,1127 ---- end ! if ci:GetBaseClass2() then print(ci:GetClassName(), "Has two bases!") end ci = ci:GetBaseClass1() -- FIXME handle two base classes, maybe? end |