1 //////////////////////////////////////////////////////////////////////////////
2 // Name:        Elements_HasAttribute.cpp
3 // Author:      Alex Thuering
4 // Copyright:   (c) 2005 Alex Thuering
5 // Licence:     wxWindows licence
6 // Notes:       generated by genHasAttribute.py
7 //////////////////////////////////////////////////////////////////////////////
8 
9 #include "String_wxsvg.h"
10 #include "SVGAElement.h"
11 #include "SVGElement.h"
12 #include "SVGURIReference.h"
13 #include "SVGTests.h"
14 #include "SVGLangSpace.h"
15 #include "SVGExternalResourcesRequired.h"
16 #include "SVGStylable.h"
17 #include "SVGTransformable.h"
18 #include "SVGAltGlyphDefElement.h"
19 #include "SVGAltGlyphElement.h"
20 #include "SVGTextPositioningElement.h"
21 #include "SVGTextContentElement.h"
22 #include "SVGAltGlyphItemElement.h"
23 #include "SVGAnimationElement.h"
24 #include "SVGAnimateColorElement.h"
25 #include "SVGAnimateElement.h"
26 #include "SVGAnimateMotionElement.h"
27 #include "SVGAnimateTransformElement.h"
28 #include "SVGAnimatedPathData.h"
29 #include "SVGAnimatedPoints.h"
30 #include "SVGCircleElement.h"
31 #include "SVGClipPathElement.h"
32 #include "SVGColorProfileElement.h"
33 #include "SVGComponentTransferFunctionElement.h"
34 #include "SVGCursorElement.h"
35 #include "SVGDefinitionSrcElement.h"
36 #include "SVGDefsElement.h"
37 #include "SVGDescElement.h"
38 #include "SVGEllipseElement.h"
39 #include "SVGFEBlendElement.h"
40 #include "SVGFilterPrimitiveStandardAttributes.h"
41 #include "SVGFEColorMatrixElement.h"
42 #include "SVGFEComponentTransferElement.h"
43 #include "SVGFECompositeElement.h"
44 #include "SVGFEConvolveMatrixElement.h"
45 #include "SVGFEDiffuseLightingElement.h"
46 #include "SVGFEDisplacementMapElement.h"
47 #include "SVGFEDistantLightElement.h"
48 #include "SVGFEFloodElement.h"
49 #include "SVGFEFuncAElement.h"
50 #include "SVGFEFuncBElement.h"
51 #include "SVGFEFuncGElement.h"
52 #include "SVGFEFuncRElement.h"
53 #include "SVGFEGaussianBlurElement.h"
54 #include "SVGFEImageElement.h"
55 #include "SVGFEMergeElement.h"
56 #include "SVGFEMergeNodeElement.h"
57 #include "SVGFEMorphologyElement.h"
58 #include "SVGFEOffsetElement.h"
59 #include "SVGFEPointLightElement.h"
60 #include "SVGFESpecularLightingElement.h"
61 #include "SVGFESpotLightElement.h"
62 #include "SVGFETileElement.h"
63 #include "SVGFETurbulenceElement.h"
64 #include "SVGFilterElement.h"
65 #include "SVGFitToViewBox.h"
66 #include "SVGFontElement.h"
67 #include "SVGFontFaceElement.h"
68 #include "SVGFontFaceFormatElement.h"
69 #include "SVGFontFaceNameElement.h"
70 #include "SVGFontFaceSrcElement.h"
71 #include "SVGFontFaceUriElement.h"
72 #include "SVGForeignObjectElement.h"
73 #include "SVGGElement.h"
74 #include "SVGGlyphElement.h"
75 #include "SVGGlyphRefElement.h"
76 #include "SVGGradientElement.h"
77 #include "SVGHKernElement.h"
78 #include "SVGImageElement.h"
79 #include "SVGLineElement.h"
80 #include "SVGLinearGradientElement.h"
81 #include "SVGMPathElement.h"
82 #include "SVGMarkerElement.h"
83 #include "SVGMaskElement.h"
84 #include "SVGMetadataElement.h"
85 #include "SVGMissingGlyphElement.h"
86 #include "SVGPathElement.h"
87 #include "SVGPatternElement.h"
88 #include "SVGPolygonElement.h"
89 #include "SVGPolylineElement.h"
90 #include "SVGRadialGradientElement.h"
91 #include "SVGRectElement.h"
92 #include "SVGSVGElement.h"
93 #include "SVGZoomAndPan.h"
94 #include "SVGScriptElement.h"
95 #include "SVGSetElement.h"
96 #include "SVGStopElement.h"
97 #include "SVGStyleElement.h"
98 #include "SVGSwitchElement.h"
99 #include "SVGSymbolElement.h"
100 #include "SVGTBreakElement.h"
101 #include "SVGTRefElement.h"
102 #include "SVGTSpanElement.h"
103 #include "SVGTextElement.h"
104 #include "SVGTextPathElement.h"
105 #include "SVGTitleElement.h"
106 #include "SVGUseElement.h"
107 #include "SVGVKernElement.h"
108 #include "SVGVideoElement.h"
109 #include "SVGViewElement.h"
110 #include "SVGViewSpec.h"
111 
112 // wxSVGAElement
HasAttribute(const wxString & attrName) const113 bool wxSVGAElement::HasAttribute(const wxString& attrName) const {
114   return attrName == wxT("target") ||
115     wxSVGElement::HasAttribute(attrName) ||
116     wxSVGURIReference::HasAttribute(attrName) ||
117     wxSVGTests::HasAttribute(attrName) ||
118     wxSVGLangSpace::HasAttribute(attrName) ||
119     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
120     wxSVGStylable::HasAttribute(attrName) ||
121     wxSVGTransformable::HasAttribute(attrName);
122 }
123 
124 // wxSVGAltGlyphDefElement
HasAttribute(const wxString & attrName) const125 bool wxSVGAltGlyphDefElement::HasAttribute(const wxString& attrName) const {
126   return wxSVGElement::HasAttribute(attrName);
127 }
128 
129 // wxSVGAltGlyphElement
HasAttribute(const wxString & attrName) const130 bool wxSVGAltGlyphElement::HasAttribute(const wxString& attrName) const {
131   return attrName == wxT("glyphRef") ||
132     attrName == wxT("format") ||
133     wxSVGTextPositioningElement::HasAttribute(attrName) ||
134     wxSVGURIReference::HasAttribute(attrName);
135 }
136 
137 // wxSVGAltGlyphItemElement
HasAttribute(const wxString & attrName) const138 bool wxSVGAltGlyphItemElement::HasAttribute(const wxString& attrName) const {
139   return wxSVGElement::HasAttribute(attrName);
140 }
141 
142 // wxSVGAnimateColorElement
HasAttribute(const wxString & attrName) const143 bool wxSVGAnimateColorElement::HasAttribute(const wxString& attrName) const {
144   return wxSVGAnimationElement::HasAttribute(attrName);
145 }
146 
147 // wxSVGAnimateElement
HasAttribute(const wxString & attrName) const148 bool wxSVGAnimateElement::HasAttribute(const wxString& attrName) const {
149   return wxSVGAnimationElement::HasAttribute(attrName);
150 }
151 
152 // wxSVGAnimateMotionElement
HasAttribute(const wxString & attrName) const153 bool wxSVGAnimateMotionElement::HasAttribute(const wxString& attrName) const {
154   return wxSVGAnimationElement::HasAttribute(attrName);
155 }
156 
157 // wxSVGAnimateTransformElement
HasAttribute(const wxString & attrName) const158 bool wxSVGAnimateTransformElement::HasAttribute(const wxString& attrName) const {
159   return attrName == wxT("type") ||
160     wxSVGAnimationElement::HasAttribute(attrName);
161 }
162 
163 // wxSVGAnimatedPathData
HasAttribute(const wxString & attrName) const164 bool wxSVGAnimatedPathData::HasAttribute(const wxString& attrName) const {
165   return attrName == wxT("d");
166 }
167 
168 // wxSVGAnimatedPoints
HasAttribute(const wxString & attrName) const169 bool wxSVGAnimatedPoints::HasAttribute(const wxString& attrName) const {
170   return attrName == wxT("points");
171 }
172 
173 // wxSVGAnimationElement
HasAttribute(const wxString & attrName) const174 bool wxSVGAnimationElement::HasAttribute(const wxString& attrName) const {
175   return attrName == wxT("xlink:href") ||
176     attrName == wxT("attributeName") ||
177     attrName == wxT("begin") ||
178     attrName == wxT("dur") ||
179     attrName == wxT("from") ||
180     attrName == wxT("to") ||
181     attrName == wxT("fill") ||
182     attrName == wxT("additive") ||
183     attrName == wxT("accumulate") ||
184     wxSVGElement::HasAttribute(attrName) ||
185     wxSVGTests::HasAttribute(attrName) ||
186     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
187     HasCustomAttribute(attrName);
188 }
189 
190 // wxSVGCircleElement
HasAttribute(const wxString & attrName) const191 bool wxSVGCircleElement::HasAttribute(const wxString& attrName) const {
192   return attrName == wxT("cx") ||
193     attrName == wxT("cy") ||
194     attrName == wxT("r") ||
195     wxSVGElement::HasAttribute(attrName) ||
196     wxSVGTests::HasAttribute(attrName) ||
197     wxSVGLangSpace::HasAttribute(attrName) ||
198     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
199     wxSVGStylable::HasAttribute(attrName) ||
200     wxSVGTransformable::HasAttribute(attrName);
201 }
202 
203 // wxSVGClipPathElement
HasAttribute(const wxString & attrName) const204 bool wxSVGClipPathElement::HasAttribute(const wxString& attrName) const {
205   return attrName == wxT("clipPathUnits") ||
206     wxSVGElement::HasAttribute(attrName) ||
207     wxSVGTests::HasAttribute(attrName) ||
208     wxSVGLangSpace::HasAttribute(attrName) ||
209     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
210     wxSVGStylable::HasAttribute(attrName) ||
211     wxSVGTransformable::HasAttribute(attrName);
212 }
213 
214 // wxSVGColorProfileElement
HasAttribute(const wxString & attrName) const215 bool wxSVGColorProfileElement::HasAttribute(const wxString& attrName) const {
216   return attrName == wxT("local") ||
217     attrName == wxT("name") ||
218     attrName == wxT("rendering-intent") ||
219     wxSVGElement::HasAttribute(attrName) ||
220     wxSVGURIReference::HasAttribute(attrName);
221 }
222 
223 // wxSVGComponentTransferFunctionElement
HasAttribute(const wxString & attrName) const224 bool wxSVGComponentTransferFunctionElement::HasAttribute(const wxString& attrName) const {
225   return attrName == wxT("type") ||
226     attrName == wxT("tableValues") ||
227     attrName == wxT("slope") ||
228     attrName == wxT("intercept") ||
229     attrName == wxT("amplitude") ||
230     attrName == wxT("exponent") ||
231     attrName == wxT("offset") ||
232     wxSVGElement::HasAttribute(attrName);
233 }
234 
235 // wxSVGCursorElement
HasAttribute(const wxString & attrName) const236 bool wxSVGCursorElement::HasAttribute(const wxString& attrName) const {
237   return attrName == wxT("x") ||
238     attrName == wxT("y") ||
239     wxSVGElement::HasAttribute(attrName) ||
240     wxSVGURIReference::HasAttribute(attrName) ||
241     wxSVGTests::HasAttribute(attrName) ||
242     wxSVGExternalResourcesRequired::HasAttribute(attrName);
243 }
244 
245 // wxSVGDefinitionSrcElement
HasAttribute(const wxString & attrName) const246 bool wxSVGDefinitionSrcElement::HasAttribute(const wxString& attrName) const {
247   return wxSVGElement::HasAttribute(attrName);
248 }
249 
250 // wxSVGDefsElement
HasAttribute(const wxString & attrName) const251 bool wxSVGDefsElement::HasAttribute(const wxString& attrName) const {
252   return wxSVGElement::HasAttribute(attrName) ||
253     wxSVGTests::HasAttribute(attrName) ||
254     wxSVGLangSpace::HasAttribute(attrName) ||
255     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
256     wxSVGStylable::HasAttribute(attrName) ||
257     wxSVGTransformable::HasAttribute(attrName);
258 }
259 
260 // wxSVGDescElement
HasAttribute(const wxString & attrName) const261 bool wxSVGDescElement::HasAttribute(const wxString& attrName) const {
262   return wxSVGElement::HasAttribute(attrName) ||
263     wxSVGLangSpace::HasAttribute(attrName) ||
264     wxSVGStylable::HasAttribute(attrName);
265 }
266 
267 // wxSVGElement
HasAttribute(const wxString & attrName) const268 bool wxSVGElement::HasAttribute(const wxString& attrName) const {
269   return attrName == wxT("id");
270 }
271 
272 // wxSVGEllipseElement
HasAttribute(const wxString & attrName) const273 bool wxSVGEllipseElement::HasAttribute(const wxString& attrName) const {
274   return attrName == wxT("cx") ||
275     attrName == wxT("cy") ||
276     attrName == wxT("rx") ||
277     attrName == wxT("ry") ||
278     wxSVGElement::HasAttribute(attrName) ||
279     wxSVGTests::HasAttribute(attrName) ||
280     wxSVGLangSpace::HasAttribute(attrName) ||
281     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
282     wxSVGStylable::HasAttribute(attrName) ||
283     wxSVGTransformable::HasAttribute(attrName);
284 }
285 
286 // wxSVGExternalResourcesRequired
HasAttribute(const wxString & attrName) const287 bool wxSVGExternalResourcesRequired::HasAttribute(const wxString& attrName) const {
288   return attrName == wxT("externalResourcesRequired");
289 }
290 
291 // wxSVGFEBlendElement
HasAttribute(const wxString & attrName) const292 bool wxSVGFEBlendElement::HasAttribute(const wxString& attrName) const {
293   return attrName == wxT("in") ||
294     attrName == wxT("in2") ||
295     attrName == wxT("mode") ||
296     wxSVGElement::HasAttribute(attrName) ||
297     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
298 }
299 
300 // wxSVGFEColorMatrixElement
HasAttribute(const wxString & attrName) const301 bool wxSVGFEColorMatrixElement::HasAttribute(const wxString& attrName) const {
302   return attrName == wxT("in") ||
303     attrName == wxT("type") ||
304     attrName == wxT("values") ||
305     wxSVGElement::HasAttribute(attrName) ||
306     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
307 }
308 
309 // wxSVGFEComponentTransferElement
HasAttribute(const wxString & attrName) const310 bool wxSVGFEComponentTransferElement::HasAttribute(const wxString& attrName) const {
311   return attrName == wxT("in") ||
312     wxSVGElement::HasAttribute(attrName) ||
313     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
314 }
315 
316 // wxSVGFECompositeElement
HasAttribute(const wxString & attrName) const317 bool wxSVGFECompositeElement::HasAttribute(const wxString& attrName) const {
318   return attrName == wxT("in") ||
319     attrName == wxT("in2") ||
320     attrName == wxT("operator") ||
321     attrName == wxT("k1") ||
322     attrName == wxT("k2") ||
323     attrName == wxT("k3") ||
324     attrName == wxT("k4") ||
325     wxSVGElement::HasAttribute(attrName) ||
326     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
327 }
328 
329 // wxSVGFEConvolveMatrixElement
HasAttribute(const wxString & attrName) const330 bool wxSVGFEConvolveMatrixElement::HasAttribute(const wxString& attrName) const {
331   return attrName == wxT("kernelMatrix") ||
332     attrName == wxT("divisor") ||
333     attrName == wxT("bias") ||
334     attrName == wxT("targetX") ||
335     attrName == wxT("targetY") ||
336     attrName == wxT("edgeMode") ||
337     attrName == wxT("preserveAlpha") ||
338     wxSVGElement::HasAttribute(attrName) ||
339     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
340 }
341 
342 // wxSVGFEDiffuseLightingElement
HasAttribute(const wxString & attrName) const343 bool wxSVGFEDiffuseLightingElement::HasAttribute(const wxString& attrName) const {
344   return attrName == wxT("in") ||
345     attrName == wxT("surfaceScale") ||
346     attrName == wxT("diffuseConstant") ||
347     wxSVGElement::HasAttribute(attrName) ||
348     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
349 }
350 
351 // wxSVGFEDisplacementMapElement
HasAttribute(const wxString & attrName) const352 bool wxSVGFEDisplacementMapElement::HasAttribute(const wxString& attrName) const {
353   return attrName == wxT("in") ||
354     attrName == wxT("in2") ||
355     attrName == wxT("scale") ||
356     attrName == wxT("xChannelSelector") ||
357     attrName == wxT("yChannelSelector") ||
358     wxSVGElement::HasAttribute(attrName) ||
359     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
360 }
361 
362 // wxSVGFEDistantLightElement
HasAttribute(const wxString & attrName) const363 bool wxSVGFEDistantLightElement::HasAttribute(const wxString& attrName) const {
364   return attrName == wxT("azimuth") ||
365     attrName == wxT("elevation") ||
366     wxSVGElement::HasAttribute(attrName);
367 }
368 
369 // wxSVGFEFloodElement
HasAttribute(const wxString & attrName) const370 bool wxSVGFEFloodElement::HasAttribute(const wxString& attrName) const {
371   return attrName == wxT("in") ||
372     wxSVGElement::HasAttribute(attrName) ||
373     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
374 }
375 
376 // wxSVGFEFuncAElement
HasAttribute(const wxString & attrName) const377 bool wxSVGFEFuncAElement::HasAttribute(const wxString& attrName) const {
378   return wxSVGComponentTransferFunctionElement::HasAttribute(attrName);
379 }
380 
381 // wxSVGFEFuncBElement
HasAttribute(const wxString & attrName) const382 bool wxSVGFEFuncBElement::HasAttribute(const wxString& attrName) const {
383   return wxSVGComponentTransferFunctionElement::HasAttribute(attrName);
384 }
385 
386 // wxSVGFEFuncGElement
HasAttribute(const wxString & attrName) const387 bool wxSVGFEFuncGElement::HasAttribute(const wxString& attrName) const {
388   return wxSVGComponentTransferFunctionElement::HasAttribute(attrName);
389 }
390 
391 // wxSVGFEFuncRElement
HasAttribute(const wxString & attrName) const392 bool wxSVGFEFuncRElement::HasAttribute(const wxString& attrName) const {
393   return wxSVGComponentTransferFunctionElement::HasAttribute(attrName);
394 }
395 
396 // wxSVGFEGaussianBlurElement
HasAttribute(const wxString & attrName) const397 bool wxSVGFEGaussianBlurElement::HasAttribute(const wxString& attrName) const {
398   return attrName == wxT("in") ||
399     wxSVGElement::HasAttribute(attrName) ||
400     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName) ||
401     HasCustomAttribute(attrName);
402 }
403 
404 // wxSVGFEImageElement
HasAttribute(const wxString & attrName) const405 bool wxSVGFEImageElement::HasAttribute(const wxString& attrName) const {
406   return wxSVGElement::HasAttribute(attrName) ||
407     wxSVGURIReference::HasAttribute(attrName) ||
408     wxSVGLangSpace::HasAttribute(attrName) ||
409     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
410     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
411 }
412 
413 // wxSVGFEMergeElement
HasAttribute(const wxString & attrName) const414 bool wxSVGFEMergeElement::HasAttribute(const wxString& attrName) const {
415   return wxSVGElement::HasAttribute(attrName) ||
416     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
417 }
418 
419 // wxSVGFEMergeNodeElement
HasAttribute(const wxString & attrName) const420 bool wxSVGFEMergeNodeElement::HasAttribute(const wxString& attrName) const {
421   return attrName == wxT("in") ||
422     wxSVGElement::HasAttribute(attrName);
423 }
424 
425 // wxSVGFEMorphologyElement
HasAttribute(const wxString & attrName) const426 bool wxSVGFEMorphologyElement::HasAttribute(const wxString& attrName) const {
427   return attrName == wxT("in") ||
428     attrName == wxT("operator") ||
429     wxSVGElement::HasAttribute(attrName) ||
430     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
431 }
432 
433 // wxSVGFEOffsetElement
HasAttribute(const wxString & attrName) const434 bool wxSVGFEOffsetElement::HasAttribute(const wxString& attrName) const {
435   return attrName == wxT("in") ||
436     attrName == wxT("dx") ||
437     attrName == wxT("dy") ||
438     wxSVGElement::HasAttribute(attrName) ||
439     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
440 }
441 
442 // wxSVGFEPointLightElement
HasAttribute(const wxString & attrName) const443 bool wxSVGFEPointLightElement::HasAttribute(const wxString& attrName) const {
444   return attrName == wxT("x") ||
445     attrName == wxT("y") ||
446     attrName == wxT("z") ||
447     wxSVGElement::HasAttribute(attrName);
448 }
449 
450 // wxSVGFESpecularLightingElement
HasAttribute(const wxString & attrName) const451 bool wxSVGFESpecularLightingElement::HasAttribute(const wxString& attrName) const {
452   return attrName == wxT("in") ||
453     attrName == wxT("surfaceScale") ||
454     attrName == wxT("specularConstant") ||
455     attrName == wxT("specularExponent") ||
456     wxSVGElement::HasAttribute(attrName) ||
457     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
458 }
459 
460 // wxSVGFESpotLightElement
HasAttribute(const wxString & attrName) const461 bool wxSVGFESpotLightElement::HasAttribute(const wxString& attrName) const {
462   return attrName == wxT("x") ||
463     attrName == wxT("y") ||
464     attrName == wxT("z") ||
465     attrName == wxT("pointsAtX") ||
466     attrName == wxT("pointsAtY") ||
467     attrName == wxT("pointsAtZ") ||
468     attrName == wxT("specularExponent") ||
469     attrName == wxT("limitingConeAngle") ||
470     wxSVGElement::HasAttribute(attrName);
471 }
472 
473 // wxSVGFETileElement
HasAttribute(const wxString & attrName) const474 bool wxSVGFETileElement::HasAttribute(const wxString& attrName) const {
475   return attrName == wxT("in") ||
476     wxSVGElement::HasAttribute(attrName) ||
477     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
478 }
479 
480 // wxSVGFETurbulenceElement
HasAttribute(const wxString & attrName) const481 bool wxSVGFETurbulenceElement::HasAttribute(const wxString& attrName) const {
482   return attrName == wxT("numOctaves") ||
483     attrName == wxT("seed") ||
484     attrName == wxT("stitchTiles") ||
485     attrName == wxT("type") ||
486     wxSVGElement::HasAttribute(attrName) ||
487     wxSVGFilterPrimitiveStandardAttributes::HasAttribute(attrName);
488 }
489 
490 // wxSVGFilterElement
HasAttribute(const wxString & attrName) const491 bool wxSVGFilterElement::HasAttribute(const wxString& attrName) const {
492   return attrName == wxT("filterUnits") ||
493     attrName == wxT("primitiveUnits") ||
494     attrName == wxT("x") ||
495     attrName == wxT("y") ||
496     attrName == wxT("width") ||
497     attrName == wxT("height") ||
498     wxSVGElement::HasAttribute(attrName) ||
499     wxSVGURIReference::HasAttribute(attrName) ||
500     wxSVGLangSpace::HasAttribute(attrName) ||
501     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
502     wxSVGStylable::HasAttribute(attrName);
503 }
504 
505 // wxSVGFilterPrimitiveStandardAttributes
HasAttribute(const wxString & attrName) const506 bool wxSVGFilterPrimitiveStandardAttributes::HasAttribute(const wxString& attrName) const {
507   return attrName == wxT("x") ||
508     attrName == wxT("y") ||
509     attrName == wxT("width") ||
510     attrName == wxT("height") ||
511     attrName == wxT("result") ||
512     wxSVGStylable::HasAttribute(attrName);
513 }
514 
515 // wxSVGFitToViewBox
HasAttribute(const wxString & attrName) const516 bool wxSVGFitToViewBox::HasAttribute(const wxString& attrName) const {
517   return attrName == wxT("viewBox") ||
518     attrName == wxT("preserveAspectRatio");
519 }
520 
521 // wxSVGFontElement
HasAttribute(const wxString & attrName) const522 bool wxSVGFontElement::HasAttribute(const wxString& attrName) const {
523   return wxSVGElement::HasAttribute(attrName) ||
524     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
525     wxSVGStylable::HasAttribute(attrName);
526 }
527 
528 // wxSVGFontFaceElement
HasAttribute(const wxString & attrName) const529 bool wxSVGFontFaceElement::HasAttribute(const wxString& attrName) const {
530   return wxSVGElement::HasAttribute(attrName);
531 }
532 
533 // wxSVGFontFaceFormatElement
HasAttribute(const wxString & attrName) const534 bool wxSVGFontFaceFormatElement::HasAttribute(const wxString& attrName) const {
535   return wxSVGElement::HasAttribute(attrName);
536 }
537 
538 // wxSVGFontFaceNameElement
HasAttribute(const wxString & attrName) const539 bool wxSVGFontFaceNameElement::HasAttribute(const wxString& attrName) const {
540   return wxSVGElement::HasAttribute(attrName);
541 }
542 
543 // wxSVGFontFaceSrcElement
HasAttribute(const wxString & attrName) const544 bool wxSVGFontFaceSrcElement::HasAttribute(const wxString& attrName) const {
545   return wxSVGElement::HasAttribute(attrName);
546 }
547 
548 // wxSVGFontFaceUriElement
HasAttribute(const wxString & attrName) const549 bool wxSVGFontFaceUriElement::HasAttribute(const wxString& attrName) const {
550   return wxSVGElement::HasAttribute(attrName);
551 }
552 
553 // wxSVGForeignObjectElement
HasAttribute(const wxString & attrName) const554 bool wxSVGForeignObjectElement::HasAttribute(const wxString& attrName) const {
555   return attrName == wxT("x") ||
556     attrName == wxT("y") ||
557     attrName == wxT("width") ||
558     attrName == wxT("height") ||
559     wxSVGElement::HasAttribute(attrName) ||
560     wxSVGTests::HasAttribute(attrName) ||
561     wxSVGLangSpace::HasAttribute(attrName) ||
562     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
563     wxSVGStylable::HasAttribute(attrName) ||
564     wxSVGTransformable::HasAttribute(attrName);
565 }
566 
567 // wxSVGGElement
HasAttribute(const wxString & attrName) const568 bool wxSVGGElement::HasAttribute(const wxString& attrName) const {
569   return wxSVGElement::HasAttribute(attrName) ||
570     wxSVGTests::HasAttribute(attrName) ||
571     wxSVGLangSpace::HasAttribute(attrName) ||
572     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
573     wxSVGStylable::HasAttribute(attrName) ||
574     wxSVGTransformable::HasAttribute(attrName);
575 }
576 
577 // wxSVGGlyphElement
HasAttribute(const wxString & attrName) const578 bool wxSVGGlyphElement::HasAttribute(const wxString& attrName) const {
579   return wxSVGElement::HasAttribute(attrName) ||
580     wxSVGStylable::HasAttribute(attrName);
581 }
582 
583 // wxSVGGlyphRefElement
HasAttribute(const wxString & attrName) const584 bool wxSVGGlyphRefElement::HasAttribute(const wxString& attrName) const {
585   return attrName == wxT("glyphRef") ||
586     attrName == wxT("format") ||
587     attrName == wxT("x") ||
588     attrName == wxT("y") ||
589     attrName == wxT("dx") ||
590     attrName == wxT("dy") ||
591     wxSVGElement::HasAttribute(attrName) ||
592     wxSVGURIReference::HasAttribute(attrName) ||
593     wxSVGStylable::HasAttribute(attrName);
594 }
595 
596 // wxSVGGradientElement
HasAttribute(const wxString & attrName) const597 bool wxSVGGradientElement::HasAttribute(const wxString& attrName) const {
598   return attrName == wxT("gradientUnits") ||
599     attrName == wxT("gradientTransform") ||
600     attrName == wxT("spreadMethod") ||
601     wxSVGElement::HasAttribute(attrName) ||
602     wxSVGURIReference::HasAttribute(attrName) ||
603     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
604     wxSVGStylable::HasAttribute(attrName);
605 }
606 
607 // wxSVGHKernElement
HasAttribute(const wxString & attrName) const608 bool wxSVGHKernElement::HasAttribute(const wxString& attrName) const {
609   return wxSVGElement::HasAttribute(attrName);
610 }
611 
612 // wxSVGImageElement
HasAttribute(const wxString & attrName) const613 bool wxSVGImageElement::HasAttribute(const wxString& attrName) const {
614   return attrName == wxT("x") ||
615     attrName == wxT("y") ||
616     attrName == wxT("width") ||
617     attrName == wxT("height") ||
618     attrName == wxT("preserveAspectRatio") ||
619     wxSVGElement::HasAttribute(attrName) ||
620     wxSVGURIReference::HasAttribute(attrName) ||
621     wxSVGTests::HasAttribute(attrName) ||
622     wxSVGLangSpace::HasAttribute(attrName) ||
623     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
624     wxSVGStylable::HasAttribute(attrName) ||
625     wxSVGTransformable::HasAttribute(attrName);
626 }
627 
628 // wxSVGLangSpace
HasAttribute(const wxString & attrName) const629 bool wxSVGLangSpace::HasAttribute(const wxString& attrName) const {
630   return attrName == wxT("xml:lang") ||
631     attrName == wxT("xml:space");
632 }
633 
634 // wxSVGLineElement
HasAttribute(const wxString & attrName) const635 bool wxSVGLineElement::HasAttribute(const wxString& attrName) const {
636   return attrName == wxT("x1") ||
637     attrName == wxT("y1") ||
638     attrName == wxT("x2") ||
639     attrName == wxT("y2") ||
640     wxSVGElement::HasAttribute(attrName) ||
641     wxSVGTests::HasAttribute(attrName) ||
642     wxSVGLangSpace::HasAttribute(attrName) ||
643     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
644     wxSVGStylable::HasAttribute(attrName) ||
645     wxSVGTransformable::HasAttribute(attrName);
646 }
647 
648 // wxSVGLinearGradientElement
HasAttribute(const wxString & attrName) const649 bool wxSVGLinearGradientElement::HasAttribute(const wxString& attrName) const {
650   return attrName == wxT("x1") ||
651     attrName == wxT("y1") ||
652     attrName == wxT("x2") ||
653     attrName == wxT("y2") ||
654     wxSVGGradientElement::HasAttribute(attrName);
655 }
656 
657 // wxSVGMPathElement
HasAttribute(const wxString & attrName) const658 bool wxSVGMPathElement::HasAttribute(const wxString& attrName) const {
659   return wxSVGElement::HasAttribute(attrName) ||
660     wxSVGURIReference::HasAttribute(attrName) ||
661     wxSVGExternalResourcesRequired::HasAttribute(attrName);
662 }
663 
664 // wxSVGMarkerElement
HasAttribute(const wxString & attrName) const665 bool wxSVGMarkerElement::HasAttribute(const wxString& attrName) const {
666   return attrName == wxT("refX") ||
667     attrName == wxT("refY") ||
668     attrName == wxT("markerUnits") ||
669     attrName == wxT("markerWidth") ||
670     attrName == wxT("markerHeight") ||
671     wxSVGElement::HasAttribute(attrName) ||
672     wxSVGLangSpace::HasAttribute(attrName) ||
673     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
674     wxSVGStylable::HasAttribute(attrName) ||
675     wxSVGFitToViewBox::HasAttribute(attrName);
676 }
677 
678 // wxSVGMaskElement
HasAttribute(const wxString & attrName) const679 bool wxSVGMaskElement::HasAttribute(const wxString& attrName) const {
680   return attrName == wxT("maskUnits") ||
681     attrName == wxT("maskContentUnits") ||
682     attrName == wxT("x") ||
683     attrName == wxT("y") ||
684     attrName == wxT("width") ||
685     attrName == wxT("height") ||
686     wxSVGElement::HasAttribute(attrName) ||
687     wxSVGTests::HasAttribute(attrName) ||
688     wxSVGLangSpace::HasAttribute(attrName) ||
689     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
690     wxSVGStylable::HasAttribute(attrName);
691 }
692 
693 // wxSVGMetadataElement
HasAttribute(const wxString & attrName) const694 bool wxSVGMetadataElement::HasAttribute(const wxString& attrName) const {
695   return wxSVGElement::HasAttribute(attrName);
696 }
697 
698 // wxSVGMissingGlyphElement
HasAttribute(const wxString & attrName) const699 bool wxSVGMissingGlyphElement::HasAttribute(const wxString& attrName) const {
700   return wxSVGElement::HasAttribute(attrName) ||
701     wxSVGStylable::HasAttribute(attrName);
702 }
703 
704 // wxSVGPathElement
HasAttribute(const wxString & attrName) const705 bool wxSVGPathElement::HasAttribute(const wxString& attrName) const {
706   return attrName == wxT("pathLength") ||
707     wxSVGElement::HasAttribute(attrName) ||
708     wxSVGTests::HasAttribute(attrName) ||
709     wxSVGLangSpace::HasAttribute(attrName) ||
710     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
711     wxSVGStylable::HasAttribute(attrName) ||
712     wxSVGTransformable::HasAttribute(attrName) ||
713     wxSVGAnimatedPathData::HasAttribute(attrName);
714 }
715 
716 // wxSVGPatternElement
HasAttribute(const wxString & attrName) const717 bool wxSVGPatternElement::HasAttribute(const wxString& attrName) const {
718   return attrName == wxT("patternUnits") ||
719     attrName == wxT("patternContentUnits") ||
720     attrName == wxT("patternTransform") ||
721     attrName == wxT("x") ||
722     attrName == wxT("y") ||
723     attrName == wxT("width") ||
724     attrName == wxT("height") ||
725     wxSVGElement::HasAttribute(attrName) ||
726     wxSVGURIReference::HasAttribute(attrName) ||
727     wxSVGTests::HasAttribute(attrName) ||
728     wxSVGLangSpace::HasAttribute(attrName) ||
729     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
730     wxSVGStylable::HasAttribute(attrName) ||
731     wxSVGFitToViewBox::HasAttribute(attrName);
732 }
733 
734 // wxSVGPolygonElement
HasAttribute(const wxString & attrName) const735 bool wxSVGPolygonElement::HasAttribute(const wxString& attrName) const {
736   return wxSVGElement::HasAttribute(attrName) ||
737     wxSVGTests::HasAttribute(attrName) ||
738     wxSVGLangSpace::HasAttribute(attrName) ||
739     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
740     wxSVGStylable::HasAttribute(attrName) ||
741     wxSVGTransformable::HasAttribute(attrName) ||
742     wxSVGAnimatedPoints::HasAttribute(attrName);
743 }
744 
745 // wxSVGPolylineElement
HasAttribute(const wxString & attrName) const746 bool wxSVGPolylineElement::HasAttribute(const wxString& attrName) const {
747   return wxSVGElement::HasAttribute(attrName) ||
748     wxSVGTests::HasAttribute(attrName) ||
749     wxSVGLangSpace::HasAttribute(attrName) ||
750     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
751     wxSVGStylable::HasAttribute(attrName) ||
752     wxSVGTransformable::HasAttribute(attrName) ||
753     wxSVGAnimatedPoints::HasAttribute(attrName);
754 }
755 
756 // wxSVGRadialGradientElement
HasAttribute(const wxString & attrName) const757 bool wxSVGRadialGradientElement::HasAttribute(const wxString& attrName) const {
758   return attrName == wxT("cx") ||
759     attrName == wxT("cy") ||
760     attrName == wxT("r") ||
761     attrName == wxT("fx") ||
762     attrName == wxT("fy") ||
763     wxSVGGradientElement::HasAttribute(attrName);
764 }
765 
766 // wxSVGRectElement
HasAttribute(const wxString & attrName) const767 bool wxSVGRectElement::HasAttribute(const wxString& attrName) const {
768   return attrName == wxT("x") ||
769     attrName == wxT("y") ||
770     attrName == wxT("width") ||
771     attrName == wxT("height") ||
772     attrName == wxT("rx") ||
773     attrName == wxT("ry") ||
774     wxSVGElement::HasAttribute(attrName) ||
775     wxSVGTests::HasAttribute(attrName) ||
776     wxSVGLangSpace::HasAttribute(attrName) ||
777     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
778     wxSVGStylable::HasAttribute(attrName) ||
779     wxSVGTransformable::HasAttribute(attrName);
780 }
781 
782 // wxSVGSVGElement
HasAttribute(const wxString & attrName) const783 bool wxSVGSVGElement::HasAttribute(const wxString& attrName) const {
784   return attrName == wxT("x") ||
785     attrName == wxT("y") ||
786     attrName == wxT("width") ||
787     attrName == wxT("height") ||
788     attrName == wxT("contentScriptType") ||
789     attrName == wxT("contentStyleType") ||
790     wxSVGElement::HasAttribute(attrName) ||
791     wxSVGTests::HasAttribute(attrName) ||
792     wxSVGLangSpace::HasAttribute(attrName) ||
793     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
794     wxSVGStylable::HasAttribute(attrName) ||
795     wxSVGFitToViewBox::HasAttribute(attrName) ||
796     wxSVGZoomAndPan::HasAttribute(attrName);
797 }
798 
799 // wxSVGScriptElement
HasAttribute(const wxString & attrName) const800 bool wxSVGScriptElement::HasAttribute(const wxString& attrName) const {
801   return attrName == wxT("type") ||
802     wxSVGElement::HasAttribute(attrName) ||
803     wxSVGURIReference::HasAttribute(attrName) ||
804     wxSVGExternalResourcesRequired::HasAttribute(attrName);
805 }
806 
807 // wxSVGSetElement
HasAttribute(const wxString & attrName) const808 bool wxSVGSetElement::HasAttribute(const wxString& attrName) const {
809   return wxSVGAnimationElement::HasAttribute(attrName);
810 }
811 
812 // wxSVGStopElement
HasAttribute(const wxString & attrName) const813 bool wxSVGStopElement::HasAttribute(const wxString& attrName) const {
814   return attrName == wxT("offset") ||
815     wxSVGElement::HasAttribute(attrName) ||
816     wxSVGStylable::HasAttribute(attrName);
817 }
818 
819 // wxSVGStylable
HasAttribute(const wxString & attrName) const820 bool wxSVGStylable::HasAttribute(const wxString& attrName) const {
821   return attrName == wxT("class") ||
822     attrName == wxT("style") ||
823     HasCustomAttribute(attrName);
824 }
825 
826 // wxSVGStyleElement
HasAttribute(const wxString & attrName) const827 bool wxSVGStyleElement::HasAttribute(const wxString& attrName) const {
828   return attrName == wxT("xml:space") ||
829     attrName == wxT("type") ||
830     attrName == wxT("media") ||
831     attrName == wxT("title") ||
832     wxSVGElement::HasAttribute(attrName);
833 }
834 
835 // wxSVGSwitchElement
HasAttribute(const wxString & attrName) const836 bool wxSVGSwitchElement::HasAttribute(const wxString& attrName) const {
837   return wxSVGElement::HasAttribute(attrName) ||
838     wxSVGTests::HasAttribute(attrName) ||
839     wxSVGLangSpace::HasAttribute(attrName) ||
840     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
841     wxSVGStylable::HasAttribute(attrName) ||
842     wxSVGTransformable::HasAttribute(attrName);
843 }
844 
845 // wxSVGSymbolElement
HasAttribute(const wxString & attrName) const846 bool wxSVGSymbolElement::HasAttribute(const wxString& attrName) const {
847   return wxSVGElement::HasAttribute(attrName) ||
848     wxSVGLangSpace::HasAttribute(attrName) ||
849     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
850     wxSVGStylable::HasAttribute(attrName) ||
851     wxSVGFitToViewBox::HasAttribute(attrName);
852 }
853 
854 // wxSVGTBreakElement
HasAttribute(const wxString & attrName) const855 bool wxSVGTBreakElement::HasAttribute(const wxString& attrName) const {
856   return wxSVGElement::HasAttribute(attrName);
857 }
858 
859 // wxSVGTRefElement
HasAttribute(const wxString & attrName) const860 bool wxSVGTRefElement::HasAttribute(const wxString& attrName) const {
861   return wxSVGTextPositioningElement::HasAttribute(attrName) ||
862     wxSVGURIReference::HasAttribute(attrName);
863 }
864 
865 // wxSVGTSpanElement
HasAttribute(const wxString & attrName) const866 bool wxSVGTSpanElement::HasAttribute(const wxString& attrName) const {
867   return wxSVGTextPositioningElement::HasAttribute(attrName);
868 }
869 
870 // wxSVGTests
HasAttribute(const wxString & attrName) const871 bool wxSVGTests::HasAttribute(const wxString& attrName) const {
872   return attrName == wxT("requiredFeatures") ||
873     attrName == wxT("requiredExtensions") ||
874     attrName == wxT("systemLanguage");
875 }
876 
877 // wxSVGTextContentElement
HasAttribute(const wxString & attrName) const878 bool wxSVGTextContentElement::HasAttribute(const wxString& attrName) const {
879   return attrName == wxT("textLength") ||
880     attrName == wxT("lengthAdjust") ||
881     wxSVGElement::HasAttribute(attrName) ||
882     wxSVGTests::HasAttribute(attrName) ||
883     wxSVGLangSpace::HasAttribute(attrName) ||
884     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
885     wxSVGStylable::HasAttribute(attrName);
886 }
887 
888 // wxSVGTextElement
HasAttribute(const wxString & attrName) const889 bool wxSVGTextElement::HasAttribute(const wxString& attrName) const {
890   return wxSVGTextPositioningElement::HasAttribute(attrName) ||
891     wxSVGTransformable::HasAttribute(attrName);
892 }
893 
894 // wxSVGTextPathElement
HasAttribute(const wxString & attrName) const895 bool wxSVGTextPathElement::HasAttribute(const wxString& attrName) const {
896   return attrName == wxT("startOffset") ||
897     attrName == wxT("method") ||
898     attrName == wxT("spacing") ||
899     wxSVGTextContentElement::HasAttribute(attrName) ||
900     wxSVGURIReference::HasAttribute(attrName);
901 }
902 
903 // wxSVGTextPositioningElement
HasAttribute(const wxString & attrName) const904 bool wxSVGTextPositioningElement::HasAttribute(const wxString& attrName) const {
905   return attrName == wxT("x") ||
906     attrName == wxT("y") ||
907     attrName == wxT("dx") ||
908     attrName == wxT("dy") ||
909     attrName == wxT("rotate") ||
910     wxSVGTextContentElement::HasAttribute(attrName);
911 }
912 
913 // wxSVGTitleElement
HasAttribute(const wxString & attrName) const914 bool wxSVGTitleElement::HasAttribute(const wxString& attrName) const {
915   return wxSVGElement::HasAttribute(attrName) ||
916     wxSVGLangSpace::HasAttribute(attrName) ||
917     wxSVGStylable::HasAttribute(attrName);
918 }
919 
920 // wxSVGTransformable
HasAttribute(const wxString & attrName) const921 bool wxSVGTransformable::HasAttribute(const wxString& attrName) const {
922   return attrName == wxT("transform");
923 }
924 
925 // wxSVGURIReference
HasAttribute(const wxString & attrName) const926 bool wxSVGURIReference::HasAttribute(const wxString& attrName) const {
927   return attrName == wxT("xlink:href");
928 }
929 
930 // wxSVGUseElement
HasAttribute(const wxString & attrName) const931 bool wxSVGUseElement::HasAttribute(const wxString& attrName) const {
932   return attrName == wxT("x") ||
933     attrName == wxT("y") ||
934     attrName == wxT("width") ||
935     attrName == wxT("height") ||
936     wxSVGElement::HasAttribute(attrName) ||
937     wxSVGURIReference::HasAttribute(attrName) ||
938     wxSVGTests::HasAttribute(attrName) ||
939     wxSVGLangSpace::HasAttribute(attrName) ||
940     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
941     wxSVGStylable::HasAttribute(attrName) ||
942     wxSVGTransformable::HasAttribute(attrName);
943 }
944 
945 // wxSVGVKernElement
HasAttribute(const wxString & attrName) const946 bool wxSVGVKernElement::HasAttribute(const wxString& attrName) const {
947   return wxSVGElement::HasAttribute(attrName);
948 }
949 
950 // wxSVGVideoElement
HasAttribute(const wxString & attrName) const951 bool wxSVGVideoElement::HasAttribute(const wxString& attrName) const {
952   return attrName == wxT("x") ||
953     attrName == wxT("y") ||
954     attrName == wxT("width") ||
955     attrName == wxT("height") ||
956     attrName == wxT("preserveAspectRatio") ||
957     attrName == wxT("begin") ||
958     attrName == wxT("dur") ||
959     attrName == wxT("clipBegin") ||
960     attrName == wxT("clipEnd") ||
961     wxSVGElement::HasAttribute(attrName) ||
962     wxSVGURIReference::HasAttribute(attrName) ||
963     wxSVGLangSpace::HasAttribute(attrName) ||
964     wxSVGStylable::HasAttribute(attrName) ||
965     wxSVGTransformable::HasAttribute(attrName);
966 }
967 
968 // wxSVGViewElement
HasAttribute(const wxString & attrName) const969 bool wxSVGViewElement::HasAttribute(const wxString& attrName) const {
970   return attrName == wxT("viewTarget") ||
971     wxSVGElement::HasAttribute(attrName) ||
972     wxSVGExternalResourcesRequired::HasAttribute(attrName) ||
973     wxSVGFitToViewBox::HasAttribute(attrName) ||
974     wxSVGZoomAndPan::HasAttribute(attrName);
975 }
976 
977 // wxSVGViewSpec
HasAttribute(const wxString & attrName) const978 bool wxSVGViewSpec::HasAttribute(const wxString& attrName) const {
979   return wxSVGZoomAndPan::HasAttribute(attrName) ||
980     wxSVGFitToViewBox::HasAttribute(attrName);
981 }
982 
983 // wxSVGZoomAndPan
HasAttribute(const wxString & attrName) const984 bool wxSVGZoomAndPan::HasAttribute(const wxString& attrName) const {
985   return attrName == wxT("zoomAndPan");
986 }
987 
988