118 lines
No EOL
4.1 KiB
Text
118 lines
No EOL
4.1 KiB
Text
--------------------------------------------------------------------------------
|
|
-- Created: 13.05.2009 ---------------------------------------------------------
|
|
-- Description: local network login page ---------------------------------------
|
|
-- Author: Alexander Maniluk ---------------------------------------------------
|
|
-- Mail: loopzilla@gsc-game.kiev.ua --------------------------------------------
|
|
-- (c)GSC Game World 2009 ------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
class "localnet_page" (CUIScriptWnd)
|
|
function localnet_page:__init() super()
|
|
self:InitControls()
|
|
self:InitCallbacks()
|
|
end
|
|
|
|
function localnet_page:InitControls()
|
|
local xml = CScriptXmlInit()
|
|
xml:ParseFile("ui_mm_mp_localnet.xml")
|
|
|
|
self:SetWndRect(Frect():set(0,0,1024,768))
|
|
self:Enable(true)
|
|
xml:InitStatic("background", self)
|
|
|
|
local button = nil
|
|
|
|
button = xml:Init3tButton("button_login", self)
|
|
self:Register(button, "btn_login")
|
|
self.btn_login = button
|
|
|
|
button = xml:Init3tButton("button_cancel", self)
|
|
self:Register(button, "btn_cancel")
|
|
self.btn_cancel = button
|
|
--------------------------------------------------------------------------------
|
|
self.login_page = CUIWindow()
|
|
xml:InitWindow("login_page", 0, self.login_page)
|
|
self.login_page:SetAutoDelete(true)
|
|
self:AttachChild(self.login_page)
|
|
|
|
xml:InitWindow("login_page", 0, self.login_page)
|
|
self.lp_header_login = xml:InitTextWnd("login_page:cap_header_login", self.login_page)
|
|
|
|
xml:InitTextWnd("login_page:cap_nickname", self.login_page)
|
|
self.lp_nickname = xml:InitEditBox("login_page:edit_nickname", self.login_page)
|
|
self:Register(self.lp_nickname, "lp_edit_nickname")
|
|
|
|
self.gs_login_message_box = CUIMessageBoxEx()
|
|
self:Register(self.gs_login_message_box, "gs_message_box")
|
|
|
|
button = xml:InitCheck("login_page:check_remember_me", self.login_page)
|
|
self:Register(button, "lp_check_remember_me")
|
|
self.lp_check_remember_me = button
|
|
self.lp_nickname:CaptureFocus(true)
|
|
end
|
|
|
|
function localnet_page:InitCallbacks()
|
|
self:AddCallback("btn_login", ui_events.BUTTON_CLICKED, self.OnBtnLogin, self)
|
|
self:AddCallback("btn_cancel", ui_events.BUTTON_CLICKED, self.OnBtnCancel, self)
|
|
self:AddCallback("lp_check_remember_me", ui_events.BUTTON_CLICKED, self.OnBtnRememberMe, self)
|
|
|
|
self:AddCallback("lp_edit_nickname", ui_events.EDIT_TEXT_COMMIT, self.OnEditLPNicknameChanged, self)
|
|
self:AddCallback("gs_message_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMsgOk, self)
|
|
end
|
|
|
|
function localnet_page:OnBtnLogin()
|
|
self.owner.l_mgr:login_offline(self.lp_nickname:GetText(), login_operation_cb(self, self.LoginOperationResult))
|
|
end
|
|
|
|
function localnet_page:LoginOperationResult(profile, descr)
|
|
if(profile==nil) then
|
|
self.gs_login_message_box:InitMessageBox("message_box_gs_result")
|
|
self.gs_login_message_box:SetText(descr)
|
|
self.gs_login_message_box:ShowDialog(true)
|
|
else
|
|
self.owner.gs_profile = profile
|
|
|
|
self.owner.shniaga:SetPage(CUIMMShniaga.epi_main, "ui_mm_main.xml", "menu_main_logout")
|
|
self.owner.shniaga:ShowPage(CUIMMShniaga.epi_main)
|
|
|
|
if(self.lp_check_remember_me:GetCheck()) then
|
|
self.owner.l_mgr:save_nick_to_registry(profile:unique_nick())
|
|
end
|
|
self:HideDialog()
|
|
self.owner:ShowDialog(true)
|
|
self.owner:Show(true)
|
|
self.owner:OnButton_multiplayer_clicked()
|
|
end
|
|
end
|
|
|
|
function localnet_page:OnMsgOk()
|
|
end
|
|
|
|
function localnet_page:OnBtnCancel()
|
|
self:HideDialog()
|
|
self.owner:ShowDialog(true)
|
|
self.owner:Show(true)
|
|
end
|
|
|
|
function localnet_page:OnBtnRememberMe()
|
|
self.owner.l_mgr:save_remember_me_to_registry(self.lp_check_remember_me:GetCheck())
|
|
end
|
|
|
|
function localnet_page:OnEditLPNicknameChanged()
|
|
self:OnBtnLogin()
|
|
end
|
|
|
|
function localnet_page:OnKeyboard(dik, keyboard_action)
|
|
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
|
|
|
|
local bind = dik_to_bind(dik)
|
|
local console = get_console()
|
|
|
|
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
|
|
if dik == DIK_keys.DIK_ESCAPE then
|
|
self:OnBtnCancel()
|
|
end
|
|
end
|
|
|
|
return true
|
|
end |