Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
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/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
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 .
18 : */
19 :
20 : #include <svgio/svgreader/svgtoken.hxx>
21 :
22 : namespace svgio
23 : {
24 : namespace svgreader
25 : {
26 8 : static OUString aSVGStrWidth("width");
27 8 : static OUString aSVGStrHeight("height");
28 8 : static OUString aSVGStrViewBox("viewBox");
29 8 : static OUString aSVGStrTransform("transform");
30 8 : static OUString aSVGStrStyle("style");
31 8 : static OUString aSVGStrDisplay("display"); // #i121656#
32 8 : static OUString aSVGStrD("d");
33 8 : static OUString aSVGStrX("x");
34 8 : static OUString aSVGStrY("y");
35 8 : static OUString aSVGStrXmlns("xmlns");
36 8 : static OUString aSVGStrVersion("version");
37 8 : static OUString aSVGStrId("id");
38 8 : static OUString aSVGStrRx("rx");
39 8 : static OUString aSVGStrRy("ry");
40 8 : static OUString aSVGStrPoints("points");
41 8 : static OUString aSVGStrDx("dx");
42 8 : static OUString aSVGStrDy("dy");
43 8 : static OUString aSVGStrRotate("rotate");
44 8 : static OUString aSVGStrTextLength("textLength");
45 8 : static OUString aSVGStrLengthAdjust("lengthAdjust");
46 8 : static OUString aSVGStrFont("font");
47 8 : static OUString aSVGStrFontFamily("font-family");
48 8 : static OUString aSVGStrFontSize("font-size");
49 8 : static OUString aSVGStrFontSizeAdjust("font-size-adjust");
50 8 : static OUString aSVGStrFontStretch("font-stretch");
51 8 : static OUString aSVGStrFontStyle("font-style");
52 8 : static OUString aSVGStrFontVariant("font-variant");
53 8 : static OUString aSVGStrFontWeight("font-weight");
54 8 : static OUString aSVGStrDirection("direction");
55 8 : static OUString aSVGStrLetterSpacing("letter-spacing");
56 8 : static OUString aSVGStrTextDecoration("text-decoration");
57 8 : static OUString aSVGStrUnicodeBidi("unicode-bidi");
58 8 : static OUString aSVGStrWordSpacing("word-spacing");
59 8 : static OUString aSVGStrTspan("tspan");
60 8 : static OUString aSVGStrTref("tref");
61 8 : static OUString aSVGStrTextPath("textPath");
62 8 : static OUString aSVGStrStartOffset("startOffset");
63 8 : static OUString aSVGStrMethod("method");
64 8 : static OUString aSVGStrSpacing("spacing");
65 8 : static OUString aSVGStrTextAlign("text-align");
66 8 : static OUString aSVGStrPathLength("pathLength");
67 8 : static OUString aSVGStrType("type");
68 8 : static OUString aSVGStrClass("class");
69 8 : static OUString aSVGStrTextAnchor("text-anchor");
70 8 : static OUString aSVGStrXmlSpace("xml:space");
71 8 : static OUString aSVGStrColor("color");
72 8 : static OUString aSVGStrClipPathNode("clipPath");
73 8 : static OUString aSVGStrClipPathProperty("clip-path");
74 8 : static OUString aSVGStrMask("mask");
75 8 : static OUString aSVGStrClipPathUnits("clipPathUnits");
76 8 : static OUString aSVGStrMaskUnits("maskUnits");
77 8 : static OUString aSVGStrMaskContentUnits("maskContentUnits");
78 8 : static OUString aSVGStrClipRule("clip-rule");
79 8 : static OUString aSVGStrMarker("marker");
80 8 : static OUString aSVGStrMarkerStart("marker-start");
81 8 : static OUString aSVGStrMarkerMid("marker-mid");
82 8 : static OUString aSVGStrMarkerEnd("marker-end");
83 8 : static OUString aSVGStrRefX("refX");
84 8 : static OUString aSVGStrRefY("refY");
85 8 : static OUString aSVGStrMarkerUnits("markerUnits");
86 8 : static OUString aSVGStrMarkerWidth("markerWidth");
87 8 : static OUString aSVGStrMarkerHeight("markerHeight");
88 8 : static OUString aSVGStrOrient("orient");
89 8 : static OUString aSVGStrPattern("pattern");
90 8 : static OUString aSVGStrPatternUnits("patternUnits");
91 8 : static OUString aSVGStrPatternContentUnits("patternContentUnits");
92 8 : static OUString aSVGStrPatternTransform("patternTransform");
93 8 : static OUString aSVGStrOpacity("opacity");
94 8 : static OUString aSVGStrVisibility("visibility");
95 8 : static OUString aSVGStrTitle("title");
96 8 : static OUString aSVGStrDesc("desc");
97 :
98 8 : static OUString aSVGStrPreserveAspectRatio("preserveAspectRatio");
99 8 : static OUString aSVGStrDefer("defer");
100 8 : static OUString aSVGStrNone("none");
101 8 : static OUString aSVGStrXMinYMin("xMinYMin");
102 8 : static OUString aSVGStrXMidYMin("xMidYMin");
103 8 : static OUString aSVGStrXMaxYMin("xMaxYMin");
104 8 : static OUString aSVGStrXMinYMid("xMinYMid");
105 8 : static OUString aSVGStrXMidYMid("xMidYMid");
106 8 : static OUString aSVGStrXMaxYMid("xMaxYMid");
107 8 : static OUString aSVGStrXMinYMax("xMinYMax");
108 8 : static OUString aSVGStrXMidYMax("xMidYMax");
109 8 : static OUString aSVGStrXMaxYMax("xMaxYMax");
110 8 : static OUString aSVGStrMeet("meet");
111 8 : static OUString aSVGStrSlice("slice");
112 :
113 8 : static OUString aSVGStrDefs("defs");
114 8 : static OUString aSVGStrG("g");
115 8 : static OUString aSVGStrSvg("svg");
116 8 : static OUString aSVGStrSymbol("symbol");
117 8 : static OUString aSVGStrUse("use");
118 :
119 8 : static OUString aSVGStrCircle("circle");
120 8 : static OUString aSVGStrEllipse("ellipse");
121 8 : static OUString aSVGStrLine("line");
122 8 : static OUString aSVGStrPath("path");
123 8 : static OUString aSVGStrPolygon("polygon");
124 8 : static OUString aSVGStrPolyline("polyline");
125 8 : static OUString aSVGStrRect("rect");
126 8 : static OUString aSVGStrImage("image");
127 :
128 8 : static OUString aSVGStrLinearGradient("linearGradient");
129 8 : static OUString aSVGStrRadialGradient("radialGradient");
130 8 : static OUString aSVGStrStop("stop");
131 8 : static OUString aSVGStrOffset("offset");
132 8 : static OUString aSVGStrX1("x1");
133 8 : static OUString aSVGStrY1("y1");
134 8 : static OUString aSVGStrX2("x2");
135 8 : static OUString aSVGStrY2("y2");
136 8 : static OUString aSVGStrCx("cx");
137 8 : static OUString aSVGStrCy("cy");
138 8 : static OUString aSVGStrFx("fx");
139 8 : static OUString aSVGStrFy("fy");
140 8 : static OUString aSVGStrR("r");
141 8 : static OUString aSVGStrGradientUnits("gradientUnits");
142 8 : static OUString aSVGStrGradientTransform("gradientTransform");
143 8 : static OUString aSVGStrSpreadMethod("spreadMethod");
144 8 : static OUString aSVGStrXlinkHref("xlink:href");
145 8 : static OUString aSVGStrStopColor("stop-color");
146 8 : static OUString aSVGStrStopOpacity("stop-opacity");
147 :
148 8 : static OUString aSVGStrFill("fill");
149 8 : static OUString aSVGStrFillOpacity("fill-opacity");
150 8 : static OUString aSVGStrFillRule("fill-rule");
151 :
152 8 : static OUString aSVGStrStroke("stroke");
153 8 : static OUString aSVGStrStrokeDasharray("stroke-dasharray");
154 8 : static OUString aSVGStrStrokeDashoffset("stroke-dashoffset");
155 8 : static OUString aSVGStrStrokeLinecap("stroke-linecap");
156 8 : static OUString aSVGStrStrokeLinejoin("stroke-linejoin");
157 8 : static OUString aSVGStrStrokeMiterlimit("stroke-miterlimit");
158 8 : static OUString aSVGStrStrokeOpacity("stroke-opacity");
159 8 : static OUString aSVGStrStrokeWidth("stroke-width");
160 :
161 8 : static OUString aSVGStrText("text");
162 8 : static OUString aSVGStrBaselineShift("baseline-shift");
163 :
164 8 : static OUString aSVGStrFlowRoot("flowRoot");
165 :
166 55533 : SVGToken StrToSVGToken(const OUString& rStr, bool bCaseIndependent)
167 : {
168 : typedef boost::unordered_map< OUString, SVGToken, OUStringHash,::std::equal_to< OUString > > SVGTokenMapper;
169 : typedef std::pair< OUString, SVGToken > SVGTokenValueType;
170 55533 : static SVGTokenMapper aSVGTokenMapperList;
171 :
172 55533 : if(aSVGTokenMapperList.empty())
173 : {
174 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrWidth, SVGTokenWidth));
175 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrHeight, SVGTokenHeight));
176 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrViewBox, SVGTokenViewBox));
177 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTransform, SVGTokenTransform));
178 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStyle, SVGTokenStyle));
179 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDisplay, SVGTokenDisplay)); // #i121656#
180 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrD, SVGTokenD));
181 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX, SVGTokenX));
182 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY, SVGTokenY));
183 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXmlns, SVGTokenXmlns));
184 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrVersion, SVGTokenVersion));
185 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrId, SVGTokenId));
186 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRx, SVGTokenRx));
187 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRy, SVGTokenRy));
188 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPoints, SVGTokenPoints));
189 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDx, SVGTokenDx));
190 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDy, SVGTokenDy));
191 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRotate, SVGTokenRotate));
192 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFont, SVGTokenFont));
193 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontFamily, SVGTokenFontFamily));
194 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontSize, SVGTokenFontSize));
195 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontSizeAdjust, SVGTokenFontSizeAdjust));
196 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontStretch, SVGTokenFontStretch));
197 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontStyle, SVGTokenFontStyle));
198 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontVariant, SVGTokenFontVariant));
199 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontWeight, SVGTokenFontWeight));
200 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDirection, SVGTokenDirection));
201 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrLetterSpacing, SVGTokenLetterSpacing));
202 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextDecoration, SVGTokenTextDecoration));
203 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrUnicodeBidi, SVGTokenUnicodeBidi));
204 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrWordSpacing, SVGTokenWordSpacing));
205 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTspan, SVGTokenTspan));
206 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTref, SVGTokenTref));
207 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextPath, SVGTokenTextPath));
208 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStartOffset, SVGTokenStartOffset));
209 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMethod, SVGTokenMethod));
210 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSpacing, SVGTokenSpacing));
211 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextAlign, SVGTokenTextAlign));
212 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPathLength, SVGTokenPathLength));
213 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrType, SVGTokenType));
214 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClass, SVGTokenClass));
215 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextAnchor, SVGTokenTextAnchor));
216 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXmlSpace, SVGTokenXmlSpace));
217 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrColor, SVGTokenColor));
218 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipPathNode, SVGTokenClipPathNode));
219 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipPathProperty, SVGTokenClipPathProperty));
220 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMask, SVGTokenMask));
221 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipPathUnits, SVGTokenClipPathUnits));
222 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMaskUnits, SVGTokenMaskUnits));
223 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMaskContentUnits, SVGTokenMaskContentUnits));
224 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipRule, SVGTokenClipRule));
225 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarker, SVGTokenMarker));
226 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerStart, SVGTokenMarkerStart));
227 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerMid, SVGTokenMarkerMid));
228 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerEnd, SVGTokenMarkerEnd));
229 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRefX, SVGTokenRefX));
230 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRefY, SVGTokenRefY));
231 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerUnits, SVGTokenMarkerUnits));
232 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerWidth, SVGTokenMarkerWidth));
233 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerHeight, SVGTokenMarkerHeight));
234 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrOrient, SVGTokenOrient));
235 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPattern, SVGTokenPattern));
236 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPatternUnits, SVGTokenPatternUnits));
237 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPatternContentUnits, SVGTokenPatternContentUnits));
238 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPatternTransform, SVGTokenPatternTransform));
239 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrOpacity, SVGTokenOpacity));
240 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrVisibility, SVGTokenVisibility));
241 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTitle, SVGTokenTitle));
242 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDesc, SVGTokenDesc));
243 :
244 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPreserveAspectRatio, SVGTokenPreserveAspectRatio));
245 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDefer, SVGTokenDefer));
246 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrNone, SVGTokenNone));
247 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMinYMin, SVGTokenXMinYMin));
248 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMidYMin, SVGTokenXMidYMin));
249 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMaxYMin, SVGTokenXMaxYMin));
250 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMinYMid, SVGTokenXMinYMid));
251 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMidYMid, SVGTokenXMidYMid));
252 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMaxYMid, SVGTokenXMaxYMid));
253 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMinYMax, SVGTokenXMinYMax));
254 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMidYMax, SVGTokenXMidYMax));
255 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMaxYMax, SVGTokenXMaxYMax));
256 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMeet, SVGTokenMeet));
257 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSlice, SVGTokenSlice));
258 :
259 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDefs, SVGTokenDefs));
260 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrG, SVGTokenG));
261 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSvg, SVGTokenSvg));
262 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSymbol, SVGTokenSymbol));
263 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrUse, SVGTokenUse));
264 :
265 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrCircle, SVGTokenCircle));
266 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrEllipse, SVGTokenEllipse));
267 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrLine, SVGTokenLine));
268 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPath, SVGTokenPath));
269 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPolygon, SVGTokenPolygon));
270 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPolyline, SVGTokenPolyline));
271 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRect, SVGTokenRect));
272 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrImage, SVGTokenImage));
273 :
274 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrLinearGradient, SVGTokenLinearGradient));
275 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRadialGradient, SVGTokenRadialGradient));
276 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStop, SVGTokenStop));
277 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrOffset, SVGTokenOffset));
278 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX1, SVGTokenX1));
279 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY1, SVGTokenY1));
280 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX2, SVGTokenX2));
281 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY2, SVGTokenY2));
282 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrCx, SVGTokenCx));
283 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrCy, SVGTokenCy));
284 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFx, SVGTokenFx));
285 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFy, SVGTokenFy));
286 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrR, SVGTokenR));
287 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrGradientUnits, SVGTokenGradientUnits));
288 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrGradientTransform, SVGTokenGradientTransform));
289 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSpreadMethod, SVGTokenSpreadMethod));
290 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXlinkHref, SVGTokenXlinkHref));
291 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStopColor, SVGTokenStopColor));
292 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStopOpacity, SVGTokenStopOpacity));
293 :
294 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFill, SVGTokenFill));
295 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFillOpacity, SVGTokenFillOpacity));
296 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFillRule, SVGTokenFillRule));
297 :
298 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStroke, SVGTokenStroke));
299 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeDasharray, SVGTokenStrokeDasharray));
300 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeDashoffset, SVGTokenStrokeDashoffset));
301 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeLinecap, SVGTokenStrokeLinecap));
302 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeLinejoin, SVGTokenStrokeLinejoin));
303 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeMiterlimit, SVGTokenStrokeMiterlimit));
304 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeOpacity, SVGTokenStrokeOpacity));
305 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeWidth, SVGTokenStrokeWidth));
306 :
307 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrText, SVGTokenText));
308 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrBaselineShift, SVGTokenBaselineShift));
309 6 : aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFlowRoot, SVGTokenFlowRoot));
310 : }
311 :
312 55533 : const SVGTokenMapper::const_iterator aResult(aSVGTokenMapperList.find(rStr.startsWith("svg:") ? rStr.copy(4) : rStr));
313 :
314 55533 : if(aResult == aSVGTokenMapperList.end())
315 : {
316 2222 : if(bCaseIndependent)
317 : {
318 15 : static SVGTokenMapper aCaseLindependentSVGTokenMapperList;
319 :
320 15 : if(aCaseLindependentSVGTokenMapperList.empty())
321 : {
322 390 : for(SVGTokenMapper::const_iterator aCurrent(aSVGTokenMapperList.begin()); aCurrent != aSVGTokenMapperList.end(); ++aCurrent)
323 : {
324 : aCaseLindependentSVGTokenMapperList.insert(
325 : SVGTokenValueType(
326 387 : aCurrent->first.toAsciiLowerCase(),
327 774 : aCurrent->second));
328 : }
329 : }
330 :
331 15 : const SVGTokenMapper::const_iterator aResult2(aCaseLindependentSVGTokenMapperList.find(rStr.toAsciiLowerCase()));
332 :
333 15 : if(aResult2 == aCaseLindependentSVGTokenMapperList.end())
334 : {
335 15 : return SVGTokenUnknown;
336 : }
337 : else
338 : {
339 0 : return aResult2->second;
340 : }
341 : }
342 :
343 2207 : return SVGTokenUnknown;
344 : }
345 : else
346 : {
347 53311 : return aResult->second;
348 : }
349 : }
350 :
351 0 : const OUString& getStrTitle()
352 : {
353 0 : return aSVGStrTitle;
354 : }
355 :
356 0 : const OUString& getStrDesc()
357 : {
358 0 : return aSVGStrDesc;
359 : }
360 : } // end of namespace svgreader
361 24 : } // end of namespace svgio
362 :
363 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|