Emergency 20 Dokumentation  4.2.0
OverlayManager.h
Go to the documentation of this file.
1 // Copyright (C) 2012-2018 Promotion Software GmbH
2 
3 
4 //[-------------------------------------------------------]
5 //[ Header guard ]
6 //[-------------------------------------------------------]
7 #pragma once
8 
9 
10 //[-------------------------------------------------------]
11 //[ Includes ]
12 //[-------------------------------------------------------]
13 #include "em5/Export.h"
14 
16 
17 
18 //[-------------------------------------------------------]
19 //[ Forward declarations ]
20 //[-------------------------------------------------------]
21 namespace em5
22 {
23  class OverlayComponent;
24 }
25 namespace qsf
26 {
27  class CameraComponent;
28 }
29 
30 
31 //[-------------------------------------------------------]
32 //[ Namespace ]
33 //[-------------------------------------------------------]
34 namespace em5
35 {
36 
37 
38  //[-------------------------------------------------------]
39  //[ Classes ]
40  //[-------------------------------------------------------]
46  {
47 
48 
49  //[-------------------------------------------------------]
50  //[ Friends ]
51  //[-------------------------------------------------------]
52  friend class OverlayComponent;
53 
54 
55  //[-------------------------------------------------------]
56  //[ Public methods ]
57  //[-------------------------------------------------------]
58  public:
64 
69  ~OverlayManager();
70 
71 
72  //[-------------------------------------------------------]
73  //[ Private methods ]
74  //[-------------------------------------------------------]
75  private:
76  void onPreCompositorWorkspaceUpdate(const qsf::CameraComponent& cameraComponent);
77 
78  // Only for friends
79  void addVisibleOverlayComponent(OverlayComponent& overlayComponent);
80  void removeVisibleOverlayComponent(OverlayComponent& overlayComponent);
81 
82 
83  //[-------------------------------------------------------]
84  //[ Private data ]
85  //[-------------------------------------------------------]
86  private:
87  // Linked list of visible overlay components
88  struct DoubleLinkedList
89  {
90  OverlayComponent* mFirst;
91  DoubleLinkedList() : mFirst(nullptr) {}
92  };
93  DoubleLinkedList mVisibleOverlayComponents;
94 
95  boost::signals2::connection mPreCompositorWorkspaceUpdateConnection;
96 
97 
98  };
99 
100 
101 //[-------------------------------------------------------]
102 //[ Namespace ]
103 //[-------------------------------------------------------]
104 } // em5
Definition: ActionPriority.h:13
EMERGENCY 5 overlay manager class.
Definition: OverlayManager.h:45
#define EM5_API_EXPORT
Definition: Export.h:28
Camera component class.
Definition: CameraComponent.h:50
EMERGENCY 5 overlay component base class.
Definition: OverlayComponent.h:52
Abstract manager interface.
Definition: Manager.h:40
Definition: PickupPersonByParamedicAction.h:21