/* * Tool.h * * Created on: Jan 22, 2012 * Author: Simon */ #ifndef TOOL_H_ #define TOOL_H_ #include using namespace std; #include "interface/Point.h" class Simulation; class Brush; class Tool { protected: int toolID; string toolName; public: Tool(int id, string name, int r, int g, int b); string GetName(); virtual ~Tool(); virtual void Click(Simulation * sim, Brush * brush, ui::Point position); virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); int colRed, colBlue, colGreen; }; class SignTool: public Tool { public: SignTool(): Tool(0, "SIGN", 0, 0, 0) { } virtual ~SignTool() {} virtual void Click(Simulation * sim, Brush * brush, ui::Point position); virtual void Draw(Simulation * sim, Brush * brush, ui::Point position) { } virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { } virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { } virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) { } }; class PropertyTool: public Tool { public: PropertyTool(): Tool(0, "PROP", 0, 0, 0) { } virtual ~PropertyTool() {} virtual void Click(Simulation * sim, Brush * brush, ui::Point position); virtual void Draw(Simulation * sim, Brush * brush, ui::Point position) {}; virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { } virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { } virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) { } }; class ElementTool: public Tool { public: ElementTool(int id, string name, int r, int g, int b); virtual ~ElementTool(); virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); }; class WallTool: public Tool { public: WallTool(int id, string name, int r, int g, int b); virtual ~WallTool(); virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); }; class GolTool: public Tool { public: GolTool(int id, string name, int r, int g, int b); virtual ~GolTool(); virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); }; #endif /* TOOL_H_ */