Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Menu(name)
- --Class Variables
- --======================
- local deltaX = 1
- local self = {}
- local items = {}
- local size = 0
- local name = name
- -- 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(name, go)
- menuItem = MenuItem(name, go)
- table.insert(items,menuItem)
- size = size+1
- end
- --removeItem(idx)
- self.removeItem = function(idx)
- item = table.remove(items,idx)
- size= size-1
- return item
- end
- --getItem(idx)
- self.getItem = function(idx)
- return items[idx]
- end
- --getItems()
- self.getItems = function()
- return items
- end
- --printItems
- self.printItems = function()
- for i=1, size do
- -- print("in printing loop")
- print(items[i].getName())
- end
- end
- --Inner class MenuItem
- --======================
- function MenuItem(name, go)
- local str = go
- local name = name
- local self = {}
- --go
- self.go = function()
- if str == nil then
- print("No go-function assigned to MenuItem")
- else
- return str
- end
- end
- --setGo
- self.setGo = function(inn)
- go = loadstring(inn)
- end
- --getName
- self.getName = function()
- return name
- end
- return self
- end
- return self
- end
- 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).getName())
- --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).getName())
- end
- --test()
- menu1 = Menu("menu1")
- menu1.addItem("A", "os.reboot()")
- print(menu1.getItem(1).go())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement