/usr/include/svgpp/definitions.hpp is in libsvgpp-dev 1.2.3+dfsg1-3ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | // Copyright Oleg Maximenko 2014.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
// See http://github.com/svgpp/svgpp for library home page.
#pragma once
#include <svgpp/detail/attribute_id.hpp>
#include <svgpp/detail/element_type_id.hpp>
#include <boost/parameter.hpp>
#include <boost/mpl/vector.hpp>
namespace svgpp { namespace tag
{
namespace element
{
struct any { protected: any() {} };
#define SVGPP_ON(element_name, str) struct element_name: any { \
static const detail::element_type_id element_id = detail::element_type_id_## element_name; };
#include <svgpp/detail/dict/enumerate_all_elements.inc>
#undef SVGPP_ON
} // namespace element
namespace attribute
{
#define SVGPP_ON(attribute_name, attribute_string) \
struct attribute_name { \
static const detail::attribute_id attribute_id = detail::attribute_id_## attribute_name; };
#define SVGPP_ON_NS(ns, attribute_name, attribute_string) \
namespace ns { struct attribute_name { \
static const detail::attribute_id attribute_id = detail::attribute_id_ ## ns ## _ ## attribute_name; }; }
#define SVGPP_ON_STYLE(attribute_name, attribute_string) SVGPP_ON(attribute_name, attribute_string)
#include <svgpp/detail/dict/enumerate_all_attributes.inc>
#undef SVGPP_ON
#undef SVGPP_ON_NS
#undef SVGPP_ON_STYLE
} // namespace attribute
namespace length_units
{
struct em {};
struct ex {};
struct px {};
struct in {};
struct cm {};
struct mm {};
struct pt {};
struct pc {};
struct percent {};
struct none {};
}
namespace angle_units
{
struct deg {};
struct grad {};
struct rad {};
}
namespace source
{
struct any { protected: any() {} };
struct attribute: any {};
struct css: any {};
}
namespace coordinate
{
struct absolute { static const bool is_absolute = true; };
struct relative { static const bool is_absolute = false; };
}
namespace type
{
struct number;
struct length;
struct integer;
struct transform_list;
struct path_data;
struct number_optional_number;
struct iri;
struct funciri;
struct color;
struct color_optional_icc_color;
struct angle;
struct paint;
struct percentage_or_length; // Length in CSS property can't be percentage itself
struct clock_value;
struct string;
template<class Type> struct list_of;
template<class LiteralsList> struct literal_enumeration;
#define SVGPP_TYPE_OR_LITERAL_ARITY 10
template<class Type, class Value,
BOOST_PP_ENUM_BINARY_PARAMS(SVGPP_TYPE_OR_LITERAL_ARITY, class Value, = boost::mpl::na BOOST_PP_INTERCEPT)>
struct type_or_literal;
}
// helper tags
struct min_tag {};
struct mid_tag {};
struct max_tag {};
namespace value
{
#define SVGPP_ON_VALUE(tag) struct tag {};
#define SVGPP_ON_VALUE2(tag, string) SVGPP_ON_VALUE(tag)
#include <svgpp/detail/dict/enumerate_literal_values.inc>
#undef SVGPP_ON_VALUE
#undef SVGPP_ON_VALUE2
struct rect {}; // Used as shape in 'clip' property
struct underline {};
struct overline {};
struct line_through {};
struct blink {};
struct meet {};
struct slice {};
struct xMinYMin { typedef min_tag x; typedef min_tag y; };
struct xMidYMin { typedef mid_tag x; typedef min_tag y; };
struct xMaxYMin { typedef max_tag x; typedef min_tag y; };
struct xMinYMid { typedef min_tag x; typedef mid_tag y; };
struct xMidYMid { typedef mid_tag x; typedef mid_tag y; };
struct xMaxYMid { typedef max_tag x; typedef mid_tag y; };
struct xMinYMax { typedef min_tag x; typedef max_tag y; };
struct xMidYMax { typedef mid_tag x; typedef max_tag y; };
struct xMaxYMax { typedef max_tag x; typedef max_tag y; };
}
namespace length_dimension
{
struct any { protected: any() {} };
// Percentage length value should correspond to one of the following to be correctly converted to user coordinate system
struct width : any {};
struct height : any {};
struct not_width_nor_height : any {};
}
struct iri_fragment {}; // Prefixes fragment part of IRI in arguments list
struct text_content; // Used in child element sequences together with tag::element::* tags to
// mark elements that should handle character data content
}} // namespace tag
|