Files
Sun1602/Client/GameClient/Interface/uiBattlezone2Password/uiBattlezone2Password.cpp
T
2022-10-26 12:25:11 +08:00

265 lines
7.7 KiB
C++

#include "SunClientPrecompiledHeader.h"
#ifdef _DH_BATTLEZONE2_
#include "uiBattlezone2Password/uiBattlezone2Password.h"
#include "Mouse.h"
#include "uiBattlezone2Man/uiBattlezone2Man.h"
#include "uiBattlezone2List/uiBattlezone2List.h"
#include "interfacemanager.h"
#include "globalfunc.h"
#include "Hero.h"
#include "uiSystemMan/uiSystemMan.h"
#include "uiPartyMan/uiPartyMan.h"
//------------------------------------------------------------------------------
void uiBattlezone2Password::RegisterControl()
{
RegisterControlPosition(StrToWzID("E000"), DLGPOS_EDT_PASSWORD);
RegisterControlPosition(StrToWzID("TI00"), DLGPOS_BTN_OK);
RegisterControlPosition(StrToWzID("TI01"), DLGPOS_BTN_CANCEL);
}
uiBattlezone2Password::uiBattlezone2Password(InterfaceManager *pUIMan) :
uiBase(pUIMan)
{
}
//------------------------------------------------------------------------------
/**
*/
uiBattlezone2Password::~uiBattlezone2Password()
{
this->Release();
}
//------------------------------------------------------------------------------
/**
*/
void uiBattlezone2Password::Init(CDrawBase* pDrawBase)
{
uiBase::Init(pDrawBase);
RegisterControl();
set_party_info_ = NULL;
}
uiBattlezone2Man* uiBattlezone2Password::GetManager()
{
if (ui_battlezone2_manager_ == NULL)
{
ui_battlezone2_manager_ = static_cast<uiBattlezone2Man*>(this->GetUIMan()->GetUserInterfaceManager(UIMAN_BATTLE_ZONE_MANAGER));
assert (ui_battlezone2_manager_);
}
return ui_battlezone2_manager_;
}
//------------------------------------------------------------------------------
/**
*/
void uiBattlezone2Password::Release()
{
set_party_info_ = NULL;
}
//------------------------------------------------------------------------------
/**
*/
void
uiBattlezone2Password::OnShowWindow( BOOL val )
{
/*if (val)
{
this->m_strPassword.clear();
//MoveWindowWZ( 0.0f, 0.0f );
CCtrlDxIMEEditBox * pE;
pE = (CCtrlDxIMEEditBox *)getControl( DLGPOS_EDT_PASSWORD );
if (pE)
{
GlobalFunc::SetFocus( (SolarDialog *)this, pE );
pE->SetFontID(StrToWzID("mn12"));
pE->SetColorCaret(RGBA(255,100,100,255));
pE->SetColorText(RGBA(255,255,255,255));
pE->SetLimitText(MAX_ROOMPASSWORD_LENGTH-1);
pE->ClearText();
}
this->OffLock();
this->OffPending();
GetManager()->SetWait(true);
}
else
{
GetManager()->SetWait(false);
}*/
}
//------------------------------------------------------------------------------
/**
*/
void
uiBattlezone2Password::MessageProc( SI_MESSAGE * pMessage )
{
TCHAR szMessage[INTERFACE_STRING_LENGTH];
TCHAR temp_string[INTERFACE_STRING_LENGTH];
switch (pMessage->eResultMsg)
{
case RT_MSG_EDIT_ENTERKEYDOWN:
{
switch (GetControlPosition_byID(pMessage->dwCtrlID))
{
case DLGPOS_EDT_PASSWORD:
{
TCHAR pszRoomPW[MAX_ROOMPASSWORD_LENGTH+1];
CCtrlDxIMEEditBox * pE;
//
// 배틀존 비밀번호
//
pE = (CCtrlDxIMEEditBox *)GetControlWZ_byPosition(DLGPOS_EDT_PASSWORD);
pE->GetTextWZ( pszRoomPW, MAX_ROOMPASSWORD_LENGTH+1);
int len = _tcslen( pszRoomPW );
if( len == 0 )
{
// 비밀번호를 입력 하십시오.
g_InterfaceManager.GetInterfaceString( eST_INPUT_PASSWORD, szMessage, INTERFACE_STRING_LENGTH );
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
GlobalFunc::SetFocus( (SolarDialog *)this, pE );
}
else
{
this->m_strPassword = pszRoomPW;
this->ShowInterface(FALSE);
}
}
break;
}
}
break;
case RT_MSG_LBUTTONCLICK:
{
bool clickedInDlg = false;
DWORD pos = GetControlPosition_byID(pMessage->dwCtrlID);
if (pos >= DLGPOS_EDT_PASSWORD && pos <= DLGPOS_BTN_CANCEL)
{
clickedInDlg = true;
switch (pos)
{
case DLGPOS_BTN_OK:
{
TCHAR pszRoomPW[MAX_ROOMPASSWORD_LENGTH+1];
CCtrlDxIMEEditBox * pE;
//
// 배틀존 비밀번호
//
pE = (CCtrlDxIMEEditBox *)GetControlWZ_byPosition(DLGPOS_EDT_PASSWORD);
pE->GetTextWZ( pszRoomPW, MAX_ROOMPASSWORD_LENGTH+1);
int len = _tcslen( pszRoomPW );
if( len == 0 )
{
TCHAR buffer_string[INTERFACE_STRING_LENGTH] = {0,};
// 비밀번호를 입력 하십시오.
if (g_pHero->IsParty())
{
g_InterfaceManager.GetInterfaceString(eST_INPUT_PASSWORD, temp_string, INTERFACE_STRING_LENGTH);
// 방 입장시 현재 파티가 탈퇴 됩니다. 계속 하시겠습니까? 2475
g_InterfaceManager.GetInterfaceString(2475, buffer_string, INTERFACE_STRING_LENGTH);
Sprintf(szMessage, temp_string, buffer_string);
}
else
{
g_InterfaceManager.GetInterfaceString(eST_INPUT_PASSWORD, szMessage, INTERFACE_STRING_LENGTH);
}
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
GlobalFunc::SetFocus( (SolarDialog *)this, pE );
}
else
{
this->m_strPassword = pszRoomPW;
uiBattlezone2List* battlezone_list_dialog =
GET_CAST_DIALOG(uiBattlezone2List, IM_BATTLEZONE2_MANAGER::BATTLEZONE2_LIST);
if (battlezone_list_dialog)
{
battlezone_list_dialog->EnterRoom(save_party_key_, m_strPassword.c_str(), set_party_info_);
}
this->ShowInterface(FALSE);
}
}
break;
case DLGPOS_BTN_CANCEL:
{
this->ShowInterface(FALSE);
}
break;
}
}
else
{
int iMouseX = Mouse::Instance()->GetMouseX();
int iMouseY = Mouse::Instance()->GetMouseY();
RECT rc;
this->GetDialogWZ()->GetDlgSize(&rc);;
if (rc.left <= iMouseX
&& rc.right >= iMouseX)
{
if (rc.top <= iMouseY
&& rc.bottom >= iMouseY)
{
clickedInDlg = true;
}
}
}
}
break;
default:
{
SolarDialog::MessageProc( pMessage );
}
break;
}
}
//------------------------------------------------------------------------------
/**
*/
void
uiBattlezone2Password::OnUpdateSolarDialog()
{
//if (GetManager()->IsWait())
{
if(!this->HaveFocus())
ShowInterface(FALSE);
}
}
void uiBattlezone2Password::Process(DWORD tick_count)
{
}
void uiBattlezone2Password::MouseOver_MsgProc(SI_MESSAGE* message)
{
}
#endif//_DH_BATTLEZONE2_
//------------------------------------------------------------------------------
// EOF
//------------------------------------------------------------------------------