#pragma once
#include "Touchable.h"

class CellWarsMTManager;
class MultiSelectionCircle;
class Bacterium;

class SelectionButton : public Touchable
{
public:
	SelectionButton(int buttonSlot, CellWarsMTManager *useThisMultiTouchManager, MultiSelectionCircle *belongsToMultiSelectionCircle, bool isMirrored = false);
	SelectionButton(int buttonSlot, CellWarsMTManager *useThisMultiTouchManager, Bacterium *belongsToBacterium, bool isMirrored = false);
	virtual ~SelectionButton();

	virtual void Update(float dt);
	virtual void Render();
	virtual void ReceiveMessage(Message *m);
	
	virtual void fingerDown(Vector2 posDownInAngelCoords);
	virtual void fingerMove(Vector2 moveToInAngelCoords);
	virtual void fingerUp(Vector2 lastPosInAngelCoords);

	virtual void click() = 0;

protected:
	CellWarsMTManager *useThisMTManager;
	MultiSelectionCircle *belongsToThisMSCircle;
	Bacterium *belongsToThisBacterium;
	int thisButtonSlot;
	bool mIsMirrored;

private:
	bool fingerOnThisWholeTime; // Note: this does not support multiple fingers on the touchable
};
