local Widget = require("ui/widget/widget") --[[ ProgressWidget shows a progress bar --]] local ProgressWidget = Widget:new{ width = nil, height = nil, margin_h = 3, margin_v = 1, radius = 2, bordersize = 1, bordercolor = 15, bgcolor = 0, rectcolor = 10, percentage = nil, } function ProgressWidget:getSize() return { w = self.width, h = self.height } end function ProgressWidget:paintTo(bb, x, y) local my_size = self:getSize() bb:paintRoundedRect(x, y, my_size.w, my_size.h, self.bgcolor, self.radius) bb:paintBorder(x, y, my_size.w, my_size.h, self.bordersize, self.bordercolor, self.radius) bb:paintRect(x+self.margin_h, y+self.margin_v+self.bordersize, (my_size.w-2*self.margin_h)*self.percentage, (my_size.h-2*(self.margin_v+self.bordersize)), self.rectcolor) end function ProgressWidget:setPercentage(percentage) self.percentage = percentage end return ProgressWidget