All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelLayerFilterController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #include "Types.h"
4 #include "Labels.h"
5 #include "LabelLayer.h"
6 #include "ILabelAnchorFilter.h"
7 
8 #include "ICallback.h"
9 
10 namespace Eegeo
11 {
12  namespace Labels
13  {
15  {
16  public:
17  LabelLayerFilterController(const ILabelLayerFilterGroupModel& labelLayerFilterGroupModel,
18  ILabelLayerFilterGroupModelObserver& labelLayerFilterGroupModelObserver,
19  const ILabelFilterModel& externallyModifiableLabelFilterModel,
20  ILabelFilterModelObserver& externallyModifiableLabelFilterModelObserver,
21  ILabelFilterModel& internallyModifiableLabelFilterModel);
22 
23  virtual ~LabelLayerFilterController();
24  private:
25  void OnLabelLayerFilterGroupModelChanged();
26 
27  void OnExternallyModifiableLabelFilterModelChanged();
28 
29  void RefreshLabelLayerFilter();
30 
31  u32 BuildFilterGroupMask() const;
32 
33  const ILabelLayerFilterGroupModel& m_labelLayerFilterGroupModel;
34  ILabelLayerFilterGroupModelObserver& m_labelLayerFilterGroupModelObserver;
35  const ILabelFilterModel& m_externallyModifiableLabelFilterModel;
36  ILabelFilterModelObserver& m_externallyModifiableLabelFilterModelObserver;
37  ILabelFilterModel& m_internallyModifiableLabelFilterModel;
38 
39  Helpers::TCallback0<LabelLayerFilterController> m_labelLayerFilterGroupModelChanged;
40  Helpers::TCallback0<LabelLayerFilterController> m_externallyModifiableLabelFilterModelChanged;
41  };
42  }
43 }