All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelFilterController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #include "MapLayers.h"
4 #include "Types.h"
5 #include "Labels.h"
6 #include "Interiors.h"
7 #include "LabelLayer.h"
8 #include "ILabelAnchorFilter.h"
9 #include "MapViewMode.h"
10 
11 #include "ICallback.h"
12 
13 
14 namespace Eegeo
15 {
16  namespace MapLayers
17  {
19  {
20  public:
22  Labels::ILabelAnchorFilterModel& platformHideLabelAnchorFilterModel,
23  Resources::Interiors::InteriorTransitionModel& interiorTransitionModel,
24  Resources::Interiors::InteriorInteractionModel& interiorInteractionModel,
25  const Labels::LabelLayer::IdType& interiorsLabelLayerId,
26  bool interiorLabelsVisibleWhenExpanded,
27  bool labelsAlwaysHidden);
28 
29  virtual ~LabelFilterController();
30  private:
31  void OnInteriorTransitionModelChanged();
32 
33  void OnInteriorInteractionModelStateChanged();
34 
35 
36  void RefreshLabelLayerFilter();
37 
38  void RefreshHideLabelFilter();
39 
40  u32 BuildFilterGroupMask() const;
41 
42  Labels::ILabelLayerFilterGroupModel& m_labelLayerFilterGroupModel;
43 
44  Labels::ILabelAnchorFilterModel& m_platformHideLabelAnchorFilterModel;
45  Resources::Interiors::InteriorTransitionModel& m_interiorTransitionModel;
46  Resources::Interiors::InteriorInteractionModel& m_interiorInteractionModel;
47  Labels::LabelLayer::IdType m_interiorsLabelLayerId;
48  const bool m_interiorLabelsVisibleWhenExpanded;
49  const bool m_labelsAlwaysHidden;
50 
51  Helpers::TCallback0<LabelFilterController> m_interiorTransitionModelChanged;
52  Helpers::TCallback0<LabelFilterController> m_interiorInteractionModelStateChanged;
53 
55 
56  bool InteriorLabelHiddenPredicate(const Eegeo::Labels::IAnchoredLabel& anchoredLabel) const;
57  };
58 
59  }
60 }