Advertisement
kaibochan

element.lua

Feb 19th, 2025 (edited)
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.26 KB | None | 0 0
  1. local Buffer = require("/apis/gui.buffer")
  2. local Cell = require("/apis/gui.cell")
  3.  
  4. local Element = {
  5.     __name = "Element",
  6.     x = 0,
  7.     y = 0,
  8.     width = 1,
  9.     height = 1,
  10.     bg_color = colors.black,
  11.     buffer = Buffer,
  12.     children = {},
  13. }
  14.  
  15. function Element:new(o)
  16.     o = o or {}
  17.  
  18.     setmetatable(o, self)
  19.     self.__index = self
  20.  
  21.     o.buffer = Buffer:new {
  22.         width = o.width,
  23.         height = o.height,
  24.     }
  25.     o.children = {}
  26.  
  27.     return o
  28. end
  29.  
  30. function Element:getSize()
  31.     return self.width, self.height
  32. end
  33.  
  34. function Element:setWidth(new_width)
  35.     self.width = new_width
  36. end
  37.  
  38. function Element:setHeight(new_height)
  39.     self.height = new_height
  40. end
  41.  
  42. function Element:getPos()
  43.     return self.x, self.y
  44. end
  45.  
  46. function Element:setPosX(new_x)
  47.     self.x = new_x
  48. end
  49.  
  50. function Element:setPosY(new_y)
  51.     self.y = new_y
  52. end
  53.  
  54. function Element:getBGColor()
  55.     return self.bg_color
  56. end
  57.  
  58. function Element:setBGColor(new_bg_color)
  59.     self.bg_color = new_bg_color
  60. end
  61.  
  62. function Element:addElement(element)
  63.     table.insert(self.children, element)
  64. end
  65.  
  66. function Element:updateBuffer()
  67.     local default_cell = Cell:new { bg_color = self.bg_color }
  68.     self.buffer:fill(default_cell)
  69. end
  70.  
  71. return Element
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement