1
1
forked from 0ad/0ad
0ad/source/sced/ToolManager.h
2004-05-30 00:46:58 +00:00

53 lines
1.3 KiB
C++
Executable File

#ifndef _TOOLMANAGER_H
#define _TOOLMANAGER_H
#include "Tool.h"
class CToolManager
{
public:
CToolManager() : m_ActiveTool(0) {}
// draw the visual representation of active tool, if any
void OnDraw() {
if (m_ActiveTool) m_ActiveTool->OnDraw();
}
// callback for left button down event
void OnLButtonDown(unsigned int flags,int px,int py) {
if (m_ActiveTool) m_ActiveTool->OnLButtonDown(flags,px,py);
}
// callback for left button up event
void OnLButtonUp(unsigned int flags,int px,int py) {
if (m_ActiveTool) m_ActiveTool->OnLButtonUp(flags,px,py);
}
// callback for right button down event
void OnRButtonDown(unsigned int flags,int px,int py) {
if (m_ActiveTool) m_ActiveTool->OnRButtonDown(flags,px,py);
}
// callback for right button up event
void OnRButtonUp(unsigned int flags,int px,int py) {
if (m_ActiveTool) m_ActiveTool->OnRButtonUp(flags,px,py);
}
// callback for mouse move event
void OnMouseMove(unsigned int flags,int px,int py) {
if (m_ActiveTool) m_ActiveTool->OnMouseMove(flags,px,py);
}
// set currently active tool, or pass 0 to deactive all tools
void SetActiveTool(CTool* tool) { m_ActiveTool=tool; }
// get currently active tool, if any
CTool* GetActiveTool() const { return m_ActiveTool; }
private:
CTool* m_ActiveTool;
};
extern CToolManager g_ToolMan;
#endif