RasterProcessTool/RasterMainWidgetGUI/RasterMainWidget/maptool.h

43 lines
730 B
C++

#pragma once
#include <QtGui/QMouseEvent>
namespace LAMPMainWidget {
class MapCanvas;
/**
* 地图的处理工具
*/
class MapTool {
public:
MapTool(MapCanvas *mapCanvas) : mMapCanvas(mapCanvas) {}
virtual ~MapTool();
public:
/**
* 具体的工具处理程序
* @param event 鼠标事件
*/
virtual void execute(QMouseEvent *event) = 0;
/**
* 提示将使用工具,此方法中可以为工具的环境做一些准备
*/
virtual void setup() = 0;
/**
* 当工具不使用时,将相关环境还原至原先状态
*/
virtual void deSetup() = 0;
/**
* 获取工具的名称
* @return 工具名称
*/
virtual QString id() = 0;
protected:
MapCanvas *mMapCanvas;
};
}