All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelViewFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 
7 #include "Types.h"
8 #include "Labels.h"
9 #include "Text.h"
10 #include "Fonts.h"
11 
12 #include <string>
13 #include <vector>
14 
15 namespace Eegeo
16 {
17  namespace Labels
18  {
20  {
21  public:
22  virtual ~ILabelViewFactory() {;}
23 
24  virtual LabelView* Create(const IAnchoredLabel& anchoredLabel, const std::string& styleName) = 0;
25  };
26 
28  {
29  public:
30 
32  const ILabelStyleRepository& labelStyleRepository,
33  const std::vector<const ILabelAnchorFilterModel*>& labelHiddenFilterModels,
34  const std::string& defaultLabelStyleName);
35 
36  LabelView* Create(const IAnchoredLabel& anchoredLabel, const std::string& labelStyleName);
37 
38  private:
39  bool ShouldCreateLabelHidden(const IAnchoredLabel& anchoredLabel) const;
40 
41  const LabelStyle* GetLabelStyleOrDefault(const std::string& labelStyleName);
42  const ILabelStyleRepository& m_labelStyleRepository;
43  std::vector<const ILabelAnchorFilterModel*> m_labelHiddenFilterModels;
44  std::string m_defaultLabelStyleName;
45  };
46  }
47 }