-------------------------------------------------------------------------------- -- 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