77 lines
2.1 KiB
Lua
77 lines
2.1 KiB
Lua
local Time = require"time"
|
|
local loveframes = require"loveframes"
|
|
|
|
local Clock = require"clock"
|
|
local clock = Clock:new(nil, love.graphics.getHeight())
|
|
|
|
local controls = loveframes.Create("panel"):SetPos(10,10)
|
|
local toggleTime = loveframes.Create("checkbox"):SetParent(controls):SetPos(0,0)
|
|
toggleTime:SetText("Show time")
|
|
local hourBox = loveframes.Create("numberbox"):SetMinMax(1, 12):SetValue(12)
|
|
hourBox:SetParent(controls):SetPos(0,30)
|
|
local minuteBox = loveframes.Create("numberbox"):SetMinMax(0, 59):SetValue(0)
|
|
loveframes.Create("text"):SetText(":"):SetParent(controls):SetPos(80,30)
|
|
minuteBox:SetParent(controls):SetPos(100,30)
|
|
|
|
function setClock()
|
|
local t = Time:new(hourBox:GetValue(), minuteBox:GetValue())
|
|
clock:setTime(t)
|
|
end
|
|
hourBox.OnValueChanged = setClock
|
|
minuteBox.OnValueChanged = setClock
|
|
|
|
function updateInputNoCallback(input, value)
|
|
callback = input.onValueChanged
|
|
input.onValueChanged = nil
|
|
input:SetValue(value)
|
|
input.onValueChanged = callback
|
|
end
|
|
|
|
function updateInputs(time)
|
|
local h, m = time:get()
|
|
updateInputNoCallback(hourBox, h)
|
|
updateInputNoCallback(minuteBox, math.floor(m))
|
|
end
|
|
clock.onSetHands = updateInputs
|
|
|
|
function love.mousemoved(x, y, dx, dy, istouch)
|
|
clock:movemouse(x, y)
|
|
end
|
|
|
|
-- todo mousepressed & mousereleased
|
|
function love.mousepressed(x, y, button, istouch, presses)
|
|
clock:pressmouse(x, y, button)
|
|
loveframes.mousepressed(x, y, button)
|
|
end
|
|
|
|
function love.mousereleased(x, y, button, istouch, presses)
|
|
clock:releasemouse(button)
|
|
loveframes.mousereleased(x, y, button)
|
|
end
|
|
|
|
function love.keypressed(key, scancode, isrepeat)
|
|
loveframes.keypressed(key, isrepeat)
|
|
end
|
|
|
|
function love.keyreleased(key)
|
|
loveframes.keyreleased(key)
|
|
end
|
|
|
|
function love.textinput(text)
|
|
loveframes.textinput(text)
|
|
end
|
|
|
|
function love.load()
|
|
love.graphics.setBackgroundColor(0.02,0.53,0.77)
|
|
end
|
|
|
|
function love.update(dt)
|
|
loveframes.update(dt)
|
|
end
|
|
|
|
function love.draw()
|
|
loveframes.draw()
|
|
local shift = (love.graphics.getWidth() - love.graphics.getHeight()) / 2
|
|
clock:draw()
|
|
end
|