diff options
Diffstat (limited to 'ToolAddRect.h')
-rw-r--r-- | ToolAddRect.h | 65 |
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_*/ |