#ifndef TOOLADDPOLYGON_H_ #define TOOLADDPOLYGON_H_ #include "Tool.h" #include "EditManager.h" #include "SidebarAdd.h" #include "LevelVertex.h" class ToolAddPolygon : public Tool, private EventHandler, private Renderer { private: GtkWidget *image; EditManager *editManager; SidebarAdd sidebar; Room newRoom; // prevent shallow copy ToolAddPolygon(const ToolAddPolygon &t); const ToolAddPolygon& operator=(const ToolAddPolygon &t); public: ToolAddPolygon(EditManager *editManager); virtual ~ToolAddPolygon(); virtual void activate(); virtual void deactivate(); virtual const char *getType() const { return "ToolAddPolygon"; } virtual const char *getName() const { return "Add polygonal room"; } virtual GtkWidget *getImage() { return image; } virtual bool hoverFilter(const LevelObject &object) const { if(!object.isOfType("LevelVertex")) return false; return ((LevelVertex*)&object)->canConnect(); } virtual EventHandler* getEventHandler() { return this; } virtual Renderer *getRenderer() { return this; } virtual void render(const Level &level, const Rectangle &rect, float scale); virtual bool buttonPress(unsigned int button, const Vertex *v); virtual Sidebar* getSidebar() { return &sidebar; } }; #endif /*TOOLADDPOLYGON_H_*/