Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function test()
- --Main
- --======================
- menu1 = Menu("menu1")
- --print(menu1.getDeltaX()) --> 1
- --print(type(menu1.deltaX)) --> nil
- menu1.addItem("A")
- menu1.addItem("B")
- print(menu1.getItem(0).test())
- print(menu1.getItem(0).getTitle())
- --print(menu1.getItem(1).getName())
- menu1.printItems()
- menu1.addItem("C")
- menu1.printItems()
- print(menu1.getSize())
- menu1.removeItem(1)
- menu1.printItems()
- print(menu1.getSize())
- menu1.getItem(1).setGo("print(\"this actually ran\")")
- menu1.getItem(1).go()
- print(menu1.getItem(0).getTitle())
- end
- function Menu(name)
- --Class Variables
- --======================
- local deltaX = 1
- local self = {}
- local items = {}
- local size = 0
- local name = name
- for i=0, 1 do
- items[i] = 0
- end
- -- Class Functions
- --======================
- --getName
- self.getName = function()
- return name
- end
- --getDeltaX
- self.getDeltaX = function()
- return deltaX
- end
- --getSize
- self.getSize = function()
- return size
- end
- --addItem
- self.addItem = function(title)
- menuItem = MenuItem(title)
- items[size] = menuItem
- size = size+1
- end
- --removeItem(idx)
- self.removeItem = function(idx)
- item = items[idx]
- table.remove(items,idx)
- size= size-1
- return item
- end
- --getItem(idx)
- self.getItem = function(idx)
- return items[idx]
- end
- --printItems
- self.printItems = function()
- for i=0, size-1 do
- -- print("in printing loop")
- print(items[i].getTitle())
- end
- end
- --Inner class MenuItem
- --======================
- function MenuItem(title)
- local str = nil
- local title = title
- local child = {}
- --go
- child.go = function()
- if str == nil then
- print("No go-function assigned to MenuItem")
- else
- assert(loadstring("return "..str.."(...)"))
- end
- end
- --setGo
- child.setGo = function(inn)
- str = inn
- end
- --getName
- child.getTitle = function()
- return title
- end
- child.test = function()
- return title
- end
- return child
- end
- return self
- end
- test()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement