43 lines
730 B
C++
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;
|
|
};
|
|
|
|
}
|