Advertisement
RabaGhast

Menu

Oct 1st, 2015
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.18 KB | None | 0 0
  1. function Menu(name)
  2.  
  3. --Class Variables
  4. --======================
  5.   local deltaX = 1
  6.   local self = {}
  7.   local items = {}
  8.   local size = 0
  9.   local name = name
  10.  
  11. -- Class Functions
  12. --======================
  13. --getName
  14.   self.getName = function()
  15.     return name
  16.   end
  17.  
  18. --getDeltaX
  19.   self.getDeltaX = function()
  20.     return deltaX
  21.   end
  22.  
  23. --getSize
  24.   self.getSize = function()
  25.     return size
  26.   end
  27.  
  28. --addItem
  29.   self.addItem = function(name, go)
  30.     menuItem = MenuItem(name, go)
  31.     table.insert(items,menuItem)
  32.     size = size+1
  33.   end
  34.  
  35. --removeItem(idx)
  36.   self.removeItem = function(idx)
  37.     item = table.remove(items,idx)
  38.     size= size-1
  39.     return item
  40.   end
  41.  
  42. --getItem(idx)
  43.   self.getItem = function(idx)
  44.     return items[idx]
  45.   end
  46.  
  47. --getItems()
  48.   self.getItems = function()
  49.     return items
  50.   end
  51.  
  52. --printItems
  53.   self.printItems = function()
  54.     for i=1, size do
  55.    --   print("in printing loop")
  56.       print(items[i].getName())
  57.     end
  58.   end
  59.  
  60.   --Inner class MenuItem
  61.   --======================
  62.   function MenuItem(name, go)
  63.     local str = go
  64.     local name = name
  65.     local self = {}
  66.    
  67.     --go
  68.     self.go = function()
  69.       if str == nil then
  70.         print("No go-function assigned to MenuItem")
  71.       else
  72.         return str
  73.       end
  74.     end
  75.    
  76.     --setGo
  77.     self.setGo = function(inn)
  78.       go = loadstring(inn)
  79.     end
  80.    
  81.     --getName
  82.     self.getName = function()
  83.       return name
  84.     end
  85.    
  86.     return self
  87.   end  
  88.  
  89.  
  90.   return self
  91. end
  92.  
  93. function test()
  94.    --Main
  95.   --======================
  96.   menu1 = Menu("menu1")
  97.  
  98.   --print(menu1.getDeltaX()) --> 1
  99.   --print(type(menu1.deltaX)) --> nil
  100.   menu1.addItem("A")
  101.   menu1.addItem("B")
  102.   print(menu1.getItem(0).getName())
  103.  
  104.   --print(menu1.getItem(1).getName())
  105.   menu1.printItems()
  106.   menu1.addItem("C")
  107.   menu1.printItems()
  108.   print(menu1.getSize())
  109.   menu1.removeItem(1)
  110.   menu1.printItems()
  111.   print(menu1.getSize())
  112.  
  113.   menu1.getItem(1).setGo("print(\"this actually ran\")")
  114.   menu1.getItem(1).go()
  115.   print(menu1.getItem(0).getName())
  116. end
  117.  
  118. --test()
  119.  
  120.  menu1 = Menu("menu1")
  121.  menu1.addItem("A", "os.reboot()")
  122.  print(menu1.getItem(1).go())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement