/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__IUIITEMEVENT__
#define	__IUIITEMEVENT__


namespace GS {
	namespace S2D {
		class Item;

/*!
	@short	Item event interface.
	Implement this class if you wish to process item events.
	@author	Emmanuel Julien (ejulien@owloh.com)
*/
struct	IItemEvent
{
virtual	void	OnSetup(Item *) {}
virtual	void	OnSetupDone(Item *) {}
virtual	void	OnReset(Item *) {}

virtual	void	OnActivate(Item *, bool) {}

virtual	void	OnPhysicStep(Item *, bool /*step_taken*/) {}

virtual	void	OnUpdate(Item *) {}
virtual	void	OnDelete(Item *) {}

virtual	void	OnRenderDone(Item *) {}
virtual	void	OnRenderUser(Item *) {}

// virtual	void	OnCollision(Item *, Item * /*with*/, const nCollisionPair &) {}

virtual	~IItemEvent() {}
};

	} // S2D
} // GS


#endif	// __IUIITEMEVENT__
