summaryrefslogtreecommitdiffstats
path: root/ToolAddRect.h
diff options
context:
space:
mode:
Diffstat (limited to 'ToolAddRect.h')
-rw-r--r--ToolAddRect.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/ToolAddRect.h b/ToolAddRect.h
new file mode 100644
index 0000000..ee915fa
--- /dev/null
+++ b/ToolAddRect.h
@@ -0,0 +1,65 @@
+#ifndef TOOLADDRECT_H_
+#define TOOLADDRECT_H_
+
+#include "Tool.h"
+#include "SidebarAdd.h"
+
+
+class ToolAddRect : public Tool, public EventHandler, public Renderer {
+ private:
+ GtkWidget *image;
+
+ EditManager *editManager;
+
+ SidebarAdd sidebar;
+
+ bool pressed;
+ Vertex v1;
+
+ // prevent shallow copy
+ ToolAddRect(const ToolAddRect &t);
+ const ToolAddRect& operator=(const ToolAddRect &t);
+
+ Room createRoom();
+
+ public:
+ ToolAddRect(EditManager *editManager);
+ virtual ~ToolAddRect();
+
+ virtual void activate();
+
+ virtual const char *getType() const {
+ return "ToolAddRect";
+ }
+
+ virtual const char *getName() const {
+ return "Add rectangular room";
+ }
+
+ virtual bool isSensitive() {
+ return TRUE;
+ }
+
+ virtual GtkWidget *getImage() {
+ return image;
+ }
+
+ 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);
+ virtual bool buttonRelease(unsigned int button);
+
+ virtual Sidebar* getSidebar() {
+ return &sidebar;
+ }
+};
+
+#endif /*TOOLADDRECT_H_*/