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
|