2007-12-04 21:35:01 +00:00
|
|
|
#ifndef TOOLADDPOLYGON_H_
|
|
|
|
#define TOOLADDPOLYGON_H_
|
|
|
|
|
|
|
|
#include "Tool.h"
|
|
|
|
#include "EditManager.h"
|
2007-12-24 00:04:02 +00:00
|
|
|
#include "SidebarAdd.h"
|
2008-02-18 20:22:05 +00:00
|
|
|
#include "LevelVertex.h"
|
2007-12-04 21:35:01 +00:00
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
|
2008-02-15 19:10:04 +00:00
|
|
|
class ToolAddPolygon : public Tool, private EventHandler, private Renderer {
|
2007-12-04 21:35:01 +00:00
|
|
|
private:
|
|
|
|
GtkWidget *image;
|
|
|
|
|
|
|
|
EditManager *editManager;
|
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
SidebarAdd sidebar;
|
|
|
|
|
|
|
|
Room newRoom;
|
|
|
|
|
2007-12-04 21:35:01 +00:00
|
|
|
// prevent shallow copy
|
|
|
|
ToolAddPolygon(const ToolAddPolygon &t);
|
|
|
|
const ToolAddPolygon& operator=(const ToolAddPolygon &t);
|
|
|
|
|
|
|
|
public:
|
|
|
|
ToolAddPolygon(EditManager *editManager);
|
|
|
|
virtual ~ToolAddPolygon();
|
|
|
|
|
2007-12-05 18:34:01 +00:00
|
|
|
virtual void activate();
|
|
|
|
virtual void deactivate();
|
2007-12-04 21:35:01 +00:00
|
|
|
|
2007-12-14 22:03:00 +00:00
|
|
|
virtual const char *getType() const {
|
|
|
|
return "ToolAddPolygon";
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual const char *getName() const {
|
|
|
|
return "Add polygonal room";
|
2007-12-04 21:35:01 +00:00
|
|
|
}
|
|
|
|
|
2007-12-14 22:03:00 +00:00
|
|
|
virtual GtkWidget *getImage() {
|
|
|
|
return image;
|
|
|
|
}
|
2007-12-24 00:04:02 +00:00
|
|
|
|
2008-02-18 20:22:05 +00:00
|
|
|
virtual bool hoverFilter(const LevelObject &object) const {
|
|
|
|
if(!object.isOfType("LevelVertex"))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
return ((LevelVertex*)&object)->canConnect();
|
|
|
|
}
|
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
virtual EventHandler* getEventHandler() {
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual Renderer *getRenderer() {
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void render(const Level &level, const Rectangle &rect, float scale);
|
|
|
|
|
2008-02-15 22:44:03 +00:00
|
|
|
virtual bool buttonPress(unsigned int button, const Vertex *v);
|
2007-12-24 00:04:02 +00:00
|
|
|
|
|
|
|
virtual Sidebar* getSidebar() {
|
|
|
|
return &sidebar;
|
|
|
|
}
|
2007-12-04 21:35:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /*TOOLADDPOLYGON_H_*/
|