All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelFilterModel.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "ILabelFilterModel.h"
6 #include "Types.h"
7 
8 #include <map>
9 #include <vector>
10 
11 namespace Eegeo
12 {
13  namespace Labels
14  {
16  {
17  public:
18 
20 
21  void SetLayerEnabled(LabelLayer::IdType labelLayerId, bool enabled);
22 
23  bool IsLayerEnabled(LabelLayer::IdType labelLayerId) const;
24 
25  void RegisterChangedCallback(CallbackType& callback);
26 
27  void UnregisterChangedCallback(CallbackType& callback);
28 
29  private:
30 
31  void NotifyChanged() const;
32 
33  typedef std::map<LabelLayer::IdType, bool> LayerToDisabledType;
34  LayerToDisabledType m_layerToDisabled;
35 
36  std::vector<CallbackType*> m_callbacks;
37  };
38 
39  }
40 }