Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2011-11-23 04:02:35 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:28:35 +0300
commit9e713f19dfcbd8e48de23bf117741ae8586c92be (patch)
tree13a4c761db86ac52e32ce05f0e9020601596e9c3 /indexer/drawing_rules.cpp
parentf2dff53a49c8ddec3bb05916959eb731929c6c04 (diff)
New caption styles with 'primary' and 'secondary'.
Diffstat (limited to 'indexer/drawing_rules.cpp')
-rw-r--r--indexer/drawing_rules.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/indexer/drawing_rules.cpp b/indexer/drawing_rules.cpp
index 31f1da4a35..8e89e11532 100644
--- a/indexer/drawing_rules.cpp
+++ b/indexer/drawing_rules.cpp
@@ -1115,7 +1115,8 @@ namespace
return (pSrc->GetFillColor() | GetStoringAlpha(pSrc));
}
- void ConvertImpl(BaseRule const * pSrc, LineRuleProto * pDest) const
+ template <class T>
+ void ConvertLineStyle(BaseRule const * pSrc, T * pDest) const
{
pDest->set_width(ToPixels(pSrc->GetWidth()));
pDest->set_color(GetColor(pSrc));
@@ -1135,11 +1136,16 @@ namespace
}
}
+ void ConvertImpl(BaseRule const * pSrc, LineRuleProto * pDest) const
+ {
+ ConvertLineStyle(pSrc, pDest);
+ }
+
void ConvertImpl(BaseRule const * pSrc, AreaRuleProto * pDest) const
{
pDest->set_color(GetFillColor(pSrc));
if (pSrc->GetColor() != -1)
- ConvertImpl(pSrc, pDest->mutable_border());
+ ConvertLineStyle(pSrc, pDest->mutable_border());
}
void ConvertImpl(BaseRule const * pSrc, SymbolRuleProto * pDest) const
@@ -1150,7 +1156,7 @@ namespace
}
template <class T>
- void ConvertCaptionT(BaseRule const * pSrc, T * pDest) const
+ void ConvertCaptionStyle(BaseRule const * pSrc, T * pDest) const
{
pDest->set_height(ToPixels(pSrc->GetTextHeight()));
pDest->set_color((pSrc->GetFillColor() != -1) ? GetFillColor(pSrc) : 0);
@@ -1161,12 +1167,12 @@ namespace
void ConvertImpl(BaseRule const * pSrc, CaptionRuleProto * pDest) const
{
- ConvertCaptionT(pSrc, pDest);
+ ConvertCaptionStyle(pSrc, pDest->mutable_primary());
}
void ConvertImpl(BaseRule const * pSrc, PathTextRuleProto * pDest) const
{
- ConvertCaptionT(pSrc, pDest);
+ ConvertCaptionStyle(pSrc, pDest->mutable_primary());
}
void ConvertImpl(BaseRule const * pSrc, CircleRuleProto * pDest) const
@@ -1278,7 +1284,8 @@ namespace
return (255 - c);
}
- void GetPattern(LineRuleProto const & ln, vector<double> & v, double & offset)
+ template <class T>
+ void GetPattern(T const & ln, vector<double> & v, double & offset)
{
offset = 0.0;
if (ln.has_dashdot())
@@ -1379,22 +1386,24 @@ namespace
template <class T> class CaptionT : public MyBase
{
T m_caption;
+ inline CaptionDefProto const & primary() const { return m_caption.primary(); }
+
public:
CaptionT(T const & r) : m_caption(r) {}
virtual int GetColor() const
{
- if (m_caption.has_stroke_color())
- return m_caption.stroke_color();
+ if (primary().has_stroke_color())
+ return primary().stroke_color();
return -1;
}
virtual int GetFillColor() const
{
- return m_caption.color();
+ return primary().color();
}
virtual double GetTextHeight() const
{
- return m_caption.height();
+ return primary().height();
}
virtual unsigned char GetAlpha() const
{