/* ========================================================================== * ÆÄ ÀÏ : UserSellWindow.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2007-08-29 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "UIWindow.h" #include "ItemIcon.h" #include "ItemManager.h" class cEditBox; class cItemIcon; class cButton; class cPlaneObject; enum { eLOCK_NONE = 0, eLOCK_REGIST, eLOCK_RENAME, eLOCK_ITEMUPDATE, eLOCK_END, eLOCK_JOINEND, eLOCK_ADD, eLOCK_DELETE, eLOCK_GET, }; struct sUserSellData { cItemIcon* mIcon; cStringT mPriceStr; cStringT mItemName; unsigned long mColor; unsigned long mPrice; unsigned char mStatus; /// ¾ÆÀÌÅÛÀÇ »óÅ union { sInventory mThatInven; /// »ó´ë¹æÀÇ Àκ¥ unsigned short mSlotIndex; /// ÀÚ½ÅÀÇ Àκ¥ ½½·Ô ¹øÈ£ }; sUserSellData() { mIcon = 0; mStatus = StallSellItemNone; mSlotIndex = USHRT_MAX; mColor = COLOR_WHITE; } }; enum { eUSERSELL_NONE = 0, eUSERSELL_SELL, /// ÆÇ¸ÅÀÚ »óÅ eUSERSELL_JOIN, /// ±¸ÀÔÀÚ »óÅ }; /// ÆÇ¸Å»óÁ¡ class cUserSellWindow : public cUIWindow { public: cUserSellWindow(); virtual ~cUserSellWindow(); virtual void Open(); virtual void Close(); void Clear(); void SetStatus( unsigned char status ); /// »óÅ ¼¼ÆÃ bool AddSellItem( unsigned short slot, unsigned long money ); /// ÆÇ¸Å »óÅ - ¾ÆÀÌÅÛ bool DelSellItem( unsigned int invenSlot, bool onSound = false ); void ModSellItem( unsigned short slot, unsigned int count, bool onSound = false ); bool AddJoinItem( sStallSellData* sell ); /// ±¸¸Å »óÅ - ¾ÆÀÌÅÛ bool DelJoinItem( sInventory* inv ); void PauseJoinItem( sInventory* inv ); /// ÇØ´ç ¾ÆÀÌÅÛ ¼öÁ¤Áß sUserSellData* GetSelectSellData(); sUserSellData* GetSelectJoinData(); /// ¿ÀÇ»óÅ·Π¼¼ÆÃ void SetOpen(); bool IsOpen() { return mUserSellOpen; } bool IsNetLock(); /// void SetName( LPCTSTR title ); void SetTargetIndex( unsigned long targetIdx ); unsigned long GetTargetIndex() { return mTargetIndex; } unsigned short GetSelectInvenSlot(); /// ÂüÁ¶ÇÑ Àκ¥ÀÇ ½½·ÔÀ妽º ȹµæ int IsRegistSellSlot( unsigned int slot ); int IsRegistJoinSlot( unsigned int slot ); unsigned char GetStatus() { return mStatus; } virtual void HideESC( bool onsound = true ); protected: bool OnCreate( cUINodeProperty* pproperty ); void OnRender( cUIFontItemKeeper* pKeeper ); void OnCommand( cUINode* pnode, unsigned int id ); void OnLButtonDown( const cUIPos& pos, bool ctrl, bool alt, bool shift ); void OnLButtonDoubleClick( const cUIPos& pos ); void OnRButtonDown( const cUIPos& pos, bool ctrl, bool alt, bool shift ); void OnIconClicked(cUINode* caller, unsigned int ); void OnIconDoubleClicked( cUINode* , unsigned int ); void OnIconRightClicked( cUINode* , unsigned int , bool ); void OnIconDragged(cUINode* caller, unsigned int, const cUIPos&, bool ); void OnIconHovered( cUINode* caller, unsigned int id, const cUIPos& pos ); void OnShow(); void OnHide(); void UpdateRect(); void UpdateSkin(); void OnNetLock( int lockTry ); void OnNetUnLock( int lockTry ); /// ÆÇ¸Å°ü·Ã µ¥ÀÌÅÍ ÃʱâÈ­ void ClearSellData( sUserSellData* data, unsigned int index ); void UpdateData( sUserSellData* data, unsigned int index, bool enalbe ); void UpdateSelect( int i ); int FindSlot( const cUIPos& pos ); /// ¼±ÅÃµÈ ¾ÆÀÌÅÛ ¸®ÅÏ /// ÇØ´ç ³ëÁ¡ ½½·ÔÀ» ´õºíŬ¸¯À» ÇßÀ»¶§. void EventSelectItem( int select ); private: /// »óÅ unsigned char mStatus; unsigned int mLastSlot; /// ( 0 ~ MAX_STALL_ITEM ) sUserSellData mSellData[MAX_STALL_ITEM]; /// ÆÇ¸Å µ¥ÀÌÅÍ sUserSellData mJoinData[MAX_STALL_ITEM]; /// ±¸ÀÔ µ¥ÀÌÅÍ cUINodeSkin* mNameSkin; /// ¾ÆÀÌÅÛ À̸§ Ãâ·Â ±âº» À§Ä¡ cUINodeSkin* mPriceSkin; /// ¾ÆÀÌÅÛ °¡°Ý Ãâ·Â ±âº» À§Ä¡ cUINodeSkin* mImageSkin; /// ¾ÆÀÌÅÛ ¼±Åà À̹ÌÁö /// cEditBox* mpName; cButton* mpNameRegist; cButton* mpItemUpdate; cButton* mpEnd; /// ³ëÁ¡Á¾·á cButton* mpJoinEnd; /// ÀÌ¿ëÁ¾·á /// ÆÇ¸Å³ëÁ¡»óÀ» °³¼³Çϰí ÀÖ´ÂÁßÀÎÁö ¿©ºÎ bool mUserSellOpen; /// usersell ¼ø¼­ unsigned int mArrayIndex; /// ¼±Åà À̹ÌÁö bool mShowSelect; cPlaneObject* mpSelectImg; cUIRect mRect[MAX_STALL_ITEM]; /// joinÁßÀÎ ³ëÁ¡°³¼³ÀÚÀÇ À妽º unsigned long mTargetIndex; }; inline void cUserSellWindow::SetTargetIndex( unsigned long targetIdx ) { mTargetIndex = targetIdx; }