#pragma once //#include "SUIWnd.h" #include "SNetMessage.h" class SUIDisplayInfo; class SUITradeWnd : public SUIWnd { public: SUITradeWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo ) : SUIWnd( pGameManager ) , m_pDisplayInfo( pDisplayInfo ) , m_iCurAd(0) { } virtual bool InitControls( KPoint kPos ); virtual bool InitData( bool bReload = false ); virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam ); virtual void ProcMsgAtStatic( SGameMessage* pMsg ); virtual void* Perform( KID id, KArg& msg ); virtual void Process( DWORD dwTime ); virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true ); // operators private: void CreateItemCount(); void SetFreeze( AR_HANDLE hTarget ); void SetConfirm( AR_HANDLE hTarget ); void SetGold( AR_HANDLE hTarget, count_t nValue ); void SetItem( AR_HANDLE hTarget, TS_ITEM_INFO& rItem, bool bRemove=false ); void ModifyItem( AR_HANDLE hTarget, TS_ITEM_INFO& rItem ); // 2011. 10. 4 - marine 아이템 수량 변경 void SetModfyItem( TS_ITEM_INFO& rItem, bool bSelf = true ); // 2011. 10. 4 - marine // void RefreshScrollBar( bool bSelf = true ); void RefreshSlot( int nPos = 0, bool bSelf = true ); void RefreshSelfSlot( int nPos = 0 ); void RefreshHisSlot( int nPos = 0 ); void SetSelfItem( TS_ITEM_INFO& rItem, int nPos ); void SetHisItem( TS_ITEM_INFO& rItem, int nPos ); void DisableItemSlot( int nPos, bool bSelf = true ); void AddItem( TS_ITEM_INFO& rItem, bool bSelf = true ); void AddItem( std::vector& ItemList, TS_ITEM_INFO& rItem ); void RemoveItem( TS_ITEM_INFO& rItem, bool bSelf = true ); void RemoveItem( std::vector& ItemList, TS_ITEM_INFO& rItem ); void Free(); void InitSlotControls(); void RequestItem( AR_HANDLE hItem, count_t nValue = count_t( 1 ) ); void RequestModifyCountItem( AR_HANDLE hItem, count_t nValue = count_t( 1 ) ); // 2011. 10. 4 - marine count_t GetValidItemCount(AR_HANDLE hitem, count_t nCount); // 2011. 10. 4 - marine 수입력기로 아이템 거래창에 등록시 가지고 있는 수보다 클경우 최대치를 리턴 bool IsRegisterTradeWnd(AR_HANDLE hitem); // 2011. 10 .5 - marine 거래창에 등록된 아이템인지 확인 void RequestRemoveItem( AR_HANDLE hItem, count_t nValue = count_t( 0 ) ); /// 2011.05.13 self 추가 - prodongi int GetCtrIndex( const char* pCtrName, bool& self ); /// 2011.01.20 - prodongi bool rejectIfTaming() const; bool cancelIfTaming(AR_HANDLE targetHandle, char const* targetName) const; std::string CutTagCaption(std::string str, char* tag); // 2012. 1. 2 - marine 캡션의 태그를 삭제해주는 함수.. // attribute private: enum TRADE_STATE{ STATE_NONE, STATE_INPUTMONEY, STATE_SENDITEM, STATE_TRADECONFIRM, STATE_MOVEITEM, //servantes 2010.10.19 }; std::vector m_vecSelfItemList; std::vector m_vecHisItemList; SUIDisplayInfo* m_pDisplayInfo; TRADE_STATE m_InputState; AR_HANDLE m_hSelItem; bool m_bHisFreezed; bool m_bSelfFreezed; bool m_bConfirmWait; bool m_bHisConfirm; bool m_bSelfConfirm; DWORD m_dwTime; KUIControlStatic* m_pEdit_Advertise; // 2011. 9. 5 - marine 거래 주의사항 광고 컨트롤 int m_iCurAd; // 2011. 9. 5 - marine void SetCaptionAd(const char* pAdString); // 2011. 9. 5 - marine const char* GetCurAd(); // 2011. 9. 5 - marine 현재 어떤 광고가 나오는지.. };