#include "SunClientPrecompiledHeader.h" //------------------------------------------------------------------------------ #ifndef _NA_0_20110613_GAME_SHOP_RENEWAL //#if'N'def //------------------------------------------------------------------------------ #include "uiCashItemShopNpcPopup.h" #include "uiCashItemShopMan/uiCashItemShopMan.h" #include "uiSystemMan/uiSystemMan.h" #include "Hero.h" #include "GlobalFunc.h" #include "interfacemanager.h" #include "GameFramework.h" //------------------------------------------------------------------------------ WzID uiCashItemShopNpcPopup::m_wzId[eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_MAX] = { StrToWzID("B999"), //eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_BTN_EXIT, // X ¹öư StrToWzID("B001"), //eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_BTN_SHOP, // À¯·á»óÁ¡ StrToWzID("B002"), //eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_BTN_GIFT, // ¼±¹° StrToWzID("L000"), //eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_LST_STRING, // NPC ¸Þ½ÃÁö }; //------------------------------------------------------------------------------ /** */ uiCashItemShopNpcPopup::uiCashItemShopNpcPopup(InterfaceManager *pUIMan) : uiBase(pUIMan), m_bControlsInitialized(false) { this->m_pCashItemShopMan = static_cast(this->GetUIMan()->GetUserInterfaceManager(UIMAN_CASH_ITEM_SHOP)); assert (m_pCashItemShopMan); if (!this->m_pCashItemShopMan) { #ifdef _DEBUG uiSystemMan * pSystemMan = (uiSystemMan *)g_InterfaceManager.GetUserInterfaceManager(UIMAN_SYSTEM); if(pSystemMan) pSystemMan->Sys_VerifyLock(_T("m_pCashItemShopManÀÌ ¾ø½À´Ï´Ù.")); #endif this->ShowInterface(FALSE); return; } this->m_pListCtrl = NULL; m_bShow = false; } //------------------------------------------------------------------------------ /** */ uiCashItemShopNpcPopup::~uiCashItemShopNpcPopup() { this->Release(); } //------------------------------------------------------------------------------ /** */ void uiCashItemShopNpcPopup::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); this->InitControls(); } //------------------------------------------------------------------------------ /** */ void uiCashItemShopNpcPopup::Release() { } //------------------------------------------------------------------------------ /** */ void uiCashItemShopNpcPopup::InitControls() { CCtrlButtonWZ* pBtn = static_cast(this->getControl(eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_BTN_GIFT)); assert(pBtn); if(pBtn) pBtn->ShowWindowWZ(WZ_HIDE); // ¼±¹°Çϱâ´Â ¾ÆÁ÷ ±â´ÉÀÌ ¾ø´Ù this->m_pListCtrl = static_cast(this->getControl(eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_LST_STRING)); assert(this->m_pListCtrl); _setNpcMsg(); this->m_bControlsInitialized = true; } //------------------------------------------------------------------------------ void uiCashItemShopNpcPopup::_setNpcMsg() { if(this->m_pListCtrl) { std::vector vstrNpcMsg; vstrNpcMsg.clear(); TCHAR szNpcMsg[INTERFACE_STRING_LENGTH] = {0,}; g_InterfaceManager.GetInterfaceString(201071, szNpcMsg, INTERFACE_STRING_LENGTH); if(!_tcslen(szNpcMsg)) return; RECT rc = m_pListCtrl->GetSizeRect(); #ifdef __LTJ_TEXT_OUTPUT_AT_LIST_MOD int iListWidth = rc.right - rc.left - 20; #else int iListWidth = rc.right - rc.left - 10; #endif GlobalFunc::ProcessWordWrapByFontSize( &vstrNpcMsg, szNpcMsg, c_wiCashItemShopFont, _tcslen(szNpcMsg), iListWidth ); m_pListCtrl->DeleteItemAll(); m_pListCtrl->SetColorSelBar(c_CashItemShopListSelBarColor); m_pListCtrl->SetUseReport(false); int iListIndex = -1; for (size_t i=0; iInsertItemBack(); TCHAR *pStr = const_cast(vstrNpcMsg[i].c_str()); GlobalFunc::SetItem( m_pListCtrl, iListIndex, 0, pStr, c_wiCashItemShopFont, DT_VCENTER | DT_LEFT, c_CashItemShopListBKColor, c_CashItemShopListTextColor, c_CashItemShopListSelTextColor); } } } //------------------------------------------------------------------------------ void uiCashItemShopNpcPopup::OnShowWindow( BOOL val ) { if (val) { this->MoveDefaultWindowPos(); if (!this->m_bControlsInitialized) { this->ShowInterface(FALSE); return; } keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_dialog_cash_item_shop_npc_popup; msg.wParam = InterfaceManager::DIALOG_CASH_ITEM_SHOP_NPC_POPUP; msg.DoSomething = GlobalFunc::DoShowWindow; g_KeyQueueManager.PushBack(msg); m_bShow = true; GetManager()->ShowCashItemShopDlg(false); GetManager()->ShowCashItemShopBuyCart(false); } else { g_KeyQueueManager.DeleteMsg(eDoType_dialog_cash_item_shop_npc_popup); } } //------------------------------------------------------------------------------ /** */ BOOL uiCashItemShopNpcPopup::_isEnable() { if(GENERALPARAM->IsNet()) { if (this->IsLock()) return FALSE; if(!g_pHero) return FALSE; if(g_pHero && g_pHero->IsShowFullMap()) return FALSE; if(!GetManager()) return FALSE; return TRUE; } else { return TRUE; } } //------------------------------------------------------------------------------ /** */ void uiCashItemShopNpcPopup::MessageProc( SI_MESSAGE * pMessage ) { if (!_isEnable()) return; //TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; switch( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { case eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_BTN_EXIT: { m_bShow = false; } break; case eDIALOG_CASH_ITEM_SHOP_NPC_POPUP_BTN_SHOP: { m_bShow = false; // À¯·á»óÁ¡Ã¢ Show this->GetManager()->ShowCashItemShopDlg(TRUE); } break; } } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } //------------------------------------------------------------------------------ /** */ void uiCashItemShopNpcPopup::OnUpdateSolarDialog() { if(!m_bShow) this->ShowInterface(FALSE); if (!_isEnable()) return; } //------------------------------------------------------------------------------ #endif //#ifndef _NA_0_20110613_GAME_SHOP_RENEWAL //#if'N'def //------------------------------------------------------------------------------