59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#ifndef TOOLGRAB_H_
|
|
#define TOOLGRAB_H_
|
|
|
|
#include "Tool.h"
|
|
#include "EditManager.h"
|
|
#include "SidebarView.h"
|
|
|
|
|
|
class ToolGrab : public Tool, private EventHandler {
|
|
private:
|
|
GtkWidget *image;
|
|
|
|
EditManager *editManager;
|
|
|
|
SidebarView sidebar;
|
|
|
|
bool pressed;
|
|
Vertex grabbedVertex;
|
|
|
|
// prevent shallow copy
|
|
ToolGrab(const ToolGrab &t);
|
|
const ToolGrab& operator=(const ToolGrab &t);
|
|
|
|
public:
|
|
ToolGrab(EditManager *editManager);
|
|
virtual ~ToolGrab();
|
|
|
|
virtual void activate();
|
|
|
|
virtual const char *getType() const {
|
|
return "ToolGrab";
|
|
}
|
|
|
|
virtual const char *getName() const {
|
|
return "Grab";
|
|
}
|
|
|
|
virtual GtkWidget *getImage() {
|
|
return image;
|
|
}
|
|
|
|
virtual bool hoverFilter(const LevelObject &object) const {
|
|
return object.canMove();
|
|
}
|
|
|
|
virtual EventHandler* getEventHandler() {
|
|
return this;
|
|
}
|
|
|
|
virtual bool buttonPress(unsigned int button, const Vertex *v);
|
|
virtual bool buttonRelease(unsigned int button, const Vertex *v);
|
|
virtual bool motion(const Vertex *v);
|
|
|
|
virtual Sidebar* getSidebar() {
|
|
return &sidebar;
|
|
}
|
|
};
|
|
|
|
#endif /*TOOLGRAB_H_*/
|