tdf#159660: Add support for feMerge and feMergeNode
[libreoffice.git] / svgio / inc / svgtoken.hxx
blob7dc616db149e25f5638ea98604fba016d10dbea5
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #pragma once
22 #include <rtl/ustring.hxx>
24 namespace svgio::svgreader
26 // SVG token mapper with hashing
27 enum class SVGToken
29 Unknown = 0,
31 // diverse attribute tokens
32 Width,
33 Height,
34 ViewBox,
35 Transform,
36 Style,
37 Display, // #i121656#
41 Xmlns,
42 Version,
43 Id,
44 In,
45 Result,
46 Rx,
47 Ry,
48 Points,
49 Dx,
50 Dy,
51 Rotate,
52 TextLength,
53 LengthAdjust,
54 Font,
55 FontFamily,
56 FontSize,
57 FontSizeAdjust,
58 FontStretch,
59 FontStyle,
60 FontVariant,
61 FontWeight,
62 Direction,
63 LetterSpacing,
64 TextDecoration,
65 UnicodeBidi,
66 WordSpacing,
67 Character, // not in the hash, just for simple text handling in SvgCharacterNode
68 Tspan,
69 Tref,
70 TextPath,
71 StartOffset,
72 Method,
73 Spacing,
74 StdDeviation,
75 TextAlign,
76 PathLength,
77 Type,
78 Class,
79 TextAnchor,
80 XmlSpace,
81 Color,
82 ClipPathNode,
83 ClipPathProperty,
84 FeColorMatrix,
85 FeDropShadow,
86 FeFlood,
87 FeImage,
88 FeGaussianBlur,
89 FeMerge,
90 FeMergeNode,
91 FeOffset,
92 Filter,
93 FloodColor,
94 FloodOpacity,
95 Mask,
96 ClipPathUnits,
97 MaskUnits,
98 MaskContentUnits,
99 ClipRule,
100 Marker,
101 MarkerStart,
102 MarkerMid,
103 MarkerEnd,
104 RefX,
105 RefY,
106 MarkerUnits,
107 MarkerWidth,
108 MarkerHeight,
109 Orient,
110 Pattern,
111 PatternUnits,
112 PatternContentUnits,
113 PatternTransform,
114 Opacity,
115 Visibility,
116 Title,
117 Desc,
118 Overflow,
120 // AspectRatio and params
121 PreserveAspectRatio,
122 Defer,
123 None,
124 XMinYMin,
125 XMidYMin,
126 XMaxYMin,
127 XMinYMid,
128 XMidYMid,
129 XMaxYMid,
130 XMinYMax,
131 XMidYMax,
132 XMaxYMax,
133 Meet,
134 Slice,
135 Values,
137 // structural elements
138 Defs,
140 Svg,
141 Symbol,
142 Switch,
143 Use,
146 // shape elements
147 Circle,
148 Ellipse,
149 Line,
150 Path,
151 Polygon,
152 Polyline,
153 Rect,
154 Image,
156 // gradient elements and tokens
157 LinearGradient,
158 RadialGradient,
159 Stop,
160 Offset,
170 GradientUnits,
171 GradientTransform,
172 SpreadMethod,
173 Href,
174 XlinkHref,
175 StopColor,
176 StopOpacity,
178 // fill tokens
179 Fill,
180 FillOpacity,
181 FillRule,
183 // stroke tokens
184 Stroke,
185 StrokeDasharray,
186 StrokeDashoffset,
187 StrokeLinecap,
188 StrokeLinejoin,
189 StrokeMiterlimit,
190 StrokeOpacity,
191 StrokeWidth,
193 // text tokens
194 Text,
195 BaselineShift,
196 DominantBaseline
199 SVGToken StrToSVGToken(std::u16string_view rStr, bool bIgnoreCase);
200 OUString SVGTokenToStr(const SVGToken& rToken);
202 } // end of namespace svgio::svgreader
204 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */