All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelPicker.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Labels.h"
6 #include "ILabelPicker.h"
7 #include "LabelViewRepositoryObserver.h"
8 #include "LabelLayer.h"
9 
10 #include <vector>
11 #include <utility>
12 
13 namespace Eegeo
14 {
15  namespace Labels
16  {
18  {
19  public:
20  LabelPicker(ILabelViewRepository& labelViewRepository);
21 
22  ~LabelPicker();
23 
24  LabelPickResult Pick(const LabelPickQuery& query);
25 
26  private:
27  void FetchViewsFromRepository();
28 
29  const ILabelViewRepository& m_labelViewRepository;
30 
31  typedef std::vector<LabelView*> LabelViewList;
32 
33  LabelViewList m_labelViews;
34 
35  typedef std::pair<const LabelView*, LabelComponent::Type> LabelComponentPair;
36  typedef std::vector<LabelComponentPair> LabelComponentPairVector;
37  LabelComponentPairVector m_pickableComponents;
38 
39  };
40  }
41 }