50 lines
935 B
C++
50 lines
935 B
C++
#ifndef TOOLMOVEMAP_H
|
|
#define TOOLMOVEMAP_H
|
|
|
|
#include "Tool.h"
|
|
#include "../MapView2D.h"
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class ToolMoveMap : public Tool {
|
|
|
|
private:
|
|
|
|
bool mouseIsDown = false;
|
|
Point3 startOffset;
|
|
int sx;
|
|
int sy;
|
|
|
|
virtual void mousePressEvent(MapView2D* m, QMouseEvent* e) override {
|
|
if (e->button() == Qt::MouseButton::MidButton) {
|
|
mouseIsDown = true;
|
|
this->sx = e->x();
|
|
this->sy = e->y();
|
|
this->startOffset = m->getScaler().getOffset();
|
|
}
|
|
}
|
|
|
|
virtual void mouseMoveEvent(MapView2D* m, QMouseEvent* e) override {
|
|
if (!mouseIsDown) {return;}
|
|
m->getScaler().setOffset(startOffset);
|
|
m->getScaler().addOffset(e->x()-sx, e->y()-sy);
|
|
}
|
|
|
|
virtual void mouseReleaseEvent(MapView2D* m, QMouseEvent* e) override {
|
|
(void) m;
|
|
(void) e;
|
|
mouseIsDown = false;
|
|
}
|
|
|
|
virtual void keyPressEvent(MapView2D* m, QKeyEvent* e) override {
|
|
(void) m;
|
|
(void) e;
|
|
// TODO: move on arrow keys?
|
|
}
|
|
|
|
|
|
};
|
|
|
|
#endif // TOOLMOVEMAP_H
|