Cafu Engine
Tool.hpp
1 /*
2 Cafu Engine, http://www.cafu.de/
3 Copyright (c) Carsten Fuchs and other contributors.
4 This project is licensed under the terms of the MIT license.
5 */
6 
7 #ifndef CAFU_GUIEDITOR_TOOL_HPP_INCLUDED
8 #define CAFU_GUIEDITOR_TOOL_HPP_INCLUDED
9 
10 
11 class wxKeyEvent;
12 class wxMouseEvent;
13 class wxContextMenuEvent;
14 
15 
16 namespace GuiEditor
17 {
18  class RenderWindowT;
19 
20  // Tool IDs.
21  enum ToolID
22  {
23  TOOL_SELECTION,
24  TOOL_NEW_WINDOW
25  };
26 
27 
28  class ToolI
29  {
30  public:
31 
32  ToolI() {}
33  virtual ~ToolI() {}
34 
35  virtual ToolID GetID() const=0;
36 
37  virtual void Activate() {}
38  virtual void Deactivate() {}
39 
40  virtual void RenderTool(RenderWindowT* RenderWindow) {}
41 
42  virtual bool OnKeyDown(RenderWindowT* RenderWindow, wxKeyEvent& KE) { return false; }
43  virtual bool OnKeyUp (RenderWindowT* RenderWindow, wxKeyEvent& KE) { return false; }
44  virtual bool OnChar (RenderWindowT* RenderWindow, wxKeyEvent& KE) { return false; }
45 
46  virtual bool OnLMouseDown(RenderWindowT* RenderWindow, wxMouseEvent& ME) { return false; }
47  virtual bool OnLMouseUp (RenderWindowT* RenderWindow, wxMouseEvent& ME) { return false; }
48  virtual bool OnRMouseDown(RenderWindowT* RenderWindow, wxMouseEvent& ME) { return false; }
49  virtual bool OnRMouseUp (RenderWindowT* RenderWindow, wxMouseEvent& ME) { return false; }
50  virtual bool OnMouseWheel(RenderWindowT* RenderWindow, wxMouseEvent& ME) { return false; }
51  virtual bool OnMouseMove (RenderWindowT* RenderWindow, wxMouseEvent& ME) { return false; }
52 
53  virtual bool OnContextMenu(RenderWindowT* RenderWindow, wxContextMenuEvent& CE) { return false; }
54  };
55 }
56 
57 #endif
Definition: RenderWindow.hpp:20
Definition: Tool.hpp:28