#ifndef INCLUDED_PANELS_PANELMANAGER
#define INCLUDED_PANELS_PANELMANAGER

#include <Math/Point.h>

#include <memory>
#include <list>

//////////////////////////////////////////////////////////////
namespace Dubious {
namespace Panels {

class Panel;
typedef std::shared_ptr<Panel> PanelPtr;
typedef std::list<PanelPtr> PanelPtrList;

class PanelManager
{
public:
	PanelManager();
	~PanelManager();

	void				Draw();

	void				AddPanel( PanelPtr pPanel );
	void				RemovePanel( PanelPtr pPanel );

	Dubious::Math::Size& ScreenDimensions() { return m_ScreenDimensions; }

private:
	PanelManager( const PanelManager& );
	PanelManager& operator=( const PanelManager& );

	Dubious::Math::Size m_ScreenDimensions;
	PanelPtrList		m_Panels;
};

}}

#endif
