#ifndef PLATFORMEVENT_H
#define PLATFORMEVENT_H

#include "IEvent.h"

namespace Salamander
{

/*
** Platform events are created by the Salamander platform manager to control program flow and system events.
** This class does not deal with controller input.
*/
class PlatformEvent : public IEvent
{
public:
	/*
	** Actions are fired by the system and can be handled by client applications if required. 
	*/
	enum platformAction
	{
		QUIT
	};

public:
	/*
	** Destructor.
	*/
	virtual ~PlatformEvent();

	/*
	** Platform events must be created with an action.
	*/
	registerEvent(IEvent);
	PlatformEvent(platformAction action);

	/*
	** Return an action instigated by the platform we're running on.
	*/
	platformAction getAction() const;
	
protected:

private:
	platformAction action_;
};

}

#endif // PLATFORMEVENT_H