1*ddde725dSArmin Le Grand /**************************************************************
2*ddde725dSArmin Le Grand  *
3*ddde725dSArmin Le Grand  * Licensed to the Apache Software Foundation (ASF) under one
4*ddde725dSArmin Le Grand  * or more contributor license agreements.  See the NOTICE file
5*ddde725dSArmin Le Grand  * distributed with this work for additional information
6*ddde725dSArmin Le Grand  * regarding copyright ownership.  The ASF licenses this file
7*ddde725dSArmin Le Grand  * to you under the Apache License, Version 2.0 (the
8*ddde725dSArmin Le Grand  * "License"); you may not use this file except in compliance
9*ddde725dSArmin Le Grand  * with the License.  You may obtain a copy of the License at
10*ddde725dSArmin Le Grand  *
11*ddde725dSArmin Le Grand  *   http://www.apache.org/licenses/LICENSE-2.0
12*ddde725dSArmin Le Grand  *
13*ddde725dSArmin Le Grand  * Unless required by applicable law or agreed to in writing,
14*ddde725dSArmin Le Grand  * software distributed under the License is distributed on an
15*ddde725dSArmin Le Grand  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ddde725dSArmin Le Grand  * KIND, either express or implied.  See the License for the
17*ddde725dSArmin Le Grand  * specific language governing permissions and limitations
18*ddde725dSArmin Le Grand  * under the License.
19*ddde725dSArmin Le Grand  *
20*ddde725dSArmin Le Grand  *************************************************************/
21*ddde725dSArmin Le Grand 
22*ddde725dSArmin Le Grand // MARKER(update_precomp.py): autogen include statement, do not remove
23*ddde725dSArmin Le Grand #include "precompiled_svgio.hxx"
24*ddde725dSArmin Le Grand 
25*ddde725dSArmin Le Grand #include <svgio/svgreader/svgtoken.hxx>
26*ddde725dSArmin Le Grand 
27*ddde725dSArmin Le Grand //////////////////////////////////////////////////////////////////////////////
28*ddde725dSArmin Le Grand 
29*ddde725dSArmin Le Grand namespace svgio
30*ddde725dSArmin Le Grand {
31*ddde725dSArmin Le Grand     namespace svgreader
32*ddde725dSArmin Le Grand     {
33*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrWidth(rtl::OUString::createFromAscii("width"));
34*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrHeight(rtl::OUString::createFromAscii("height"));
35*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrViewBox(rtl::OUString::createFromAscii("viewBox"));
36*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTransform(rtl::OUString::createFromAscii("transform"));
37*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStyle(rtl::OUString::createFromAscii("style"));
38*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrD(rtl::OUString::createFromAscii("d"));
39*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrX(rtl::OUString::createFromAscii("x"));
40*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrY(rtl::OUString::createFromAscii("y"));
41*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXmlns(rtl::OUString::createFromAscii("xmlns"));
42*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrVersion(rtl::OUString::createFromAscii("version"));
43*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrId(rtl::OUString::createFromAscii("id"));
44*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRx(rtl::OUString::createFromAscii("rx"));
45*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRy(rtl::OUString::createFromAscii("ry"));
46*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPoints(rtl::OUString::createFromAscii("points"));
47*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrDx(rtl::OUString::createFromAscii("dx"));
48*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrDy(rtl::OUString::createFromAscii("dy"));
49*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRotate(rtl::OUString::createFromAscii("rotate"));
50*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTextLength(rtl::OUString::createFromAscii("textLength"));
51*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrLengthAdjust(rtl::OUString::createFromAscii("lengthAdjust"));
52*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFont(rtl::OUString::createFromAscii("font"));
53*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontFamily(rtl::OUString::createFromAscii("font-family"));
54*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontSize(rtl::OUString::createFromAscii("font-size"));
55*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontSizeAdjust(rtl::OUString::createFromAscii("font-size-adjust"));
56*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontStretch(rtl::OUString::createFromAscii("font-stretch"));
57*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontStyle(rtl::OUString::createFromAscii("font-style"));
58*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontVariant(rtl::OUString::createFromAscii("font-variant"));
59*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFontWeight(rtl::OUString::createFromAscii("font-weight"));
60*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrDirection(rtl::OUString::createFromAscii("direction"));
61*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrLetterSpacing(rtl::OUString::createFromAscii("letter-spacing"));
62*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTextDecoration(rtl::OUString::createFromAscii("text-decoration"));
63*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrUnicodeBidi(rtl::OUString::createFromAscii("unicode-bidi"));
64*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrWordSpacing(rtl::OUString::createFromAscii("word-spacing"));
65*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTspan(rtl::OUString::createFromAscii("tspan"));
66*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTref(rtl::OUString::createFromAscii("tref"));
67*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTextPath(rtl::OUString::createFromAscii("textPath"));
68*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStartOffset(rtl::OUString::createFromAscii("startOffset"));
69*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMethod(rtl::OUString::createFromAscii("method"));
70*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrSpacing(rtl::OUString::createFromAscii("spacing"));
71*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTextAlign(rtl::OUString::createFromAscii("text-align"));
72*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPathLength(rtl::OUString::createFromAscii("pathLength"));
73*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrType(rtl::OUString::createFromAscii("type"));
74*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrClass(rtl::OUString::createFromAscii("class"));
75*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrTextAnchor(rtl::OUString::createFromAscii("text-anchor"));
76*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXmlSpace(rtl::OUString::createFromAscii("xml:space"));
77*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrColor(rtl::OUString::createFromAscii("color"));
78*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrClipPathNode(rtl::OUString::createFromAscii("clipPath"));
79*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrClipPathProperty(rtl::OUString::createFromAscii("clip-path"));
80*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMask(rtl::OUString::createFromAscii("mask"));
81*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrClipPathUnits(rtl::OUString::createFromAscii("clipPathUnits"));
82*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMaskUnits(rtl::OUString::createFromAscii("maskUnits"));
83*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMaskContentUnits(rtl::OUString::createFromAscii("maskContentUnits"));
84*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrClipRule(rtl::OUString::createFromAscii("clip-rule"));
85*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarker(rtl::OUString::createFromAscii("marker"));
86*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarkerStart(rtl::OUString::createFromAscii("marker-start"));
87*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarkerMid(rtl::OUString::createFromAscii("marker-mid"));
88*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarkerEnd(rtl::OUString::createFromAscii("marker-end"));
89*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRefX(rtl::OUString::createFromAscii("refX"));
90*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRefY(rtl::OUString::createFromAscii("refY"));
91*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarkerUnits(rtl::OUString::createFromAscii("markerUnits"));
92*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarkerWidth(rtl::OUString::createFromAscii("markerWidth"));
93*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMarkerHeight(rtl::OUString::createFromAscii("markerHeight"));
94*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrOrient(rtl::OUString::createFromAscii("orient"));
95*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPattern(rtl::OUString::createFromAscii("pattern"));
96*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPatternUnits(rtl::OUString::createFromAscii("patternUnits"));
97*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPatternContentUnits(rtl::OUString::createFromAscii("patternContentUnits"));
98*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPatternTransform(rtl::OUString::createFromAscii("patternTransform"));
99*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrOpacity(rtl::OUString::createFromAscii("opacity"));
100*ddde725dSArmin Le Grand 
101*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPreserveAspectRatio(rtl::OUString::createFromAscii("preserveAspectRatio"));
102*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrDefer(rtl::OUString::createFromAscii("defer"));
103*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrNone(rtl::OUString::createFromAscii("none"));
104*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMinYMin(rtl::OUString::createFromAscii("xMinYMin"));
105*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMidYMin(rtl::OUString::createFromAscii("xMidYMin"));
106*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMaxYMin(rtl::OUString::createFromAscii("xMaxYMin"));
107*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMinYMid(rtl::OUString::createFromAscii("xMinYMid"));
108*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMidYMid(rtl::OUString::createFromAscii("xMidYMid"));
109*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMaxYMid(rtl::OUString::createFromAscii("xMaxYMid"));
110*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMinYMax(rtl::OUString::createFromAscii("xMinYMax"));
111*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMidYMax(rtl::OUString::createFromAscii("xMidYMax"));
112*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXMaxYMax(rtl::OUString::createFromAscii("xMaxYMax"));
113*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrMeet(rtl::OUString::createFromAscii("meet"));
114*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrSlice(rtl::OUString::createFromAscii("slice"));
115*ddde725dSArmin Le Grand 
116*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrDefs(rtl::OUString::createFromAscii("defs"));
117*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrG(rtl::OUString::createFromAscii("g"));
118*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrSvg(rtl::OUString::createFromAscii("svg"));
119*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrSymbol(rtl::OUString::createFromAscii("symbol"));
120*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrUse(rtl::OUString::createFromAscii("use"));
121*ddde725dSArmin Le Grand 
122*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrCircle(rtl::OUString::createFromAscii("circle"));
123*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrEllipse(rtl::OUString::createFromAscii("ellipse"));
124*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrLine(rtl::OUString::createFromAscii("line"));
125*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPath(rtl::OUString::createFromAscii("path"));
126*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPolygon(rtl::OUString::createFromAscii("polygon"));
127*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrPolyline(rtl::OUString::createFromAscii("polyline"));
128*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRect(rtl::OUString::createFromAscii("rect"));
129*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrImage(rtl::OUString::createFromAscii("image"));
130*ddde725dSArmin Le Grand 
131*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrLinearGradient(rtl::OUString::createFromAscii("linearGradient"));
132*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrRadialGradient(rtl::OUString::createFromAscii("radialGradient"));
133*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStop(rtl::OUString::createFromAscii("stop"));
134*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrOffset(rtl::OUString::createFromAscii("offset"));
135*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrX1(rtl::OUString::createFromAscii("x1"));
136*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrY1(rtl::OUString::createFromAscii("y1"));
137*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrX2(rtl::OUString::createFromAscii("x2"));
138*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrY2(rtl::OUString::createFromAscii("y2"));
139*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrCx(rtl::OUString::createFromAscii("cx"));
140*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrCy(rtl::OUString::createFromAscii("cy"));
141*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFx(rtl::OUString::createFromAscii("fx"));
142*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFy(rtl::OUString::createFromAscii("fy"));
143*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrR(rtl::OUString::createFromAscii("r"));
144*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrGradientUnits(rtl::OUString::createFromAscii("gradientUnits"));
145*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrGradientTransform(rtl::OUString::createFromAscii("gradientTransform"));
146*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrSpreadMethod(rtl::OUString::createFromAscii("spreadMethod"));
147*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrXlinkHref(rtl::OUString::createFromAscii("xlink:href"));
148*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStopColor(rtl::OUString::createFromAscii("stop-color"));
149*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStopOpacity(rtl::OUString::createFromAscii("stop-opacity"));
150*ddde725dSArmin Le Grand 
151*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFill(rtl::OUString::createFromAscii("fill"));
152*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFillOpacity(rtl::OUString::createFromAscii("fill-opacity"));
153*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrFillRule(rtl::OUString::createFromAscii("fill-rule"));
154*ddde725dSArmin Le Grand 
155*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStroke(rtl::OUString::createFromAscii("stroke"));
156*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeDasharray(rtl::OUString::createFromAscii("stroke-dasharray"));
157*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeDashoffset(rtl::OUString::createFromAscii("stroke-dashoffset"));
158*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeLinecap(rtl::OUString::createFromAscii("stroke-linecap"));
159*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeLinejoin(rtl::OUString::createFromAscii("stroke-linejoin"));
160*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeMiterlimit(rtl::OUString::createFromAscii("stroke-miterlimit"));
161*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeOpacity(rtl::OUString::createFromAscii("stroke-opacity"));
162*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrStrokeWidth(rtl::OUString::createFromAscii("stroke-width"));
163*ddde725dSArmin Le Grand 
164*ddde725dSArmin Le Grand         static rtl::OUString aSVGStrText(rtl::OUString::createFromAscii("text"));
165*ddde725dSArmin Le Grand 
166*ddde725dSArmin Le Grand         SVGToken StrToSVGToken(const rtl::OUString& rStr)
167*ddde725dSArmin Le Grand         {
168*ddde725dSArmin Le Grand             typedef std::hash_map< rtl::OUString, SVGToken, rtl::OUStringHash > SVGTokenMapper;
169*ddde725dSArmin Le Grand             typedef std::pair< rtl::OUString, SVGToken > SVGTokenValueType;
170*ddde725dSArmin Le Grand             static SVGTokenMapper aSVGTokenMapperList;
171*ddde725dSArmin Le Grand 
172*ddde725dSArmin Le Grand             if(aSVGTokenMapperList.empty())
173*ddde725dSArmin Le Grand             {
174*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrWidth, SVGTokenWidth));
175*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrHeight, SVGTokenHeight));
176*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrViewBox, SVGTokenViewBox));
177*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTransform, SVGTokenTransform));
178*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStyle, SVGTokenStyle));
179*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrD, SVGTokenD));
180*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX, SVGTokenX));
181*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY, SVGTokenY));
182*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXmlns, SVGTokenXmlns));
183*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrVersion, SVGTokenVersion));
184*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrId, SVGTokenId));
185*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRx, SVGTokenRx));
186*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRy, SVGTokenRy));
187*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPoints, SVGTokenPoints));
188*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDx, SVGTokenDx));
189*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDy, SVGTokenDy));
190*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRotate, SVGTokenRotate));
191*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFont, SVGTokenFont));
192*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontFamily, SVGTokenFontFamily));
193*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontSize, SVGTokenFontSize));
194*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontSizeAdjust, SVGTokenFontSizeAdjust));
195*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontStretch, SVGTokenFontStretch));
196*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontStyle, SVGTokenFontStyle));
197*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontVariant, SVGTokenFontVariant));
198*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFontWeight, SVGTokenFontWeight));
199*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDirection, SVGTokenDirection));
200*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrLetterSpacing, SVGTokenLetterSpacing));
201*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextDecoration, SVGTokenTextDecoration));
202*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrUnicodeBidi, SVGTokenUnicodeBidi));
203*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrWordSpacing, SVGTokenWordSpacing));
204*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTspan, SVGTokenTspan));
205*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTref, SVGTokenTref));
206*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextPath, SVGTokenTextPath));
207*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStartOffset, SVGTokenStartOffset));
208*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMethod, SVGTokenMethod));
209*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSpacing, SVGTokenSpacing));
210*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextAlign, SVGTokenTextAlign));
211*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPathLength, SVGTokenPathLength));
212*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrType, SVGTokenType));
213*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClass, SVGTokenClass));
214*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTextAnchor, SVGTokenTextAnchor));
215*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXmlSpace, SVGTokenXmlSpace));
216*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrColor, SVGTokenColor));
217*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipPathNode, SVGTokenClipPathNode));
218*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipPathProperty, SVGTokenClipPathProperty));
219*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMask, SVGTokenMask));
220*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipPathUnits, SVGTokenClipPathUnits));
221*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMaskUnits, SVGTokenMaskUnits));
222*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMaskContentUnits, SVGTokenMaskContentUnits));
223*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrClipRule, SVGTokenClipRule));
224*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarker, SVGTokenMarker));
225*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerStart, SVGTokenMarkerStart));
226*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerMid, SVGTokenMarkerMid));
227*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerEnd, SVGTokenMarkerEnd));
228*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRefX, SVGTokenRefX));
229*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRefY, SVGTokenRefY));
230*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerUnits, SVGTokenMarkerUnits));
231*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerWidth, SVGTokenMarkerWidth));
232*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMarkerHeight, SVGTokenMarkerHeight));
233*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrOrient, SVGTokenOrient));
234*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPattern, SVGTokenPattern));
235*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPatternUnits, SVGTokenPatternUnits));
236*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPatternContentUnits, SVGTokenPatternContentUnits));
237*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPatternTransform, SVGTokenPatternTransform));
238*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrOpacity, SVGTokenOpacity));
239*ddde725dSArmin Le Grand 
240*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPreserveAspectRatio, SVGTokenPreserveAspectRatio));
241*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDefer, SVGTokenDefer));
242*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrNone, SVGTokenNone));
243*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMinYMin, SVGTokenXMinYMin));
244*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMidYMin, SVGTokenXMidYMin));
245*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMaxYMin, SVGTokenXMaxYMin));
246*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMinYMid, SVGTokenXMinYMid));
247*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMidYMid, SVGTokenXMidYMid));
248*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMaxYMid, SVGTokenXMaxYMid));
249*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMinYMax, SVGTokenXMinYMax));
250*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMidYMax, SVGTokenXMidYMax));
251*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXMaxYMax, SVGTokenXMaxYMax));
252*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrMeet, SVGTokenMeet));
253*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSlice, SVGTokenSlice));
254*ddde725dSArmin Le Grand 
255*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDefs, SVGTokenDefs));
256*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrG, SVGTokenG));
257*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSvg, SVGTokenSvg));
258*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSymbol, SVGTokenSymbol));
259*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrUse, SVGTokenUse));
260*ddde725dSArmin Le Grand 
261*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrCircle, SVGTokenCircle));
262*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrEllipse, SVGTokenEllipse));
263*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrLine, SVGTokenLine));
264*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPath, SVGTokenPath));
265*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPolygon, SVGTokenPolygon));
266*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrPolyline, SVGTokenPolyline));
267*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRect, SVGTokenRect));
268*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrImage, SVGTokenImage));
269*ddde725dSArmin Le Grand 
270*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrLinearGradient, SVGTokenLinearGradient));
271*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrRadialGradient, SVGTokenRadialGradient));
272*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStop, SVGTokenStop));
273*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrOffset, SVGTokenOffset));
274*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX1, SVGTokenX1));
275*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY1, SVGTokenY1));
276*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX2, SVGTokenX2));
277*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY2, SVGTokenY2));
278*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrCx, SVGTokenCx));
279*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrCy, SVGTokenCy));
280*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFx, SVGTokenFx));
281*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFy, SVGTokenFy));
282*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrR, SVGTokenR));
283*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrGradientUnits, SVGTokenGradientUnits));
284*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrGradientTransform, SVGTokenGradientTransform));
285*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrSpreadMethod, SVGTokenSpreadMethod));
286*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrXlinkHref, SVGTokenXlinkHref));
287*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStopColor, SVGTokenStopColor));
288*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStopOpacity, SVGTokenStopOpacity));
289*ddde725dSArmin Le Grand 
290*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFill, SVGTokenFill));
291*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFillOpacity, SVGTokenFillOpacity));
292*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrFillRule, SVGTokenFillRule));
293*ddde725dSArmin Le Grand 
294*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStroke, SVGTokenStroke));
295*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeDasharray, SVGTokenStrokeDasharray));
296*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeDashoffset, SVGTokenStrokeDashoffset));
297*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeLinecap, SVGTokenStrokeLinecap));
298*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeLinejoin, SVGTokenStrokeLinejoin));
299*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeMiterlimit, SVGTokenStrokeMiterlimit));
300*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeOpacity, SVGTokenStrokeOpacity));
301*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStrokeWidth, SVGTokenStrokeWidth));
302*ddde725dSArmin Le Grand 
303*ddde725dSArmin Le Grand                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrText, SVGTokenText));
304*ddde725dSArmin Le Grand             }
305*ddde725dSArmin Le Grand 
306*ddde725dSArmin Le Grand             const SVGTokenMapper::const_iterator aResult(aSVGTokenMapperList.find(rStr));
307*ddde725dSArmin Le Grand 
308*ddde725dSArmin Le Grand             if(aResult == aSVGTokenMapperList.end())
309*ddde725dSArmin Le Grand             {
310*ddde725dSArmin Le Grand                 return SVGTokenUnknown;
311*ddde725dSArmin Le Grand             }
312*ddde725dSArmin Le Grand             else
313*ddde725dSArmin Le Grand             {
314*ddde725dSArmin Le Grand                 return aResult->second;
315*ddde725dSArmin Le Grand             }
316*ddde725dSArmin Le Grand         }
317*ddde725dSArmin Le Grand     } // end of namespace svgreader
318*ddde725dSArmin Le Grand } // end of namespace svgio
319*ddde725dSArmin Le Grand 
320*ddde725dSArmin Le Grand //////////////////////////////////////////////////////////////////////////////
321*ddde725dSArmin Le Grand // eof
322