//------------------------------------------------------------------------------ // uiItemDiv.cpp // (C) 2006 ckbang //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "MouseHandler.h" #include "uiItemDiv.h" #include "uiItemDivMan/uiItemDivMan.h" #include "InventoryDialog.h" #include "globalfunc.h" #include "interfacemanager.h" //------------------------------------------------------------------------------ WzID uiItemDiv::m_wzId[DIALOG_MAX] = { #ifdef _NA004034_20120102_POINT_WALLET_SYSTEM StrToWzID("TI00"), // DLGPOS_BTN_OK StrToWzID("TI01"), // DLGPOS_BTN_CANCEL StrToWzID("B005"), // DLGPOS_BTN_L_DEC StrToWzID("B001"), // DLGPOS_BTN_R_INC StrToWzID("E000"), // DLGPOS_EDT_NUM StrToWzID("B004"), // DLGPOS_BTN_CLOSE #else StrToWzID("TI00"), // DLGPOS_BTN_OK StrToWzID("TI01"), // DLGPOS_BTN_CANCEL StrToWzID("B001"), // DLGPOS_BTN_L_DEC StrToWzID("B002"), // DLGPOS_BTN_R_INC StrToWzID("E000"), // DLGPOS_EDT_NUM #endif //_NA004034_20120102_POINT_WALLET_SYSTEM }; //------------------------------------------------------------------------------ /** */ uiItemDiv::uiItemDiv(InterfaceManager *pUIMan) : uiBase(pUIMan) { } //------------------------------------------------------------------------------ /** */ uiItemDiv::~uiItemDiv() { this->Release(); } //------------------------------------------------------------------------------ /** */ void uiItemDiv::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); InitControls(); } //------------------------------------------------------------------------------ /** */ void uiItemDiv::InitControls() { m_pEdtControl = static_cast(this->getControl(DLGPOS_EDT_NUM)); assert (m_pEdtControl); m_pBtnControls[0] = static_cast(this->getControl(DLGPOS_BTN_L_DEC)); assert (m_pBtnControls[0]); m_pBtnControls[1] = static_cast(this->getControl(DLGPOS_BTN_R_INC)); assert (m_pBtnControls[1]); m_pBtnOk = static_cast(this->getControl(DLGPOS_BTN_OK)); assert (m_pBtnOk); m_pBtnCancel = static_cast(this->getControl(DLGPOS_BTN_CANCEL)); assert (m_pBtnCancel); this->m_bInitControls = true; } //------------------------------------------------------------------------------ /** */ void uiItemDiv::Release() { } //------------------------------------------------------------------------------ /** called to show request */ void uiItemDiv::OnShowWindow( BOOL val ) { if (val) { if (!this->CheckControls()) return; //UpdatePosition(); //SolarDialog::MoveCenter(); m_pEdtControl->ClearText(); m_pEdtControl->SetFontID(StrToWzID("mn12")); m_pEdtControl->SetFocusWZ(); TCHAR szMessage[INTERFACE_STRING_LENGTH]; Sprintf (szMessage, _T("%d"), m_divNum); GlobalFunc::SetText(m_pEdtControl, szMessage); keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_dialog_item_div; msg.wParam = InterfaceManager::DIALOG_ITEM_DIV; msg.DoSomething = GlobalFunc::DoShowWindow; g_KeyQueueManager.PushBack(msg); this->GetUIMan()->AttachFirstDialog(InterfaceManager::DIALOG_ITEM_DIV); } else { this->GetUIMan()->DeAttachFirstDialog(InterfaceManager::DIALOG_ITEM_DIV); g_KeyQueueManager.DeleteMsg(eDoType_dialog_item_div); } } //------------------------------------------------------------------------------ /** */ bool _checkDigit(const TCHAR *str) { int len = lstrlen(str); int i; for (i=0; i_T('9')) { return false; } } return true; } //------------------------------------------------------------------------------ /** */ void uiItemDiv::MessageProc( SI_MESSAGE * pMessage ) { switch( pMessage->eResultMsg ) { case RT_MSG_EDIT_ENTERKEYDOWN: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { case DLGPOS_EDT_NUM: { OnOkBtnClick(); } break; } } break; case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { case DLGPOS_BTN_OK: { OnOkBtnClick(); } break; #ifdef _NA004034_20120102_POINT_WALLET_SYSTEM case DLGPOS_BTN_CLOSE: #endif //_NA004034_20120102_POINT_WALLET_SYSTEM case DLGPOS_BTN_CANCEL: { ShowInterface(FALSE); } break; case DLGPOS_BTN_L_DEC: { OnLDecBtnClick(); } break; case DLGPOS_BTN_R_INC: { OnRIncBtnClick(); } break; } } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } ////------------------------------------------------------------------------------ ///** //*/ //void //uiItemDiv::UpdatePosition() //{ // MoveWindowWZ(733, 289); //} //------------------------------------------------------------------------------ /** */ void uiItemDiv::OnOkBtnClick() { TCHAR szMessage[INTERFACE_STRING_LENGTH]; TCHAR szTemp[INTERFACE_STRING_LENGTH]; GlobalFunc::GetText(m_pEdtControl, szTemp, INTERFACE_STRING_LENGTH); if (lstrlen(szTemp)==0) { // [¾Ë¸²] ºÐÇÒÇÏ½Ç °³¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä 5127 g_InterfaceManager.GetInterfaceString(eST_INPUT_DIV_NUM, szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { if (_checkDigit(szTemp)) { int aNum = (int)_ttoi64(szTemp); if( aNum < 1 || aNum > m_divNum ) { // À߸øµÈ Á¤º¸ÀÔ´Ï´Ù. 5346 (ÇöÀç ÀÖ´Â ¸Þ½ÃÁö Áß¿¡ ±×³ª¸¶) // °³¼ö¸¦ ´Ù½Ã ÀÔ·ÂÇϼ¼¿ä µîÀÇ ¸Þ½ÃÁö¸¦ »Ñ¸®´Â°Ô ´õ Àû´ç g_InterfaceManager.GetInterfaceString(5346, szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); Sprintf (szTemp, _T("%d"), m_divNum); GlobalFunc::SetText(m_pEdtControl, szTemp); return; } MouseHandler::Instance()->AddItemAtHandWithItemDiv(aNum, m_fromSlotIdx, m_fromPos, m_slotType, m_code, m_pRenderUnit, &m_Rect); } else { // [¾Ë¸²] ºÐÇÒÇÏ½Ç °³¼ö¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä 5128 g_InterfaceManager.GetInterfaceString(eST_INPUT_DIV_ONLY_NUMBER , szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } } } //------------------------------------------------------------------------------ /** */ void uiItemDiv::OnLDecBtnClick() { TCHAR szMessage[INTERFACE_STRING_LENGTH]; TCHAR szTemp[INTERFACE_STRING_LENGTH]; GlobalFunc::GetText(m_pEdtControl, szTemp, INTERFACE_STRING_LENGTH); if (lstrlen(szTemp)==0) { // [¾Ë¸²] ºÐÇÒÇÏ½Ç °³¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä 5127 g_InterfaceManager.GetInterfaceString(eST_INPUT_DIV_NUM, szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { if (_checkDigit(szTemp)) { int aNum = (int)_ttoi64(szTemp); --aNum; if( aNum > m_divNum ) { aNum = m_divNum; } else if( aNum < 1 ) { aNum = 1; } Sprintf (szTemp, _T("%d"), aNum); GlobalFunc::SetText(m_pEdtControl, szTemp); } else { // [¾Ë¸²] ºÐÇÒÇÏ½Ç °³¼ö¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä 5128 g_InterfaceManager.GetInterfaceString(eST_INPUT_DIV_ONLY_NUMBER , szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } } } //------------------------------------------------------------------------------ /** */ void uiItemDiv::OnRIncBtnClick() { TCHAR szMessage[INTERFACE_STRING_LENGTH]; TCHAR szTemp[INTERFACE_STRING_LENGTH]; GlobalFunc::GetText(m_pEdtControl, szTemp, INTERFACE_STRING_LENGTH); if (lstrlen(szTemp)==0) { // [¾Ë¸²] ºÐÇÒÇÏ½Ç °³¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä 5127 g_InterfaceManager.GetInterfaceString(eST_INPUT_DIV_NUM, szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { if (_checkDigit(szTemp)) { int aNum = (int)_ttoi64(szTemp); ++aNum; if( aNum > m_divNum ) { aNum = m_divNum; } else if( aNum < 1 ) { aNum = 1; } Sprintf (szTemp, _T("%d"), aNum); GlobalFunc::SetText(m_pEdtControl, szTemp); } else { // [¾Ë¸²] ºÐÇÒÇÏ½Ç °³¼ö¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä 5128 g_InterfaceManager.GetInterfaceString(eST_INPUT_DIV_ONLY_NUMBER , szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } } } //------------------------------------------------------------------------------ // EOF //------------------------------------------------------------------------------