changed the projects filesystem to use require() instead of loadfile()

currently preparing for a better package manager/installer
This commit is contained in:
Robert Jelic
2022-07-03 21:19:01 +02:00
parent 1f18db9965
commit c00d466b10
73 changed files with 5658 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
local function Button(name)
-- Button
local base = Object(name)
local objectType = "Button"
base:setValue("Button")
base:setZIndex(5)
base.width = 8
base.bgColor = theme.ButtonBG
base.fgColor = theme.ButtonFG
local textHorizontalAlign = "center"
local textVerticalAlign = "center"
local object = {
getType = function(self)
return objectType
end;
setHorizontalAlign = function(self, pos)
textHorizontalAlign = pos
end;
setVerticalAlign = function(self, pos)
textVerticalAlign = pos
end;
setText = function(self, text)
base:setValue(text)
return self
end;
draw = function(self)
if (base.draw(self)) then
if (self.parent ~= nil) then
local obx, oby = self:getAnchorPosition()
local verticalAlign = getTextVerticalAlign(self.height, textVerticalAlign)
if(self.bgColor~=false)then
self.parent:drawBackgroundBox(obx, oby, self.width, self.height, self.bgColor)
self.parent:drawTextBox(obx, oby, self.width, self.height, " ")
end
if(self.fgColor~=false)then self.parent:drawForegroundBox(obx, oby, self.width, self.height, self.fgColor) end
for n = 1, self.height do
if (n == verticalAlign) then
self.parent:setText(obx, oby + (n - 1), getTextHorizontalAlign(self:getValue(), self.width, textHorizontalAlign))
end
end
end
self:setVisualChanged(false)
end
end;
}
return setmetatable(object, base)
end