#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