add progress bar

This commit is contained in:
airstruck
2015-10-28 11:15:23 -04:00
parent 4372740363
commit 0759d36702
10 changed files with 44 additions and 5 deletions

15
luigi/widget/progress.lua Normal file
View File

@@ -0,0 +1,15 @@
return function (self)
self.value = 0.5
self.flow = 'x' -- TODO: support vertical slider
local bar = self:addChild {
type = 'progressInner',
width = 0,
}
self:onReshape(function (event)
local x1, y1, x2, y2 = self:getRectangle(true, true)
bar.width = self.value * (x2 - x1)
end)
end

View File

@@ -19,12 +19,24 @@ return function (self)
thumb:onPressStart(unpress)
thumb:onPressEnter(unpress)
self:onPressDrag(function (event)
local function press (event)
local x1, y1, x2, y2 = self:getRectangle(true, true)
self.value = (event.x - x1) / (x2 - x1)
if self.value < 0 then self.value = 0 end
if self.value > 1 then self.value = 1 end
self:reflow()
end
self:onPressStart(press)
self:onPressDrag(press)
self:onEnter(function (event)
thumb.hovered = true
end)
self:onLeave(function (event)
thumb.hovered = false
end)
self:onReshape(function (event)

View File

@@ -11,6 +11,7 @@ return function (self)
}
local view = self:addChild {
type = 'text',
align = 'middle center',
margin = 0,
}