38#ifndef DRAIN_STYLE_XML
39#define DRAIN_STYLE_XML
43#include <drain/Sprinter.h>
44#include <drain/FlexibleVariable.h>
46#include "ReferenceMap.h"
58class StyleXML :
public std::map<std::string,Variable> {
65 static const SprinterLayout styleLineLayout;
66 static const SprinterLayout styleRecordLayout;
67 static const SprinterLayout styleRecordLayoutActual;
70 template <
class ...TT>
74 argsToStream(ostr, args...);
79 const std::string TEXT_ANCHOR;
83 T get(
const key_type & key,
const T & defaultValue = T())
const {
84 const const_iterator it = this->find(key);
85 if (it != this->end()){
94 std::string get(
const key_type & key,
const char * defaultValue)
const {
95 return get(key, std::string(defaultValue));
102 template <
class T,
class ...TT>
104 void argsToStream(std::ostream & ostr,
const T & arg,
const TT... args){
106 argsToStream(ostr, args...);
110 void argsToStream(std::ostream & ostr){
117std::ostream & operator<<(std::ostream &ostr,
const StyleXML & style){
static std::ostream & toStream(std::ostream &ostr, const std::initializer_list< T > &x, const SprinterLayout &layout=defaultLayout)
New (experimental)
Definition Sprinter.h:424
static const SprinterLayout xmlAttributeLayout
Like attributes in XML (HTML, SVG, ...) tags.
Definition Sprinter.h:231
static void commentToStream(std::ostream &ostr, const TT... args)
Practical utility, helps in adding C++ code commenting...
Definition StyleXML.h:72
Definition DataSelector.cpp:1277