Pop.Box/elements/text.lua
2017-04-08 17:10:44 -07:00

117 lines
2.9 KiB
Lua

local graphics
graphics = love.graphics
local element = require(tostring((...):sub(1, -5)) .. "/element")
local text
do
local _class_0
local _parent_0 = element
local _base_0 = {
draw = function(self)
graphics.setColor(self.data.color)
graphics.setFont(self.font)
graphics.print(self.data.text, self.data.x, self.data.y)
return self
end,
setSize = function(self)
self.data.w = self.font:getWidth(self.data.text)
self.data.h = self.font:getHeight() * (select(2, self.data.text:gsub("\n", "\n")) + 1)
return self
end,
getText = function(self)
return self.data.text
end,
setText = function(self, text)
self.data.text = tostring(text)
self:setSize()
return self:align()
end,
setColor = function(self, r, g, b, a)
if "table" == type(r) then
self.data.color = r
else
self.data.color = {
r,
g,
b,
a
}
end
return self
end
}
_base_0.__index = _base_0
setmetatable(_base_0, _parent_0.__base)
_class_0 = setmetatable({
__init = function(self, parent, data, text, fontFile, fontSize)
if data == nil then
data = { }
end
if text == nil then
text = ""
end
if fontSize == nil then
fontSize = 14
end
self.parent, self.data = parent, data
_class_0.__parent.__init(self, self.parent, self.data)
if "number" == type(text) then
fontSize = fontFile
fontFile = text
text = ""
end
self.data.type = "text"
if not (self.data.text) then
self.data.text = text
end
if not (self.data.fontFile) then
self.data.fontFile = fontFile
end
if not (self.data.fontSize) then
self.data.fontSize = fontSize
end
if not (self.data.color) then
self.data.color = {
255,
255,
255,
255
}
end
if "string" == type(self.data.fontFile) then
self.font = graphics.newFont(self.data.fontFile, self.data.fontSize)
elseif "number" == type(self.data.fontFile) then
self.font = graphics.newFont(self.data.fontFile)
else
self.font = graphics.newFont(self.data.fontSize)
end
return self:setSize()
end,
__base = _base_0,
__name = "text",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil then
local parent = rawget(cls, "__parent")
if parent then
return parent[name]
end
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
if _parent_0.__inherited then
_parent_0.__inherited(_parent_0, _class_0)
end
text = _class_0
return _class_0
end