tibia-client/modules/core/messagebox.lua

96 lines
2.3 KiB
Lua
Raw Normal View History

2011-05-31 03:55:34 +02:00
MessageBox = {}
MessageBox.__index = MessageBox
2011-07-17 08:56:57 +02:00
-- messagebox flags
MessageBoxOk = 1
MessageBoxCancel = 2
function MessageBox.create(title, text, flags)
local box = {}
setmetatable(box, MessageBox)
-- create messagebox window
local window = UIWindow.create()
2011-08-20 22:30:41 +02:00
window:setStyle('Window')
window:setId("messageBoxWindow")
window:setTitle(title)
2011-08-14 04:09:11 +02:00
window:centerIn("parent")
rootWidget:addChild(window)
2011-08-20 22:30:41 +02:00
rootWidget:lockChild(window)
2011-07-17 08:56:57 +02:00
-- create messagebox label
local label = UILabel.create()
2011-08-20 22:30:41 +02:00
label:setStyle('Label')
label:setId("messageBoxLabel")
label:setText(text)
label:addAnchor(AnchorHorizontalCenter, window:getId(), AnchorHorizontalCenter)
label:addAnchor(AnchorTop, window:getId(), AnchorTop)
2011-08-14 04:09:11 +02:00
label:setMargin(27, 0)
label:resizeToText()
window:addChild(label)
2011-07-17 08:56:57 +02:00
-- set window size based on label size
2011-08-20 22:30:41 +02:00
window:setWidth(label:getWidth() + 60)
window:setHeight(label:getHeight() + 64)
2011-07-17 08:56:57 +02:00
-- setup messagebox first button
2011-08-14 04:09:11 +02:00
local button1 = UIButton.create()
2011-08-20 22:30:41 +02:00
button1:setStyle('Button')
button1:setId("messageBoxButton1")
button1:addAnchor(AnchorBottom, window:getId(), AnchorBottom)
button1:addAnchor(AnchorRight, window:getId(), AnchorRight)
2011-08-14 04:09:11 +02:00
button1:setMargin(10)
2011-08-20 22:30:41 +02:00
button1:setWidth(64)
window:addChild(button1)
2011-07-17 08:56:57 +02:00
if flags == MessageBoxOk then
2011-08-20 22:30:41 +02:00
button1:setText("Ok")
box.onOk = EmptyFunction
2011-07-17 08:56:57 +02:00
button1.onClick = function()
box.onOk()
box:destroy()
end
elseif flags == MessageBoxCancel then
2011-08-20 22:30:41 +02:00
button1:setText("Cancel")
box.onCancel = EmptyFunction
2011-07-17 08:56:57 +02:00
button1.onClick = function()
box.onCancel()
box:destroy()
end
end
box.window = window
return box
2011-05-31 03:55:34 +02:00
end
function MessageBox:destroy()
2011-07-17 08:56:57 +02:00
if self.onDestroy then
self.onDestroy()
self.onDestroy = nil
end
if self.window then
self.window:destroy()
self.window = nil
end
self.onOk = nil
self.onCancel = nil
end
-- shortcuts for creating message boxes
function displayMessageBox(title, text, flags)
return MessageBox.create(title, text, flags)
end
function displayErrorBox(title, text)
return MessageBox.create(title, text, MessageBoxOk)
end
function displayInfoBox(title, text)
return MessageBox.create(title, text, MessageBoxOk)
2011-05-03 00:48:41 +02:00
end
2011-07-17 08:56:57 +02:00
function displayCancelBox(title, text)
return MessageBox.create(title, text, MessageBoxCancel)
2011-05-01 20:47:35 +02:00
end
2011-07-17 08:56:57 +02:00