fix(textwidget): better color management
This commit is contained in:
parent
88a68d2f98
commit
339d927d51
1 changed files with 29 additions and 3 deletions
|
@ -35,7 +35,7 @@ function TextWidget:new(menuName, font, label, position, padding)
|
||||||
-- We add the first label
|
-- We add the first label
|
||||||
local position = position or "center"
|
local position = position or "center"
|
||||||
self:addLabel(label, position)
|
self:addLabel(label, position)
|
||||||
self:setSelectedColor(1, 1, 1)
|
self:setColor(1, 1, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TextWidget:addLabel(label, position)
|
function TextWidget:addLabel(label, position)
|
||||||
|
@ -49,6 +49,13 @@ function TextWidget:replaceLabel(id, newLabel)
|
||||||
self.labels[id].label = newLabel
|
self.labels[id].label = newLabel
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function TextWidget:setColor(r, g, b)
|
||||||
|
self.color = {}
|
||||||
|
self.color.r = r
|
||||||
|
self.color.g = g
|
||||||
|
self.color.b = b
|
||||||
|
end
|
||||||
|
|
||||||
function TextWidget:setSelectedColor(r, g, b)
|
function TextWidget:setSelectedColor(r, g, b)
|
||||||
self.selectedColor = {}
|
self.selectedColor = {}
|
||||||
self.selectedColor.r = r
|
self.selectedColor.r = r
|
||||||
|
@ -61,7 +68,15 @@ function TextWidget:getFont()
|
||||||
end
|
end
|
||||||
|
|
||||||
function TextWidget:getSelectedColor()
|
function TextWidget:getSelectedColor()
|
||||||
return self.selectedColor.r, self.selectedColor.g, self.selectedColor.b
|
if (self.selectedColor ~= nil) then
|
||||||
|
return self.selectedColor.r, self.selectedColor.g, self.selectedColor.b
|
||||||
|
else
|
||||||
|
return self:getColor()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TextWidget:getColor()
|
||||||
|
return self.color.r, self.color.g, self.color.b
|
||||||
end
|
end
|
||||||
|
|
||||||
function TextWidget:getPadding()
|
function TextWidget:getPadding()
|
||||||
|
@ -87,10 +102,21 @@ function TextWidget:drawCanvas()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function TextWidget:draw(x, y, w, h)
|
||||||
|
local r, g, b = self:getColor()
|
||||||
|
love.graphics.setColor(r, g, b, 1)
|
||||||
|
if self.canvas.texture ~= nil then
|
||||||
|
love.graphics.draw(self.canvas.texture, x, y)
|
||||||
|
end
|
||||||
|
utils.graphics.resetColor()
|
||||||
|
end
|
||||||
|
|
||||||
function TextWidget:drawSelected(x, y, w, h)
|
function TextWidget:drawSelected(x, y, w, h)
|
||||||
local r, g, b = self:getSelectedColor()
|
local r, g, b = self:getSelectedColor()
|
||||||
love.graphics.setColor(r, g, b, 1)
|
love.graphics.setColor(r, g, b, 1)
|
||||||
self:draw(x, y)
|
if self.canvas.texture ~= nil then
|
||||||
|
love.graphics.draw(self.canvas.texture, x, y)
|
||||||
|
end
|
||||||
utils.graphics.resetColor()
|
utils.graphics.resetColor()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue