Files
Leviathan/Client/Game/game/Interface/SUIHuntaHolicConfirmPasswordWnd.cpp
2026-06-01 12:46:52 +02:00

142 lines
3.3 KiB
C++

#include "stdafx.h"
#include <mmo/ArType.h>
#include "SUIDefine.h"
#include "SGameManager.h"
#include "SGameSystem.h"
//#include "SGameMessageUI.h"
#include "SNetMessage.h"
#include "SGameMessage.h"
#include "ErrorCode/ErrorCode.h"
#include "KUIWndManager.h"
#include "KUIControlStatic.h"
#include "KUIControlButton.h"
#include "SStringDB.h"
#include "SHuntaHolicResourceDB.h"
#include "TemplateUtil.h"
#include "SHuntaHolicSystem.h"
#include "SGameSystem.h"
#include "SUIHuntaHolicConfirmPasswordWnd.h"
#include "SDebug_Util.h"
extern SGameSystem* g_pCurrentGameSystem;
#define HUNTAHOLICSYSTEM g_pCurrentGameSystem->GetContentsMgr().acquire< SHuntaHolicSystem >( "huntaholic" )
namespace hhi = huntaholic_interface;
namespace {
const char* ctrl_password = "room_secret_number_box";
const char* ctrl_confirm = "button_ok"; // servantes 2010.10.13
const char* ctrl_cancel = "button_cancel";
}
SUIHuntaHolicConfirmPasswordWnd::SUIHuntaHolicConfirmPasswordWnd( SGameManager* pGameManager )
: SUIWnd( pGameManager )
, mCallBack( 0 )
, mPW( 0 )
{
}
SUIHuntaHolicConfirmPasswordWnd::~SUIHuntaHolicConfirmPasswordWnd()
{
}
void SUIHuntaHolicConfirmPasswordWnd::Process( DWORD time )
{
SUIWnd::Process( time );
}
bool SUIHuntaHolicConfirmPasswordWnd::InitControls( KPoint pos )
{
mPW = dynamicCast<KUIControlEdit*>(GetChild( ctrl_password ));
if( mPW )
{
mPW->SetOnlyNumber( false );
mPW->SetLimitation( GameRule::HUNTAHOLIC_MAX_INSTANCE_PASSWORD_LENGTH );
mPW->SetPassword( true );
}
return SUIWnd::InitControls( pos );
}
bool SUIHuntaHolicConfirmPasswordWnd::InitData( bool reload )
{
return SUIWnd::InitData( reload );
}
void* SUIHuntaHolicConfirmPasswordWnd::Perform( KID id, KArg& msg )
{
if( id == hhi::id_setCallBack )
{
hhi::setCallBack* real = static_cast< hhi::setCallBack* >( &msg );
mCallBack = real->callback;
}
return SUIWnd::Perform( id, msg );
}
void SUIHuntaHolicConfirmPasswordWnd::PumpUpMessage( LPCTSTR controlID, DWORD msg, DWORD lparam, DWORD wparam )
{
switch( msg )
{
case KUI_MESSAGE::KBUTTON_CLICK:
{
if( !::stricmp( controlID, ctrl_cancel ) || !::stricmp( controlID, "idcancel" ) )
{
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_HUNTAHOLIC_CONFIRM_PASSWORD, false, true ) );
}
else if( !::stricmp( controlID, ctrl_confirm ) || !::stricmp( controlID, "idok" ) )
{
if( mCallBack )
{
std::string password;
if( mPW ) password = mPW->GetText();
if( password.empty() )
return;
mCallBack->Perform( hhi::id_onConfirmPassword, hhi::onConfirmPassword( password.c_str() ) );
}
m_pGameManager->PostMsgAtDynamic( new SIMSG_SHOW_UIWINDOW( SIMSG_TOGGLE_UIWINDOW::UIWINDOW_HUNTAHOLIC_CONFIRM_PASSWORD, false, true ) );
}
}
break;
}
SUIWnd::PumpUpMessage( controlID, msg, lparam, wparam );
}
void SUIHuntaHolicConfirmPasswordWnd::ProcMsgAtStatic( SGameMessage* msg )
{
}
void SUIHuntaHolicConfirmPasswordWnd::OnNotifyUIWindowOpen( bool open, bool limitWnd )
{
if( open )
{
SetFocus( true );
}
else
{
SetFocus( false );
}
}
DWORD SUIHuntaHolicConfirmPasswordWnd::OnMouseMessage( DWORD msg, int x, int y )
{
DWORD ret = SUIWnd::OnMouseMessage( msg, x, y );
if( KMR_NO_GET & ret )
return ret;
// do something ...
return ret;
}
void SUIHuntaHolicConfirmPasswordWnd::OnFocusNotify()
{
}