#include "SunClientPrecompiledHeader.h" #include "InterfaceManager.h" #include "uiEventMan/uiEventMan.h" #include "ui_XMas_DonationConfirm/ui_XMas_DonationConfirm.h" #include "ui_XMas_Confirm/ui_XMas_Confirm.h" #include "Mouse.h" #include "GlobalFunc.h" #include "Hero.h" #include "FTextRender.h" #include "FTextSentence.h" const int c_Str_Interval = 13; const BYTE c_btMaxEditNum = 19; ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// WzID ui_XMas_DonationConfirm::m_wzID[eDIALOG_XMAS_DONATION_CONFIRM_MAX] = { StrToWzID("LS00"), //eDIALOG_XMAS_DONATION_CONFIRM_TEXT_LIST, StrToWzID("ED00"), //eDIALOG_XMAS_DONATION_CONFIRM_EDIT, StrToWzID("BT00"), //eDIALOG_XMAS_DONATION_CONFIRM_OK_BTN, StrToWzID("B002"), //eDIALOG_XMAS_DONATION_CONFIRM_CANCEL_BTN, StrToWzID("B001"), //eDIALOG_XMAS_DONATION_CONFIRM_EXIT_BTN, }; ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ui_XMas_DonationConfirm::ui_XMas_DonationConfirm(InterfaceManager * pUIMan) : uiBase(pUIMan) { m_bShow = FALSE; } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ui_XMas_DonationConfirm::~ui_XMas_DonationConfirm() { } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); m_bShow = FALSE; InitControl(); RECT rtMain = m_ctrlMainList->GetSizeRect(); m_FtextRender.Init(g_pSunRenderer , rtMain); m_bTextLoad = TRUE; } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::Release() { } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::OnUpdateSolarDialog() { if( ! m_bShow ) { ShowDialog(FALSE); } TCHAR szTemp[INTERFACE_STRING_LENGTH + 1] = {0,}; m_ctrlMoneyEdit->GetTextWZ(m_szMoneyOld, INTERFACE_STRING_LENGTH); int iLen = strlen(m_szMoneyOld); int j = 0; for(int i = 0; i < iLen; ++i, ++j) { if(',' != m_szMoneyOld[j]) { szTemp[i] = m_szMoneyOld[j]; } else { ++j; szTemp[i] = m_szMoneyOld[j]; } } if(isdigit(szTemp[0])) { if(c_btMaxEditNum > strlen(szTemp)) //¿¡µðÆ® ÄÁÆ®·Ñ ¹üÀ§ ³ÑÁö ¾Ê°Ô { NUMBERFMT nFmt = { 0, 0, 3, _T("."), _T(","), 1 }; ::GetNumberFormat( LOCALE_SYSTEM_DEFAULT, NULL, szTemp, &nFmt, m_szMoneyNew, sizeof(m_szMoneyNew)); m_ctrlMoneyEdit->SetTextWZ(m_szMoneyNew); } else { m_ctrlMoneyEdit->SetTextWZ(""); } } else { m_ctrlMoneyEdit->SetTextWZ(""); } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::OnRenderSolarDialog() { if(g_pHero) { if(m_bTextLoad) { AddFormatText(); m_bTextLoad = FALSE; } RECT rt = m_ctrlMainList->GetSizeRect(); rt.right -= 20; m_FtextRender.SetRect(rt); m_FtextRender.Render(); } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::Process(DWORD dwTick) { } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::OnShowWindow(BOOL val) { if( val ) { MoveCenter(); if(m_ctrlMoneyEdit) m_ctrlMoneyEdit->ClearText(); m_bShow = TRUE; m_bTextLoad = TRUE; keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType=eDotype_Event_X_Mas_Donation_confirm; msg.wParam=InterfaceManager::DIALOG_EVENT_X_MAS_DONATION_CONFIRM; msg.DoSomething=GlobalFunc::DoShowWindow; g_KeyQueueManager.PushBack(msg); } else { g_KeyQueueManager.DeleteMsg(eDotype_Event_X_Mas_Donation_confirm); m_bShow = FALSE; m_bTextLoad = FALSE; } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::MessageProc(SI_MESSAGE * pMessage) { switch ( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { switch ( getControlIDToPos( pMessage->dwCtrlID ) ) { case eDIALOG_XMAS_DONATION_CONFIRM_OK_BTN: { ui_XMas_Confirm * pXMasConfirm = GET_CAST_DIALOG( ui_XMas_Confirm, IM_EVENT_MANAGER::EVENT_X_MAS_CONFIRM ); if(pXMasConfirm) { TCHAR szTemp[INTERFACE_STRING_LENGTH + 1] = {0,}; TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,}; m_ctrlMoneyEdit->GetTextWZ(m_szMoneyOld, INTERFACE_STRING_LENGTH); int iLen = strlen(m_szMoneyOld); if(0 == iLen) break; //±Ý¾× ±âÀÔ¶õÀÌ °ø¶õÀÌ¸é ½ºÅµ ó¸® int j = 0; for(int i = 0; i < iLen; ++i, ++j) { if(',' != m_szMoneyOld[j]) { szTemp[i] = m_szMoneyOld[j]; } else { ++j; szTemp[i] = m_szMoneyOld[j]; } } if(checkDigit(szTemp)) { MONEY mTemp = _atoi64(szTemp); if(mTemp > g_pHero->GetMoney()) { //6192 ÇÏÀÓÀÌ ºÎÁ·ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(6192, szMessage); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { pXMasConfirm->SetDonationMoney(m_szMoneyNew); pXMasConfirm->SetDlgType(ui_XMas_Confirm::eXMAS_DLG_TYPE_DONATION); pXMasConfirm->ShowInterface(TRUE); } } else { //5835 ±Ý¾×Àº ¼ýÀڷθ¸ ÀÔ·ÂÇϽʽÿÀ. g_InterfaceManager.GetInterfaceString(5835, szMessage); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } OnShowWindow(FALSE); } } break; case eDIALOG_XMAS_DONATION_CONFIRM_CANCEL_BTN: { m_ctrlMoneyEdit->SetTextWZ(""); } break; case eDIALOG_XMAS_DONATION_CONFIRM_EXIT_BTN: { OnShowWindow(FALSE); } break; } } break; default: { } break; } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::InitControl() { m_ctrlMainList = static_cast(getControl(eDIALOG_XMAS_DONATION_CONFIRM_TEXT_LIST)); assert(m_ctrlMainList); m_ctrlMoneyEdit = static_cast(getControl(eDIALOG_XMAS_DONATION_CONFIRM_EDIT)); assert(m_ctrlMoneyEdit); if(m_ctrlMoneyEdit) { m_ctrlMoneyEdit->SetFontID(StrToWzID("st10")); } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// void ui_XMas_DonationConfirm::AddFormatText() { FTextParser FParser; BOOL ret; RECT rtMain = m_ctrlMainList->GetSizeRect(); rtMain.right -= 20; TCHAR szMainFinal[INTERFACE_STRING_LENGTH + 1] = {0,}; g_InterfaceManager.GetInterfaceString(203104, szMainFinal); //¸ÞÀÎ Desc FParser.SetDefaultFont(StrToWzID("mn12") , WzColor_RGBA(235,224,200,255 )); ret = FParser.Parser(szMainFinal , m_FSentence ); if( ret ) { m_FtextRender.ClearSentence(); m_FtextRender.Append(m_FSentence); m_FtextRender.SetRect(rtMain); } } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// bool ui_XMas_DonationConfirm::checkDigit(const TCHAR *str) { int len = lstrlen(str); int i; for (i=0; i_T('9')) { return false; } } return true; } ////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////