Sceneview
 All Classes Functions Variables Enumerations Enumerator Groups Pages
input_handler.hpp
1 // Copyright [2015] Albert Huang
2 
3 #ifndef SCENEVIEW_INPUT_HANDLER_HPP__
4 #define SCENEVIEW_INPUT_HANDLER_HPP__
5 
6 #include <QMouseEvent>
7 #include <QKeyEvent>
8 #include <QVariant>
9 
10 class QWidget;
11 
12 namespace sv {
13 
26 class InputHandler {
27  public:
28  virtual ~InputHandler() {}
29 
30  virtual QString Name() const = 0;
31 
35  virtual void Activated() {}
36 
40  virtual void Deactivated() {}
41 
45  virtual void InitializeGL() {}
46 
51  virtual void ShutdownGL() {}
52 
56  virtual void MousePressEvent(QMouseEvent* event);
57 
61  virtual void MouseMoveEvent(QMouseEvent* event);
62 
66  virtual void MouseReleaseEvent(QMouseEvent* event);
67 
71  virtual void MouseDoubleClickEvent(QMouseEvent* event);
72 
76  virtual void WheelEvent(QWheelEvent* event);
77 
81  virtual void KeyPressEvent(QKeyEvent* event);
82 
86  virtual void KeyReleaseEvent(QKeyEvent* event);
87 
94  virtual QWidget* GetWidget() { return nullptr; }
95 
101  virtual QVariant SaveState() { return QVariant(); }
102 
108  virtual void LoadState(const QVariant& val) {}
109 };
110 
111 } // namespace sv
112 
113 #endif // SCENEVIEW_VIEW_HANDLER_HPP__
virtual void MouseDoubleClickEvent(QMouseEvent *event)
Called when the mouse is double-clicked in the viewport.
virtual void KeyReleaseEvent(QKeyEvent *event)
Called when a key is released in the viewport.
virtual void Deactivated()
Called when the input handler is deactivated.
Definition: input_handler.hpp:40
virtual void WheelEvent(QWheelEvent *event)
Called when the mouse wheel is scrolled.
virtual QWidget * GetWidget()
Called to retrieve a widget for the InputHandler to manage.
Definition: input_handler.hpp:94
virtual QVariant SaveState()
Called by the viewport to save the InputHandler state.
Definition: input_handler.hpp:101
virtual void MouseMoveEvent(QMouseEvent *event)
Called when the mouse is moved in the viewport.
virtual void KeyPressEvent(QKeyEvent *event)
Called when a key is pressed in the viewport.
virtual void MousePressEvent(QMouseEvent *event)
Called when the mouse is pressed in the viewport.
Receive and handle mouse/keyboard input events.
Definition: input_handler.hpp:26
virtual void MouseReleaseEvent(QMouseEvent *event)
Called when the mouse is released in the viewport.
virtual void LoadState(const QVariant &val)
Called by the viewport to restore the InputHandler state.
Definition: input_handler.hpp:108
virtual void InitializeGL()
Called when the OpenGL context is ready for use.
Definition: input_handler.hpp:45
virtual void Activated()
Called when the input handler is activated and given control.
Definition: input_handler.hpp:35
virtual void ShutdownGL()
Called when the OpenGL context is shutting down (usually, right before destruction).
Definition: input_handler.hpp:51