- Primera pasada de reorganització
This commit is contained in:
123
data/msgbox.lua
123
data/msgbox.lua
@@ -8,76 +8,59 @@ msgbox = {
|
||||
selected = 0,
|
||||
w = 100,
|
||||
h = 50,
|
||||
} local me = msgbox
|
||||
|
||||
show = function(title, text, buttons, default)
|
||||
msgbox.selected = default or 1
|
||||
msgbox.title = title
|
||||
msgbox.text = text
|
||||
msgbox.buttons = buttons
|
||||
function me.show(title, text, buttons, default)
|
||||
me.selected = default or 1
|
||||
me.title = title
|
||||
me.text = text
|
||||
me.buttons = buttons
|
||||
|
||||
msgbox.w = 0
|
||||
for i,v in ipairs(msgbox.text) do
|
||||
local width = #v*4+8
|
||||
if width > msgbox.w then msgbox.w = width end
|
||||
end
|
||||
|
||||
msgbox.h = #msgbox.text*6+35
|
||||
|
||||
app.push(msgbox.update)
|
||||
end,
|
||||
|
||||
update = function()
|
||||
local top = (160-msgbox.w)//2
|
||||
local left = (104-msgbox.h)//2
|
||||
view.clip(top, left, msgbox.w, msgbox.h)
|
||||
view.origin(top, left)
|
||||
--draw.outset(0, 0, msgbox.w, msgbox.h)
|
||||
draw.rrectf(0,0,msgbox.w, msgbox.h,4,27)
|
||||
|
||||
--draw.rectf(1,1,msgbox.w-2, 7, 21)
|
||||
draw.text(msgbox.title, 5, 4, 4)
|
||||
|
||||
local y = 14
|
||||
for i,v in ipairs(msgbox.text) do
|
||||
draw.text(v, 5, y, 21)
|
||||
y = y + 6
|
||||
end
|
||||
|
||||
local mx, my = mouse.pos()
|
||||
|
||||
local x = msgbox.w - 35
|
||||
y = msgbox.h - 12
|
||||
for i,v in ipairs(msgbox.buttons) do
|
||||
ui.pushbutton(v[1],x,y,7,22,21,v[2],msgbox.selected==i)
|
||||
--local inside = util.inside(mx, my, {x, y, 32, 9})
|
||||
--draw.outset(x, y, 32, 9)
|
||||
--if inside then
|
||||
-- draw.rectf(x+1,y+1,30,7,27)
|
||||
-- if mouse.down(mouse.LEFT) then draw.inset(x, y, 32, 9) end
|
||||
--end
|
||||
--local offset = (32-#v[1]*4)//2
|
||||
--draw.text(v[1], x+1+offset, y+2, 1)
|
||||
--if (i==msgbox.selected) then
|
||||
-- draw.rrect(x-1, y-1, 29, 10, 3, 1)
|
||||
--end
|
||||
--if mouse.press(mouse.LEFT) then
|
||||
-- if inside then
|
||||
-- v[2]()
|
||||
-- end
|
||||
--end
|
||||
x = x - 34
|
||||
end
|
||||
|
||||
if key.press(key.ESCAPE) then
|
||||
app.pop()
|
||||
elseif key.press(key.RIGHT) then
|
||||
msgbox.selected=msgbox.selected-1
|
||||
if msgbox.selected==0 then msgbox.selected = #msgbox.buttons end
|
||||
elseif key.press(key.LEFT) then
|
||||
msgbox.selected=msgbox.selected+1
|
||||
if msgbox.selected>#msgbox.buttons then msgbox.selected = 1 end
|
||||
elseif key.press(key.RETURN) then
|
||||
msgbox.buttons[msgbox.selected][2]()
|
||||
end
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user