#if !defined(AFX_RESOURCEWINDOW_H__AA251684_4BCA_11D2_8455_00105A17BC83__INCLUDED_)
#define AFX_RESOURCEWINDOW_H__AA251684_4BCA_11D2_8455_00105A17BC83__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ResourceWindow.h : header file
//
#include "TagListDlg.h"
#include "ObjWindow.h"
#include "EditorChildWnd.h"
#include <Adept\Entity.hpp>

namespace MechWarrior4
{
class Path;
}
/////////////////////////////////////////////////////////////////////////////
// CResourceWindow frame

class CResourceWindow  : public CEditorChildWnd
{
//friend class CTagListDlg;
	DECLARE_DYNCREATE(CResourceWindow)
protected:

// Attributes
public:

// Operations
public:
	CResourceWindow();           // protected constructor used by dynamic creation
	virtual ~CResourceWindow();

	CObjWindow
		*TLDlg;

	int 
		numEntitiesAdded;

	MString
		AssignObjectName(MString name, int *num);
	bool
		CheckObjectName(MString name);

	void
		MakeDirectoryList(
			Stuff::Directory *current_directory, 
			int tabNumber,
			Stuff::MString directory_name
		);

	Adept::Entity*
		CreateNewInstance(Adept::Entity* entity = NULL);
	Adept::Entity*
		CResourceWindow::CreateNewInstance(char* game_model_name, char* entity_name, char* instance_name);

	MechWarrior4::Path* 
		CreateMovementPath();

	Stuff::NotationFile
		*objectInformation;
	
	Stuff::ChainOf<TabList *>
		mechList;

	Stuff::ChainOf<TabList *>
		buildingList;

	Stuff::ChainOf<TabList *>
		vehicleList;

	Stuff::ChainOf<TabList *>
		miscList;

	ChainIteratorOf<TabList*> *tabListIterator;

	void DisperseWithBitmap(bool cultural_flag=false);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CResourceWindow)
	protected:
	virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CResourceWindow)
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnPaint();
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

	void FillTabBox(int tabNumber);

	void FillTabBox(ChainIteratorOf<TabList*> &iterator);
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_RESOURCEWINDOW_H__AA251684_4BCA_11D2_8455_00105A17BC83__INCLUDED_)
