From 9c39d4ebd2c89e94e2440891eacba0b40a370c20 Mon Sep 17 00:00:00 2001 From: artemp Date: Thu, 24 Jul 2014 12:00:46 +0100 Subject: [PATCH] collect expressions from format_properties --- include/mapnik/text/text_properties.hpp | 3 +++ src/text/text_properties.cpp | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/mapnik/text/text_properties.hpp b/include/mapnik/text/text_properties.hpp index eb8a65925..8f85794ac 100644 --- a/include/mapnik/text/text_properties.hpp +++ b/include/mapnik/text/text_properties.hpp @@ -68,6 +68,8 @@ struct MAPNIK_DECL format_properties void from_xml(xml_node const& sym, fontset_map const& fontsets); void to_xml(boost::property_tree::ptree & node, bool explicit_defaults, format_properties const& dfl = format_properties()) const; + // collect expressions + void add_expressions(expression_set & output) const; // expressions symbolizer_base::value_type text_size; symbolizer_base::value_type character_spacing; @@ -79,6 +81,7 @@ struct MAPNIK_DECL format_properties symbolizer_base::value_type fill; symbolizer_base::value_type halo_fill; // + std::string face_name; boost::optional fontset; text_transform_e text_transform; //Per expression diff --git a/src/text/text_properties.cpp b/src/text/text_properties.cpp index 0f4cef48a..d5dc5a83c 100644 --- a/src/text/text_properties.cpp +++ b/src/text/text_properties.cpp @@ -206,7 +206,7 @@ void text_symbolizer_properties::to_xml(boost::property_tree::ptree &node, void text_symbolizer_properties::add_expressions(expression_set & output) const { layout_defaults.add_expressions(output); - //format_defaults.add_expressions(output); FIXME + format_defaults.add_expressions(output); if (tree_) tree_->add_expressions(output); } @@ -355,4 +355,18 @@ void format_properties::to_xml(boost::property_tree::ptree & node, bool explicit } } +void format_properties::add_expressions(expression_set & output) const +{ + if (is_expression(text_size)) output.insert(boost::get(text_size)); + if (is_expression(character_spacing)) output.insert(boost::get(character_spacing)); + if (is_expression(line_spacing)) output.insert(boost::get(line_spacing)); + if (is_expression(halo_radius)) output.insert(boost::get(halo_radius)); + if (is_expression(text_opacity)) output.insert(boost::get(text_opacity)); + if (is_expression(halo_opacity)) output.insert(boost::get(halo_opacity)); + if (is_expression(wrap_char)) output.insert(boost::get(wrap_char)); + if (is_expression(fill)) output.insert(boost::get(fill)); + if (is_expression(halo_fill)) output.insert(boost::get(halo_fill)); +} + + } //ns mapnik