Sceneview
 All Classes Functions Variables Enumerations Enumerator Groups Pages
input_handler_widget_stack.hpp
1 // Copyright [2015] Albert Huang
2 
3 #ifndef SCENEVIEW_INPUT_HANDLER_WIDGET
4 #define SCENEVIEW_INPUT_HANDLER_WIDGET
5 
6 #include <vector>
7 
8 #include <QDockWidget>
9 
10 class QComboBox;
11 class QStackedWidget;
12 class QVBoxLayout;
13 
14 namespace sv {
15 
16 class InputHandler;
17 class Viewport;
18 
31 class InputHandlerWidgetStack : public QDockWidget {
32  Q_OBJECT
33 
34  public:
35  explicit InputHandlerWidgetStack(Viewport* viewport,
36  QWidget* parent = nullptr);
37 
38  private:
39  struct HandlerData {
40  int stack_index;
41  InputHandler* handler;
42  };
43 
44  void AddInputHandler(InputHandler* handler);
45 
46  void OnInputHandlerActivated(InputHandler* handler);
47 
48  HandlerData* GetHandlerData(InputHandler* Handler);
49 
50  Viewport* viewport_;
51 
52  QStackedWidget* stack_;
53  QVBoxLayout* layout_;
54 
55  std::vector<HandlerData> handler_data_;
56 };
57 
58 } // namespace sv
59 
60 #endif // SCENEVIEW_CAMERA_CONTROLS_WIDGET
Receive and handle mouse/keyboard input events.
Definition: input_handler.hpp:26
Widget that draws a scene and manages Renderer and InputHandler objects.
Definition: viewport.hpp:27
Contains and manages InputHandler widgets.
Definition: input_handler_widget_stack.hpp:31