
#ifndef __CAMSLOTS_HPP__
#define __CAMSLOTS_HPP__

#include "itf.h"
#include "camera.hpp"

class Camera_Interface;

//typedef enum {MakeACopy = 0,DontMakeACopy} tdeMakeCopy;

class Camera_Slots
{
private:

	CArray<Camera*,Camera*>		m_oCameraSlots;
	CArray<CString,CString>		m_oNameSlots;
	Camera_Interface			*m_p_oInterface;

public:
	
    Camera_Slots(void);

	void SaveCameraInSlot(long lNum,CStrin csName,Camera *p_oCamera,tdeMakeCopy = MakeACopy);
	void RestoreCameraFromSlot(long lNum,DEV_ViewPort3D *p_oViewport);
	void PutCameraInViewPort(Camera *p_oCamera,DEV_ViewPort3D *p_oViewPort,tdeMakeCopy = MakeACopy);

	void SetInterface(Camera_Interface *p_oInterface) { m_p_oInterface = p_oInterface;};

	long		GetNbBusySlots();
	CString		GetNameOfSlotIfBusy(long lNum);

	Camera		*GetCameraFromPopUpMenu(CWnd *p_oParent, tdeMakeCopy eCopy = MakeACopy);
	long		GetSlotFromPopUpMenu(CWnd *p_oParent);

	BOOL		IsEmpty(long lNum) { return (m_oCameraSlots[lNum] == NULL);};

};


#endif // __CAMSLOTS_HPP__