#include "stdafx.h" #include #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(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() { }