fpv/source/scripts/progressBar.lua
2024-06-04 21:21:40 +03:00

29 lines
974 B
Lua

local pd <const> = playdate
local gfx <const> = Graphics
class('ProgressBar').extends(gfx.sprite)
function ProgressBar:init(x, y, width, height)
self:setImage(gfx.image.new(width, height))
self.progress = 0
self:moveTo(x, y)
self:add()
self:set(0)
end
function ProgressBar:set(percentage)
self.progress = percentage
local bar_image = gfx.image.new(self.width, self.height, gfx.kColorWhite)
local progressWidth = self.progress / 100 * (self.width - 4)
-- local _, fontHeight = playdate.graphics.getTextSize("TEST")
gfx.pushContext(bar_image)
gfx.setLineWidth(2)
gfx.drawRoundRect(1, 1, self.width - 2, self.height - 2, 3)
gfx.fillRect(2, 2, progressWidth, self.height - 4)
gfx.setImageDrawMode(gfx.kDrawModeNXOR)
--[[ gfx.drawTextAligned(math.floor(self.progress) .. "%", self.width / 2, (self.height - fontHeight) / 2 + 2,
kTextAlignment.center) ]]
gfx.popContext()
self:setImage(bar_image)
end