67 lines
1.5 KiB
Lua
67 lines
1.5 KiB
Lua
require "ui"
|
|
require "util"
|
|
|
|
msgbox = {
|
|
title = "TITOL",
|
|
text = { "Este es el missatge.", "Pot estar en varies linies" },
|
|
buttons = { {"YES", sys.quit}, {"NO", app.pop} },
|
|
selected = 0,
|
|
w = 100,
|
|
h = 50,
|
|
} local me = msgbox
|
|
|
|
function me.show(title, text, buttons, default)
|
|
me.selected = default or 1
|
|
me.title = title
|
|
me.text = text
|
|
me.buttons = buttons
|
|
|
|
me.w = 0
|
|
for i,v in ipairs(me.text) do
|
|
local width = #v*4+8
|
|
if width > me.w then me.w = width end
|
|
end
|
|
|
|
me.h = #me.text*6+35
|
|
|
|
app.push(me.update)
|
|
end
|
|
|
|
function me.update()
|
|
local top = (160-me.w)//2
|
|
local left = (104-me.h)//2
|
|
view.clip(top, left, me.w, me.h)
|
|
view.origin(top, left)
|
|
draw.rrectf(0,0,me.w, me.h,4,27)
|
|
|
|
--draw.rectf(1,1,me.w-2, 7, 21)
|
|
draw.text(me.title, 5, 4, 4)
|
|
|
|
local y = 14
|
|
for i,v in ipairs(me.text) do
|
|
draw.text(v, 5, y, 21)
|
|
y = y + 6
|
|
end
|
|
|
|
local mx, my = mouse.pos()
|
|
|
|
local x = me.w - 35
|
|
y = me.h - 12
|
|
for i,v in ipairs(me.buttons) do
|
|
ui.pushbutton(v[1],x,y,7,22,21,v[2],me.selected==i)
|
|
x = x - 34
|
|
end
|
|
|
|
if key.press(key.ESCAPE) then
|
|
app.pop()
|
|
elseif key.press(key.RIGHT) then
|
|
me.selected=me.selected-1
|
|
if me.selected==0 then me.selected = #me.buttons end
|
|
elseif key.press(key.LEFT) then
|
|
me.selected=me.selected+1
|
|
if me.selected>#me.buttons then me.selected = 1 end
|
|
elseif key.press(key.RETURN) then
|
|
me.buttons[me.selected][2]()
|
|
end
|
|
end
|