/* ==========================================================================
* 파    일 : FriendWindow.h
* 목    적 : 
* 작 성 자 : 김가람
* 작 성 일 : 2007-07-06
* 주의사항 :
*===========================================================================*/
#pragma once
#include "UIWindow.h"
#include "Chat_Common.h"

const unsigned int MAXPAGE_NUM = 5;

/// 친구 정보
struct sFriendData
{
	long				mIdx;			/// 리스트내 인덱스
	unsigned long		mFriendIdx;		/// 친구 인덱스 
	cStringT			mName;			/// 이름
	BYTE				mGameIn;		/// 접속상태
};

class cFriendListbox;
class cUIImage;
class cButton;
class cFriendWindow : public cUIWindow
{
public:
	cFriendWindow();
	virtual ~cFriendWindow();

	///
	void Clear();
	void AddFriend( MSG_RES_FRIEND_LIST* msgData );

	bool IsFriend( unsigned long playerIdx );

protected:
	bool OnCreate( cUINodeProperty* pproperty );
	void OnCommand( cUINode* pcaller, unsigned int id );
	void OnRadioPressed( cUINode* pcaller, unsigned int id );
	void OnListBoxChanged( cUINode* caller, unsigned int id );
	void OnShow();
	void UpdateSkin();
	void OnNetLock( int lockTry );
	void OnNetUnLock( int lockTry );

	void AddConnect( MSG_RES_FRIEND_LIST* msgData );
	void AddNotConnect( MSG_RES_FRIEND_LIST* msgData );

	/// 이미지 생성후 데이터 저장 
	void CreateImage( const cString& skinname );
	char GetFriendImage( char race, char gender );

	void Update();
	void UpdateButton();

	sFriendData* GetFriendData( int friendIdx );

private:
	/// 이미지 배열 
	typedef tPointerArray<void*> cImageArr;
	cImageArr		mImageArr;

	/// 친구정보
	typedef tPointerArray<void*> cFriendArr;
	cFriendArr			mFriendArr;

	/// 친구기능 버튼들
	cFriendListbox*		mpFriendList;
	cButton* mParty;
	cButton* mAddFriend;
	cButton* mDelFriend;
	cButton* mWhisper;

	/// 페이지 버튼
	cUINode*		mpRadioNode[ MAXPAGE_NUM ];

	/// 버튼들의 정렬을 위한 영역
	cUIRect			mCheckRect;
};
