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;
|
|||
|
};
|
|||
|
|
|||
|
}
|