#ifndef SCREENMANAGER_H
#define SCREENMANAGER_H

#include "IManager.h"

namespace Salamander
{

class Screen;
class StateChange;

class ScreenManager : public IManager
{
friend class Application;

public:
	registerManager();
	virtual ~ScreenManager();

public:
	bool getIsCursorVisible();
	void setIsCursorVisible(bool value);

	Vec2 getResolution();
	void setResolution(Vec2 resolution);

	void push_screen(Screen* screen);
	Screen* pop_screen();

protected:
	// These functions can only be called by Application
	ScreenManager();

	virtual bool startup();
	virtual bool shutdown();

	virtual void frame();

private:
	std::vector<Screen*> screens_;
	Vec2 resolution_;
	bool isCursorVisible_;

};

}


#endif // SCREENMANAGER_H
