protocol via script

This commit is contained in:
Eduardo Bart
2011-05-30 22:55:34 -03:00
parent e239b0d611
commit 9b2d71f6d8
13 changed files with 132 additions and 16 deletions

View File

@@ -43,6 +43,7 @@ window#enterGameWindow
anchors.bottom: parent.bottom
margin.bottom: 10
margin.right: 66
onClick: enterGame_onOkClicked()
button#cancelButton
text: Cancel

View File

@@ -12,6 +12,43 @@ function onApplicationClose()
App.exit()
end
function enterGame_onOkClicked()
local enterGameWindow = UI.getRootContainer():child("enterGameWindow")
enterGameWindow.visible = false
local loadMessageBox = messageBox("Please wait", "Connecting..")
loadMessageBox.onDestroy = function()
--TODO: cancel protocol
enterGameWindow.visible = true
protocolLogin = nil
end
protocolLogin = ProtocolLogin.new()
protocolLogin.onError = function(error)
loadMessageBox.onDestroy = nil
loadMessageBox:destroy()
local msgBox = messageBox("Login Error", error)
msgBox.onDestroy = function()
enterGameWindow.visible = true
end
protocolLogin = nil
end
protocolLogin.onMotd = function(motd)
loadMessageBox.onDestroy = nil
loadMessageBox:destroy()
local msgBox = messageBox("Message of the day", motd)
msgBox.onDestroy = function()
enterGameWindow.visible = true
end
protocolLogin = nil
end
local account = enterGameWindow:child("accountNameTextEdit").text
local password = enterGameWindow:child("passwordTextEdit").text
protocolLogin:login(account, password)
end
-- here is where everything starts
if not initialStateLoaded then
onEnterMenuState()

View File

@@ -1,11 +1,34 @@
function autoDestroyParent()
self.parent:destroy()
MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.create(title, text)
local msgBox = {}
setmetatable(msgBox, MessageBox)
local window = UI.load("messagebox.yml")
window.locked = true
window.title = title
window:child("textLabel").text = text
window:child("okButton").onClick = function()
self.parent:destroy()
end
window.onDestroy = function()
if msgBox.onDestroy then
msgBox.onDestroy()
end
end
msgBox.window = window
return msgBox
end
function MessageBox:destroy()
if self.window then
self.window:destroy()
self.window = nil
end
end
function messageBox(title, text)
local msgBox = UI.load("messagebox.yml")
msgBox.locked = true
msgBox.title = title
msgBox:child("textLabel").text = text
msgBox:child("okButton").onClick = autoDestroyParent
return MessageBox.create(title, text)
end