|
| NodeSVG (svg::tag_t t=svg::UNDEFINED) |
| Default constructor. Create a node of given type.
|
|
| NodeSVG (const NodeSVG &node) |
| Copy constructor.
|
|
bool | isAbstract () |
|
NodeSVG & | operator= (const NodeSVG &node) |
| Copy data from a node. (Does not copy subtree.)
|
|
NodeSVG & | operator= (const std::initializer_list< Variable::init_pair_t > &l) |
| Copy data from a node. (Does not copy subtree.)
|
|
template<class T > |
NodeSVG & | operator= (const T &arg) |
|
virtual void | setAttribute (const std::string &key, const std::string &value) override |
| Set attribute value, handling units in string arguments, like in "50%" or "640px". More...
|
|
virtual void | setAttribute (const std::string &key, const char *value) override |
| Set attribute value, handling units in string arguments, like in "50%" or "640px". More...
|
|
const BBoxSVG & | getBoundingBox () const |
| Get position (x,y), width and height of an object.
|
|
BBoxSVG & | getBoundingBox () |
| Get position (x,y), width and height of an object.
|
|
template<typename T > |
void | setBoundingBox (const drain::Box< T > &b) |
| Set position (x,y), width and height of an object.
|
|
template<typename T > |
void | setLocation (const drain::Point2D< T > &point) |
| Set position (x,y) of an object.
|
|
template<typename T > |
void | setLocation (const T &x, const T &y) |
|
template<typename T > |
void | setFrame (const drain::Frame2D< T > &frame) |
|
template<typename T > |
void | setFrame (const T &w, const T &h) |
|
template<typename T > |
void | setWidth (T w) |
|
svg::coord_t | getWidth () |
|
template<typename T > |
void | setMargin (T w) |
| Set margin of a TEXT element (non-standard).
|
|
svg::coord_t | getMargin () |
| Get margin of a TEXT element (non-standard).
|
|
template<typename T > |
void | setHeight (T h) |
|
svg::coord_t | getHeight () |
|
void | setFontSize (svg::coord_t size, svg::coord_t elemHeight=0.0) |
| Sets font size and also text elem "height".
|
|
virtual void | specificAttributesToStream (std::ostream &ostr) const override |
| Write transform, in addition to XML::ClassList. More...
|
|
std::map< int, std::string > | tags |
|
const NodeXML< drain::image::svg::tag_t >::xml_default_elem_map_t | xml_default_elems |
|
const NodeXML< image::svg::tag_t >::xml_default_elem_map_t | xml_default_elems |
|
const NodeXML< BaseHTML::tag_t >::xml_default_elem_map_t | xml_default_elems |
|
const NodeXML< BaseHTML::tag_t >::xml_default_elem_map_t | xml_default_elems |
|
const NodeXML< int >::xml_default_elem_map_t | xml_default_elems |
|
| NodeXML (const elem_t &t=elem_t(0)) |
|
| NodeXML (const NodeXML &node) |
|
| NodeXML (const intval_t &t=intval_t(0)) |
|
| NodeXML (const NodeXML &node) |
|
virtual void | setType (const elem_t &t) |
|
void | setType (const T2 &t) |
|
const elem_t & | getType () const |
|
const intval_t & | getType () const |
|
bool | typeIs (const elem_t &t) const |
|
bool | typeIs (const T2 &arg, const T3... args) const |
| Return true, if type is any of the arguments.
|
|
bool | isComment () const |
|
bool | isComment () const |
|
bool | isCText () const |
|
bool | isCText () const |
|
bool | isUndefined () const |
|
bool | isUndefined () const |
|
bool | isSelfClosing () const |
|
bool | isSelfClosing () const |
|
bool | isSelfClosing () const |
|
bool | isSelfClosing () const |
|
const std::string & | getTag () const |
|
virtual const std::string & | getTag () const |
|
const std::string & | getTag () const |
|
void | set (const NodeXML &node) |
|
void | set (const elem_t &type) |
|
void | set (const std::string &s) |
|
void | set (const char *s) |
|
void | set (const drain::Castable &s) |
|
void | set (const std::initializer_list< Variable::init_pair_t > &l) |
|
void | set (const std::map< std::string, X > &args) |
|
void | set (const std::string &key, const V &value) |
|
void | set (const NodeXML &node) |
|
void | set (const intval_t &type) |
|
void | set (const std::string &s) |
|
void | set (const char *s) |
|
void | set (const drain::Castable &s) |
|
void | set (const std::initializer_list< std::pair< const char *, const Variable > > &args) |
|
void | set (const std::map< std::string, V > &args) |
|
void | set (const std::string &key, const V &value) |
|
NodeXML & | operator= (const svg::tag_t &x) |
|
NodeXML & | operator= (const Castable &c) |
|
NodeXML & | operator= (const std::string &s) |
|
NodeXML & | operator= (const char *s) |
|
NodeXML & | operator= (const std::initializer_list< std::pair< const char *, const drain::Variable > > &l) |
|
NodeXML & | operator= (const NodeXML &node) |
|
NodeXML & | operator= (const xml_tag_t &x) |
|
NodeXML & | operator= (const Castable &c) |
|
NodeXML & | operator= (const std::string &s) |
|
NodeXML & | operator= (const char *s) |
|
NodeXML & | operator= (const std::initializer_list< std::pair< const char *, const drain::Variable > > &l) |
|
NodeXML & | setComment (const std::string &text="") |
| Make this node a comment. Contained tree will not be delete. In current version, attributes will be rendered. More...
|
|
NodeXML & | setText (const S &value) |
| Assign the text content of this node. If the node type is undefined, set it to CTEXT. More...
|
|
NodeXML & | setText (const char *value) |
|
void | setStyle (const S &value) |
|
void | setStyle (const std::string &value) |
|
void | setStyle (const char *value) |
|
void | setStyle (const std::string &key, const std::string &value) |
|
void | setStyle (const std::string &key, const std::initializer_list< V > &l) |
| Set style of an element. More...
|
|
void | setStyle (const std::string &key, const V &value) |
| For element/class/id, assign ...
|
|
void | setStyle (const std::initializer_list< std::pair< const char *, const drain::Variable > > &l) |
|
std::ostream & | toStream (std::ostream &ostr, const svg::tag_t &tree, const std::string &defaultTag, int indent) |
| XML output function shared for all XML documents, ie versions defined in subclasses. More...
|
|
std::ostream & | toStream (std::ostream &ostr, const TR &tree, const std::string &defaultTag, int indent) |
| XML output function shared for all XML documents, ie versions defined in subclasses. More...
|
|
svg::tag_t | getNativeType () const |
|
bool | isStyle () const |
|
std::ostream & | nodeToStream (std::ostream &ostr) const |
| Note: Not designed for XML output, this is more for debugging (in tree dumps),. More...
|
|
void | setId () |
| Makes ID a visible attribute. More...
|
|
void | setId (const std::string &s) |
| Makes ID a visible attribute, with a given value.
|
|
template<char C = '\0', typename ... TT> |
void | setId (const TT &...args) |
|
const std::string & | getId () const |
| Returns ID of this element. Hopefully a unique ID...
|
|
bool | empty () const |
|
const map_t & | getAttributes () const |
|
map_t & | getAttributes () |
|
template<class V > |
void | setAttribute (const std::string &key, const V &value) |
| "Final" implementation.
|
|
void | remove (const std::string &s) |
|
const drain::FlexibleVariable & | get (const std::string &key) const |
|
drain::FlexibleVariable & | get (const std::string &key) |
|
template<class V > |
V | get (const std::string &key, const V &defaultValue) const |
|
std::string | get (const std::string &key, const char *defaultValue) const |
|
template<typename ... TT> |
void | addClass (const TT &... args) |
| Style class.
|
|
template<class V > |
bool | hasClass (const V &cls) const |
|
void | removeClass (const std::string &s) |
|
void | clearClasses () |
|
virtual void | clear () |
| Clear style, class and string data but keep the element type. More...
|
|
void | reset () |
| Clear style, class and string data as well as the element type. More...
|
|
void | setId () |
| Makes ID a visible attribute. More...
|
|
void | setId (const std::string &s) |
| Makes ID a visible attribute, with a given value.
|
|
template<char C = '\0', typename ... TT> |
void | setId (const TT &...args) |
| Concatenates arguments to an id.
|
|
const std::string & | getId () const |
| Returns ID of this element. Hopefully a unique ID...
|
|
template<class ... T> |
void | setComment (const T &...args) |
| Make this node a comment. Contained tree will not be deleted. In current version, attributes WILL be rendered. More...
|
|
void | setText (const std::string &s) |
| Assign the text content of this node. If the node type is undefined, set it to CTEXT. More...
|
|
template<class ... T> |
void | setText (const T &...args) |
|
void | setUrl (const std::string &s) |
|
template<class ... T> |
void | setName (const T &...args) |
|
virtual bool | empty () const |
|
const map_t & | getAttributes () const |
|
map_t & | getAttributes () |
|
const drain::FlexibleVariable & | get (const std::string &key) const |
|
drain::FlexibleVariable & | get (const std::string &key) |
|
template<class V > |
V | get (const std::string &key, const V &defaultValue) const |
|
std::string | get (const std::string &key, const char *defaultValue) const |
|
template<class V > |
void | setAttribute (const std::string &key, const V &value) |
| "Final" implementation.
|
|
void | removeAttribute (const std::string &s) |
|
const StyleXML & | getStyle () const |
|
void | setStyle (const StyleXML &s) |
|
void | setStyle (const std::string &value) |
|
void | setStyle (const char *value) |
|
void | setStyle (const std::string &key, const std::string &value) |
|
template<class V > |
void | setStyle (const std::string &key, const std::initializer_list< V > &l) |
| Set style of an element. More...
|
|
template<class V > |
void | setStyle (const std::string &key, const V &value) |
| For element/class/id, assign ...
|
|
void | setStyle (const std::initializer_list< std::pair< const char *, const drain::Variable > > &args) |
|
const ClassListXML & | getClasses () const |
|
template<typename ... TT> |
void | addClass (const TT &... args) |
|
template<class V > |
bool | hasClass (const V &cls) const |
|
void | removeClass (const std::string &s) |
|
void | clearClasses () |
|
template<class T > |
bool | findById (const T &t, const std::string &id, typename T::path_t &result, const typename T::path_t &path) |
|
template<class T > |
bool | findById (const T &t, const std::string &id, NodeXML<>::path_list_t &result, const path_t &path) |
|
template<class T , class N > |
bool | findByTag (const T &t, const N &tag, NodeXML<>::path_list_t &result, const path_t &path) |
|
template<class T , class N > |
bool | findByTags (const T &t, const std::set< N > &tags, NodeXML<>::path_list_t &result, const path_t &path) |
|
template<class T2 , class C > |
bool | findByClass (const T2 &t, const C &cls, XML::path_list_t &result, const path_t &path) |
|
template<class T > |
void | setAlignAnchor (const T &pathElem) |
| Mark one of the elements of this object (SVG or G) as a decisive position.
|
|
template<class T > |
void | setAlignAnchorHorz (const T &pathElem) |
|
template<class T > |
void | setAlignAnchorVert (const T &pathElem) |
|
const std::string & | getAlignAnchorHorz () const |
|
const std::string & | getAlignAnchorVert () const |
|
const std::string & | getAlignStr () const |
|
template<typename OBJ , typename A , typename V > |
void | setAlign (const OBJ &owner, const A &axis, const V &value) |
| Low-level, "atomic" setter of alignment for OBJECT itself or its ANCHOR object.
|
|
void | setAlign (const AlignBase::Axis &axis, const AlignBase::Pos &pos, Topol topol=Topol::INSIDE) |
| Set a single alignment setting. "Intermediate-level": axis and pos are given separately. More...
|
|
template<typename ... T, typename AX , AlignBase::Axis A> |
void | setAlign (const Alignment< AX, A > &align, const T... args) |
| NEW High-level, user friendlier interface for setting INSIDE the alignments for both OBJECT itself and its ANCHOR object.
|
|
template<typename AX1 , AlignBase::Axis A1, typename AX2 , AlignBase::Axis A2> |
void | setAlign (const Alignment< AX1, A1 > &align1, const Alignment< AX2, A2 > &align2) |
|
template<typename AX , AlignBase::Axis A> |
void | setAlign (const Alignment< AX, A > &align1, const Alignment< AX, A > &align2) |
| Compiler trap: unimplemented for two of same kind: either HorzAlign or VertAlign twice.
|
|
template<typename T > |
void | setAlign (const std::string &align, const T &topol) |
| High-level, user friendlier interface for setting the alignments for both OBJECT itself and its ANCHOR object.
|
|
void | setAlign (const std::string &align) |
| High-level, user friendly interface for setting the alignments for both OBJECT itself and its ANCHOR object. More...
|
|
bool | isAligned () const |
| Returns true, if any setting is set...
|
|
void | resetAlign () |
|
template<typename P , typename A > |
AlignBase::Pos & | getAlign (const P &pos, const A &axis) |
| Return alignment setting of an object along horizontal or vertical axis .
|
|
template<typename P , typename A > |
const AlignBase::Pos & | getAlign (const P &pos, const A &axis) const |
| Return alignment setting of an object along horizontal or vertical axis .
|
|
void | confToStream (std::ostream &ostr) const |
|
template<typename OBJ , typename A > |
AlignBase::Pos & | getAlign (const OBJ &owner, const A &axis) |
|
template<typename OBJ , typename A > |
const AlignBase::Pos & | getAlign (const OBJ &owner, const A &axis) const |
|
|
virtual void | handleType (const svg::tag_t &t) override final |
|
virtual void | updateAlign () override |
|
NodeXML< int >::xmldoc_attrib_map_t | xmldoc_attribs |
|
NodeXML< int >::xmldoc_attrib_map_t | xmldoc_attribs |
|
bool | typeIs () const |
|
ref_t & | link (const std::string &key, F &x) |
| Associates a map entry with a variable. More...
|
|
ref_t & | link (const std::string &key, void *ptr, const std::type_info &type, size_t count=1) |
| Create a reference to a basic type or std::string. (Also for basetype arrays.)
|
|
void | unlink (const std::string &key) |
|
void | copyStruct (const ReferenceMap2< FlexibleVariable > &m, const T2 &src, T2 &dst, extLinkPolicy policy=RESERVE) |
| Experimental. Copies references and values of a structure to another. More...
|
|
| SmartMap (char separator='\0', char arraySeparator=':') |
|
| SmartMap (const SmartMap &smap) |
|
bool | hasKey (const std::string &key) const |
|
std::string | get (const std::string &key, const std::string &defaultValue) const |
| Retrieves a value, or default value if value is unset. More...
|
|
std::string | get (const std::string &key, const char *defaultValue) const |
|
T2 | get (const std::string &key, const T2 &defaultValue) const |
| Retrieves a value, if set, else returns the given default value. More...
|
|
virtual FlexibleVariable & | operator[] (const std::string &key) |
| Returns an element. Creates one, conditionally. More...
|
|
virtual const FlexibleVariable & | operator[] (const std::string &key) const |
| Unlike with std::map, operator[] const is defined, returning reference to a static empty instance.
|
|
virtual const keylist_t & | getKeyList () const |
| Derived versions may produce an ordered set of keys.
|
|
const map_t & | getMap () const |
|
void | exportMap (std::map< std::string, T2 > &m) const |
| Copies the contents to another map.
|
|
void | importEntries (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) |
| Assigns a value to given key; if the entry does not exist, tries to create it with directly with operator[]. More...
|
|
void | importEntries (const std::list< std::string > &entries, char assignmentSymbol='=') |
|
void | importMap (const std::map< std::string, S > &m) |
| Assign values from a map, overriding existing entries. More...
|
|
void | importCastableMap (const drain::SmartMap< T2 > &m) |
| Assign values from a map, possibly extending the map. More...
|
|
void | updateFromMap (const std::map< std::string, T2 > &m) |
| Assign values from a map. Updates existing entries only. More...
|
|
void | updateFromCastableMap (const drain::SmartMap< T2 > &m) |
| Convenience.
|
|
void | setValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) |
| Sets values. If strictness==STRICTLY_CLOSED, throws exception if tries to assign a non-existing entry.
|
|
void | setValues (const char *entries, char assignmentSymbol='=', char separatorSymbol=0) |
|
void | setValuesSEQ (const S &sequence) |
|
void | updateValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) |
| Sets applicable values ie. modifies existing entries only. In ordered maps, skips extra entries silently.
|
|
void | getKeys (std::ostream &ostr) const |
|
std::string | getKeys () const |
| Convenience function for std::string output.
|
|
void | getValues (std::ostream &ostr) const |
| Dumps the values.
|
|
std::string | getValues () const |
| Convenience function for std::string output.
|
|
std::ostream & | toStream (std::ostream &ostr, char equal='=', char startChar='{', char endChar='}', char separatorChar=',') const |
| Note: parameters discarded.
|
|
std::string | toStr (char equal='=', char start=0, char end=0, char separator=0) const |
|
void | dump (std::ostream &ostr=std::cout) const |
| Write map as a JSON code. More...
|
|
void | updateAlignStr () |
|
template<typename P , typename A , typename V > |
void | modifyAlign (const P &owner, const A &axis, const V &value) |
| Change alignment configuration without updating the alignStr.
|
|
|
typedef svg::tag_t | elem_t |
| Tag type, CTEXT or COMMENT.
|
|
typedef NodeXML< svg::tag_t > | xml_node_t |
|
typedef NodeXML< svg::tag_t > | xml_node_t |
|
typedef UnorderedMultiTree< NodeXML< svg::tag_t >, false, path_t > | xml_tree_t |
|
typedef UnorderedMultiTree< xml_node_t, false, path_t > | xml_tree_t |
|
typedef std::map< svg::tag_t, std::string > | tag_map_t |
|
typedef svg::tag_t | xml_tag_t |
|
typedef drain::Path< std::string,'/'> | path_t |
|
typedef std::map< xml_tag_t, xml_tag_t > | xml_default_elem_map_t |
|
typedef ReferenceMap2< FlexibleVariable > | map_t |
|
typedef drain::Path< std::string,'/'> | path_t |
| Tree path type.
|
|
typedef path_t::elem_t | path_elem_t |
|
typedef std::list< path_t > | path_list_t |
|
typedef int | intval_t |
|
typedef ReferenceMap2< FlexibleVariable > | map_t |
|
enum | Owner { OBJECT = 0
, ANCHOR = 1
} |
|
enum | Topol { INSIDE = 0
, OUTSIDE = 1
, UNDEFINED_TOPOL = 2
} |
|
typedef Alignment< const AlignBase::Axis, AlignBase::Axis::HORZ > | HorzAlign |
|
typedef Alignment< const AlignBase::Axis, AlignBase::Axis::VERT > | VertAlign |
|
static const std::string & | getTag (unsigned int index) |
|
static const std::string & | getTag (const svg::tag_t &type) |
|
static std::ostream & | docToStream (std::ostream &ostr, const V &tree) |
|
static std::ostream & | docToStream (std::ostream &ostr, const V &tree) |
|
static std::ostream & | toStream (std::ostream &ostr, const V &t, const std::string &defaultTag="", int indent=0) |
| "Forward definition" of Tree::toOstream
|
|
static std::ostream & | toStream (std::ostream &ostr, const V &t, const std::string &defaultTag="", int indent=0) |
| "Forward definition" of Tree::toOstream
|
|
static std::ostream & | docTypeToStream (std::ostream &ostr) |
| Write the XML definition beginning any XML document. More...
|
|
static std::ostream & | docTypeToStream (std::ostream &ostr) |
| Write the XML definition beginning any XML document. More...
|
|
static const std::pair< key_t, NodeXML< svg::tag_t > > & | entry () |
|
template<class V > |
static void | attribToStream (std::ostream &ostr, const std::string &key, const V &value) |
|
static int | getCount () |
|
template<class V > |
static bool | findById (const V &tree, const std::string &tag, typename V::path_t &result, const typename V::path_t &path=path_t()) |
| Find the first occurrence of given id using recursive breath-first search. More...
|
|
template<class V > |
static bool | findById (const V &tree, const std::string &tag, path_list_t &result, const path_t &path=path_t()) |
| Find the occurrence(s) of given ID using recursive breath-first search. More...
|
|
template<class V , class T > |
static bool | findByTag (const V &tree, const T &tag, path_list_t &result, const path_t &path=path_t()) |
|
template<class V , class T > |
static bool | findByTags (const V &tree, const std::set< T > &tags, path_list_t &result, const path_t &path=path_t()) |
| "Forward definition" More...
|
|
template<class T2 , class C > |
static bool | findByClass (const T2 &t, const C &cls, std::list< path_elem_t > &result) |
| Finds child elements in an XML structure by class name. More...
|
|
template<class V , class C > |
static bool | findByClass (const V &t, const C &cls, path_list_t &result, const path_t &path=path_t()) |
| Finds elements recursively in an XML structure by class name supplied as an enumeration type. More...
|
|
static int | getCount () |
|
template<class V > |
static void | xmlAttribToStream (std::ostream &ostr, const std::string &key, const V &value) |
|
template<typename TX > |
static TX & | xmlAssign (TX &dst, const TX &src) |
| Assign another tree structure to another. More...
|
|
template<typename TX > |
static TX & | xmlAssign (TX &dst, const typename TX::xml_node_t &src) |
| Assign another tree structure to another. More...
|
|
template<typename X > |
static X & | xmlAssignNode (X &dst, const X &src) |
| Assign another tree structure to another. More...
|
|
template<typename TX , typename V > |
static TX & | xmlAssign (TX &tree, const V &arg) |
| Assign another tree structure to another. More...
|
|
template<typename TX > |
static TX & | xmlAssign (TX &tree, std::initializer_list< std::pair< const char *, const Variable > > l) |
| Tree. More...
|
|
template<typename TX > |
static TX & | xmlSetType (TX &tree, const typename TX::node_data_t::xml_tag_t &type) |
|
template<typename T > |
static T & | xmlAddChild (T &tree, const std::string &key) |
|
template<typename N > |
static N::xml_tag_t | xmlRetrieveDefaultType (const N &parentNode) |
|
typedef std::map< std::string, std::string > | xmldoc_attrib_map_t |
|
typedef std::map< std::string, std::string > | xmldoc_attrib_map_t |
| NOTE: these could/should be templated, in TreeXML<...> right?
|
|
enum | extLinkPolicy |
|
typedef FlexibleVariable | ref_t |
|
typedef SmartMap< FlexibleVariable > | map_t |
|
typedef SmartMap< FlexibleVariable > | smap_t |
|
typedef std::map< std::string, FlexibleVariable > | map_t |
|
typedef map_t::key_type | key_t |
|
typedef map_t::mapped_type | value_t |
|
typedef map_t::value_type | entry_t |
|
typedef std::list< std::string > | keylist_t |
|
typedef map_t::iterator | iterator |
| Needed?
|
|
typedef map_t::const_iterator | const_iterator |
|
typedef int | bitvect_t |
|
typedef std::vector< AlignBase::Pos > | align_vect_t |
|
typedef std::vector< align_vect_t > | align_conf_t |
|
static const std::string & | getElem (const std::string &s) |
|
static const char * | getElem (const char *s) |
|
template<class T > |
static const std::string & | getElem (const T &type) |
|
static xmldoc_attrib_map_t | xmldoc_attribs |
|