All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorLabelModelController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "Labels.h"
7 #include "CallbackCollection.h"
8 #include "Types.h"
9 
10 
11 namespace Eegeo
12 {
13  namespace Resources
14  {
15  namespace Interiors
16  {
18  {
19  public:
21  InteriorsCellResourceObserver& interiorsCellResourceObserver,
22  Labels::IAnchoredLabelSourceRepository& anchoredLabelSourceRepository,
23  IInteriorLabelModelObserver& interiorLabelModelObserver,
24  InteriorInteractionModel& interiorInteractionModel,
25  IInteriorViewModelObserver& interiorViewModelObserver,
26  const IImmutableInteriorViewModel& interiorViewModel);
27 
29  private:
30 
31  void HandleCellResourceAddedToSceneGraph(const InteriorsCellResource& interiorsCellResource);
32  void HandleCellResourceRemovedFromSceneGraph(const InteriorsCellResource& interiorsCellResource);
33  void HandleLabelSourceAdded(const Labels::IAnchoredLabelSource*& pAnchoredLabelSource);
34  void HandleLabelSourceRemoved(const Labels::IAnchoredLabelSource*& pAnchoredLabelSource);
35  void HandleInteriorInteractionStateChanged();
36  void HandleInteriorViewModelChanged();
37 
38  bool IsForSelectedFloor(const InteriorsFloorCell& interiorFloorCell);
39 
40  InteriorLabelModel& m_interiorLabelModel;
41  InteriorsCellResourceObserver& m_interiorsCellResourceObserver;
42  Labels::IAnchoredLabelSourceRepository& m_anchoredLabelSourceRepository;
43  IInteriorLabelModelObserver& m_interiorLabelModelObserver;
44  InteriorInteractionModel& m_interiorInteractionModel;
45  IInteriorViewModelObserver& m_interiorViewModelObserver;
46  const IImmutableInteriorViewModel& m_interiorViewModel;
47 
48  const InteriorsModel* m_pSelectedInteriorModel;
49  int m_selectedFloorIndex;
50 
55  Helpers::TCallback0<InteriorLabelModelController> m_interiorInteractionStateChangedCallback;
56  Helpers::TCallback0<InteriorLabelModelController> m_interiorViewModelChangedCallback;
57  };
58  }
59  }
60 }