Advertisement
Guest User

Untitled

a guest
May 25th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. element = {}
  2.  
  3. function element:element(name, tags)
  4. local obj = {}
  5.  
  6. obj.name = name
  7. obj.tags = tags
  8.  
  9. for k,v in pairs(element) do
  10. obj[k] = v
  11. end
  12.  
  13. return obj
  14. end
  15.  
  16. function element:getName()
  17. return self.name
  18. end
  19.  
  20. function element:onClick(callback)
  21. self.clickCallback = callback
  22. return self
  23. end
  24.  
  25. function element:click()
  26. self.clickCallback()
  27. end
  28.  
  29. --=======================================
  30.  
  31. screen = {}
  32.  
  33. function screen:screen(name)
  34. local obj = {}
  35.  
  36. obj.name = name
  37. obj.elements = {}
  38.  
  39. for k,v in pairs(screen) do
  40. obj[k] = v
  41. end
  42. print("creating screen")
  43. return obj
  44. end
  45.  
  46. function screen:addElement(e)
  47. self.elements[e:getName()] = e
  48. end
  49.  
  50. function screen:update()
  51. -- for testing
  52. self.elements["profile1"]:click()
  53. end
  54.  
  55. --=======================================
  56.  
  57. ui = {}
  58. ui.screens = {}
  59.  
  60. function ui:screen(name)
  61. if ui.screens[name] == nil then
  62. ui.screens[name] = screen:screen(name) --<---- ERROR: index is nil
  63. end
  64.  
  65. return ui.screens[name]
  66. end
  67.  
  68. function ui:element(name, tags)
  69. return element:element(name, tags)
  70. end
  71.  
  72. --local e = ui.element("profile1", "profile_button btnProfile1")
  73. ui.screen("profiles"):addElement(
  74. ui.element("profile1", "profile_button btnProfile1")
  75. :onClick(function() print("Profile1 button clicked")
  76. end)
  77. )
  78.  
  79. ui.screen("profiles"):update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement