2
* Phoebe DOM Implementation.
4
* This is a C++ approximation of the W3C DOM model, which follows
5
* fairly closely the specifications in the various .idl files, copies of
6
* which are provided for reference. Most important is this one:
8
* http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
13
* Copyright (C) 2005-2008 Bob Jamison
15
* This library is free software; you can redistribute it and/or
16
* modify it under the terms of the GNU Lesser General Public
17
* License as published by the Free Software Foundation; either
18
* version 2.1 of the License, or (at your option) any later version.
20
* This library is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23
* Lesser General Public License for more details.
25
* You should have received a copy of the GNU Lesser General Public
26
* License along with this library; if not, write to the Free Software
27
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
35
* This is the .cpp side of the SVG implementations classes. Note that many
36
* of the sections for each of the classes is empty. This is because that class
37
* has been implemented totally in svgimpl.h
50
/*#########################################################################
52
#########################################################################*/
54
static DOMString d2s(double d)
57
snprintf(buf, 40, "%f", d);
62
static double s2d(const DOMString &s)
64
const char *begin = s.c_str();
66
double val = strtod(begin, &end);
73
/*#########################################################################
74
## Element type lookup table
75
#########################################################################*/
78
* Used for mapping name->enum and enum->name.
79
* For SVG element and interface types.
89
SVGTableEntry interfaceTable[] =
91
{ "SVGAngle", SVG_ANGLE },
92
{ "SVGAnimatedAngle", SVG_ANIMATED_ANGLE },
93
{ "SVGAnimatedBoolean", SVG_ANIMATED_BOOLEAN },
94
{ "SVGAnimatedEnumeration", SVG_ANIMATED_ENUMERATION },
95
{ "SVGAnimatedInteger", SVG_ANIMATED_INTEGER },
96
{ "SVGAnimatedLength", SVG_ANIMATED_LENGTH },
97
{ "SVGAnimatedLengthList", SVG_ANIMATED_LENGTH_LIST },
98
{ "SVGAnimatedNumber", SVG_ANIMATED_NUMBER },
99
{ "SVGAnimatedNumberList", SVG_ANIMATED_NUMBER_LIST },
100
{ "SVGAnimatedRect", SVG_ANIMATED_RECT },
101
{ "SVGAnimatedString", SVG_ANIMATED_STRING },
102
{ "SVGColor", SVG_COLOR },
103
{ "SVGCSSRule", SVG_CSS_RULE },
104
{ "SVGExternalResourcesRequired", SVG_EXTERNAL_RESOURCES_REQUIRED },
105
{ "SVGFitToViewBox", SVG_FIT_TO_VIEWBOX },
106
{ "SVGICCColor", SVG_ICCCOLOR },
107
{ "SVGLangSpace", SVG_LANG_SPACE },
108
{ "SVGLength", SVG_LENGTH },
109
{ "SVGLengthList", SVG_LENGTH_LIST },
110
{ "SVGLocatable", SVG_LOCATABLE },
111
{ "SVGNumber", SVG_NUMBER },
112
{ "SVGNumberList", SVG_NUMBER_LIST },
113
{ "SVGRect", SVG_RECT },
114
{ "SVGRenderingIntent", SVG_RENDERING_INTENT },
115
{ "SVGStringList", SVG_STRING_LIST },
116
{ "SVGStylable", SVG_STYLABLE },
117
{ "SVGTests", SVG_TESTS },
118
{ "SVGTransformable", SVG_TRANSFORMABLE },
119
{ "SVGUnitTypes", SVG_UNIT_TYPES },
120
{ "SVGURIReference", SVG_URI_REFERENCE },
121
{ "SVGViewSpec", SVG_VIEW_SPEC },
122
{ "SVGZoomAndPan", SVG_ZOOM_AND_PAN }
126
SVGTableEntry elementTable[] =
128
{ "a", SVG_A_ELEMENT },
129
{ "altGlyph", SVG_ALTGLYPH_ELEMENT },
130
{ "altGlyphDef", SVG_ALTGLYPHDEF_ELEMENT },
131
{ "altGlyphItem", SVG_ALTGLYPHITEM_ELEMENT },
132
{ "animate", SVG_ANIMATE_ELEMENT },
133
{ "animateColor", SVG_ANIMATECOLOR_ELEMENT },
134
{ "animateMotion", SVG_ANIMATEMOTION_ELEMENT },
135
{ "animateTransform", SVG_ANIMATETRANSFORM_ELEMENT },
136
{ "circle", SVG_CIRCLE_ELEMENT },
137
{ "clipPath", SVG_CLIPPATH_ELEMENT },
138
{ "color-profile", SVG_COLOR_PROFILE_ELEMENT },
139
{ "cursor", SVG_CURSOR_ELEMENT },
140
{ "definition-src", SVG_DEFINITION_SRC_ELEMENT },
141
{ "defs", SVG_DEFS_ELEMENT },
142
{ "desc", SVG_DESC_ELEMENT },
143
{ "ellipse", SVG_ELLIPSE_ELEMENT },
144
{ "feBlend", SVG_FEBLEND_ELEMENT },
145
{ "feColorMatrix", SVG_FECOLORMATRIX_ELEMENT },
146
{ "feComponentTransfer", SVG_FECOMPONENTTRANSFER_ELEMENT },
147
{ "feComposite", SVG_FECOMPOSITE_ELEMENT },
148
{ "feConvolveMatrix", SVG_FECONVOLVEMATRIX_ELEMENT },
149
{ "feDiffuseLighting", SVG_FEDIFFUSELIGHTING_ELEMENT },
150
{ "feDisplacementMap", SVG_FEDISPLACEMENTMAP_ELEMENT },
151
{ "feDistantLight", SVG_FEDISTANTLIGHT_ELEMENT },
152
{ "feFlood", SVG_FEFLOOD_ELEMENT },
153
{ "feFuncA", SVG_FEFUNCA_ELEMENT },
154
{ "feFuncB", SVG_FEFUNCB_ELEMENT },
155
{ "feFuncG", SVG_FEFUNCG_ELEMENT },
156
{ "feFuncR", SVG_FEFUNCR_ELEMENT },
157
{ "feGaussianBlur", SVG_FEGAUSSIANBLUR_ELEMENT },
158
{ "feImage", SVG_FEIMAGE_ELEMENT },
159
{ "feMerge", SVG_FEMERGE_ELEMENT },
160
{ "feMergeNode", SVG_FEMERGENODE_ELEMENT },
161
{ "feMorphology", SVG_FEMORPHOLOGY_ELEMENT },
162
{ "feOffset", SVG_FEOFFSET_ELEMENT },
163
{ "fePointLight", SVG_FEPOINTLIGHT_ELEMENT },
164
{ "feSpecularLighting", SVG_FESPECULARLIGHTING_ELEMENT },
165
{ "feSpotLight", SVG_FESPOTLIGHT_ELEMENT },
166
{ "feTile", SVG_FETILE_ELEMENT },
167
{ "feTurbulence", SVG_FETURBULENCE_ELEMENT },
168
{ "filter", SVG_FILTER_ELEMENT },
169
{ "font", SVG_FONT_ELEMENT },
170
{ "font-face", SVG_FONT_FACE_ELEMENT },
171
{ "font-face-format", SVG_FONT_FACE_FORMAT_ELEMENT },
172
{ "font-face-name", SVG_FONT_FACE_NAME_ELEMENT },
173
{ "font-face-src", SVG_FONT_FACE_SRC_ELEMENT },
174
{ "font-face-uri", SVG_FONT_FACE_URI_ELEMENT },
175
{ "foreignObject", SVG_FOREIGNOBJECT_ELEMENT },
176
{ "g", SVG_G_ELEMENT },
177
{ "glyph", SVG_GLYPH_ELEMENT },
178
{ "glyphRef", SVG_GLYPHREF_ELEMENT },
179
{ "hkern", SVG_HKERN_ELEMENT },
180
{ "image", SVG_IMAGE_ELEMENT },
181
{ "line", SVG_LINE_ELEMENT },
182
{ "linearGradient", SVG_LINEARGRADIENT_ELEMENT },
183
{ "marker", SVG_MARKER_ELEMENT },
184
{ "mask", SVG_MASK_ELEMENT },
185
{ "metadata", SVG_METADATA_ELEMENT },
186
{ "missing-glyph", SVG_MISSING_GLYPH_ELEMENT },
187
{ "mpath", SVG_MPATH_ELEMENT },
188
{ "path", SVG_PATH_ELEMENT },
189
{ "pattern", SVG_PATTERN_ELEMENT },
190
{ "polygon", SVG_POLYGON_ELEMENT },
191
{ "polyline", SVG_POLYLINE_ELEMENT },
192
{ "radialGradient", SVG_RADIALGRADIENT_ELEMENT },
193
{ "rect", SVG_RECT_ELEMENT },
194
{ "script", SVG_SCRIPT_ELEMENT },
195
{ "set", SVG_SET_ELEMENT },
196
{ "stop", SVG_STOP_ELEMENT },
197
{ "style", SVG_STYLE_ELEMENT },
198
{ "svg", SVG_SVG_ELEMENT },
199
{ "switch", SVG_SWITCH_ELEMENT },
200
{ "symbol", SVG_SYMBOL_ELEMENT },
201
{ "text", SVG_TEXT_ELEMENT },
202
{ "textPath", SVG_TEXTPATH_ELEMENT },
203
{ "title", SVG_TITLE_ELEMENT },
204
{ "tref", SVG_TREF_ELEMENT },
205
{ "tspan", SVG_TSPAN_ELEMENT },
206
{ "use", SVG_USE_ELEMENT },
207
{ "view", SVG_VIEW_ELEMENT },
208
{ "vkern", SVG_VKERN_ELEMENT }
212
static int _entryComparison(const void *vkey, const void *ventry)
214
const char *key = (const char *)vkey;
215
const SVGTableEntry *entry = (const SVGTableEntry *)ventry;
216
return strcmp(key, entry->name);
220
* Look up the SVG Element type enum for a given string
221
* Return -1 if not found
223
int svgElementStrToEnum(const char *str)
227
SVGTableEntry *entry =
228
(SVGTableEntry *)bsearch(str, elementTable,
229
SVG_MAX_ELEMENT, sizeof(SVGTableEntry), _entryComparison);
237
* Return the string corresponding to a given SVG element type enum
238
* Return "unknown" if not found
240
const char *svgElementEnumToStr(int type)
242
if (type < 0 || type >= SVG_MAX_ELEMENT)
244
return elementTable[type].name;
249
* Look up the SVG Interface type enum for a given string
250
* Return -1 if not found
252
int svgInterfaceStrToEnum(const char *str)
256
SVGTableEntry *entry =
257
(SVGTableEntry *)bsearch(str, interfaceTable,
258
SVG_NR_INTERFACES, sizeof(SVGTableEntry), _entryComparison);
266
* Return the string corresponding to a given SVG element type enum
267
* Return "unknown" if not found
269
const char *svgInterfaceEnumToStr(int type)
271
if (type < 1 || type > (int)SVG_ZOOM_AND_PAN)
273
SVGTableEntry *entry = interfaceTable;
274
for (int i = 0 ; i < SVG_NR_INTERFACES ; i++)
276
if (entry->type == type)
284
/*#########################################################################
286
#########################################################################*/
296
/*#########################################################################
298
#########################################################################*/
302
//####################################################
303
//# Overload some createXXX() methods from DocumentImpl,
304
//# To create our SVG-DOM types
305
//####################################################
310
ElementPtr SVGDocumentImpl::createElement(const DOMString& tagName)
314
int elementType = svgElementStrToEnum(tagName.c_str());
319
elem = new SVGAElementImpl();
322
case SVG_ALTGLYPH_ELEMENT:
324
elem = new SVGAltGlyphElementImpl();
327
case SVG_ALTGLYPHDEF_ELEMENT:
329
elem = new SVGAltGlyphDefElementImpl();
332
case SVG_ALTGLYPHITEM_ELEMENT:
334
elem = new SVGAltGlyphItemElementImpl();
337
case SVG_ANIMATE_ELEMENT:
339
elem = new SVGAnimateElementImpl();
342
case SVG_ANIMATECOLOR_ELEMENT:
344
elem = new SVGAnimateColorElementImpl();
347
case SVG_ANIMATEMOTION_ELEMENT:
349
elem = new SVGAnimateMotionElementImpl();
352
case SVG_ANIMATETRANSFORM_ELEMENT:
354
elem = new SVGAnimateTransformElementImpl();
357
case SVG_CIRCLE_ELEMENT:
359
elem = new SVGCircleElementImpl();
362
case SVG_CLIPPATH_ELEMENT:
364
elem = new SVGClipPathElementImpl();
367
case SVG_COLOR_PROFILE_ELEMENT:
369
elem = new SVGColorProfileElementImpl();
372
case SVG_CURSOR_ELEMENT:
374
elem = new SVGCursorElementImpl();
377
case SVG_DEFINITION_SRC_ELEMENT:
379
elem = new SVGDefinitionSrcElementImpl();
382
case SVG_DEFS_ELEMENT:
384
elem = new SVGDefsElementImpl();
387
case SVG_DESC_ELEMENT:
389
elem = new SVGDescElementImpl();
392
case SVG_ELLIPSE_ELEMENT:
394
elem = new SVGEllipseElementImpl();
397
case SVG_FEBLEND_ELEMENT:
399
elem = new SVGFEBlendElementImpl();
402
case SVG_FECOLORMATRIX_ELEMENT:
404
elem = new SVGFEColorMatrixElementImpl();
407
case SVG_FECOMPONENTTRANSFER_ELEMENT:
409
elem = new SVGFEComponentTransferElementImpl();
412
case SVG_FECOMPOSITE_ELEMENT:
414
elem = new SVGFECompositeElementImpl();
417
case SVG_FECONVOLVEMATRIX_ELEMENT:
419
elem = new SVGFEConvolveMatrixElementImpl();
422
case SVG_FEDIFFUSELIGHTING_ELEMENT:
424
elem = new SVGFEDiffuseLightingElementImpl();
427
case SVG_FEDISPLACEMENTMAP_ELEMENT:
429
elem = new SVGFEDisplacementMapElementImpl();
432
case SVG_FEDISTANTLIGHT_ELEMENT:
434
elem = new SVGFEDistantLightElementImpl();
437
case SVG_FEFLOOD_ELEMENT:
439
elem = new SVGFEFloodElementImpl();
442
case SVG_FEFUNCA_ELEMENT:
444
elem = new SVGFEFuncAElementImpl();
447
case SVG_FEFUNCB_ELEMENT:
449
elem = new SVGFEFuncBElementImpl();
452
case SVG_FEFUNCG_ELEMENT:
454
elem = new SVGFEFuncGElementImpl();
457
case SVG_FEFUNCR_ELEMENT:
459
elem = new SVGFEFuncRElementImpl();
462
case SVG_FEGAUSSIANBLUR_ELEMENT:
464
elem = new SVGFEGaussianBlurElementImpl();
467
case SVG_FEIMAGE_ELEMENT:
469
elem = new SVGFEImageElementImpl();
472
case SVG_FEMERGE_ELEMENT:
474
elem = new SVGFEMergeElementImpl();
477
case SVG_FEMERGENODE_ELEMENT:
479
elem = new SVGFEMergeNodeElementImpl();
482
case SVG_FEMORPHOLOGY_ELEMENT:
484
elem = new SVGFEMorphologyElementImpl();
487
case SVG_FEOFFSET_ELEMENT:
489
elem = new SVGFEOffsetElementImpl();
492
case SVG_FEPOINTLIGHT_ELEMENT:
494
elem = new SVGFEPointLightElementImpl();
497
case SVG_FESPECULARLIGHTING_ELEMENT:
499
elem = new SVGFESpecularLightingElementImpl();
502
case SVG_FESPOTLIGHT_ELEMENT:
504
elem = new SVGFESpotLightElementImpl();
507
case SVG_FETILE_ELEMENT:
509
elem = new SVGFETileElementImpl();
512
case SVG_FETURBULENCE_ELEMENT:
514
elem = new SVGFETurbulenceElementImpl();
517
case SVG_FILTER_ELEMENT:
519
elem = new SVGFilterElementImpl();
522
case SVG_FONT_ELEMENT:
524
elem = new SVGAElementImpl();
527
case SVG_FONT_FACE_ELEMENT:
529
elem = new SVGFontElementImpl();
532
case SVG_FONT_FACE_FORMAT_ELEMENT:
534
elem = new SVGFontFaceFormatElementImpl();
537
case SVG_FONT_FACE_NAME_ELEMENT:
539
elem = new SVGFontFaceNameElementImpl();
542
case SVG_FONT_FACE_SRC_ELEMENT:
544
elem = new SVGFontFaceSrcElementImpl();
547
case SVG_FONT_FACE_URI_ELEMENT:
549
elem = new SVGFontFaceUriElementImpl();
552
case SVG_FOREIGNOBJECT_ELEMENT:
554
elem = new SVGForeignObjectElementImpl();
559
elem = new SVGGElementImpl();
562
case SVG_GLYPH_ELEMENT:
564
elem = new SVGGlyphElementImpl();
567
case SVG_GLYPHREF_ELEMENT:
569
elem = new SVGGlyphRefElementImpl();
572
case SVG_HKERN_ELEMENT:
574
elem = new SVGHKernElementImpl();
577
case SVG_IMAGE_ELEMENT:
579
elem = new SVGImageElementImpl();
582
case SVG_LINE_ELEMENT:
584
elem = new SVGLineElementImpl();
587
case SVG_LINEARGRADIENT_ELEMENT:
589
elem = new SVGLinearGradientElementImpl();
592
case SVG_MARKER_ELEMENT:
594
elem = new SVGMarkerElementImpl();
597
case SVG_MASK_ELEMENT:
599
elem = new SVGMaskElementImpl();
602
case SVG_METADATA_ELEMENT:
604
elem = new SVGMetadataElementImpl();
607
case SVG_MISSING_GLYPH_ELEMENT:
609
elem = new SVGMissingGlyphElementImpl();
612
case SVG_MPATH_ELEMENT:
614
elem = new SVGMPathElementImpl();
617
case SVG_PATH_ELEMENT:
619
elem = new SVGPathElementImpl();
622
case SVG_PATTERN_ELEMENT:
624
elem = new SVGPatternElementImpl();
627
case SVG_POLYGON_ELEMENT:
629
elem = new SVGPolygonElementImpl();
632
case SVG_POLYLINE_ELEMENT:
634
elem = new SVGPolylineElementImpl();
637
case SVG_RADIALGRADIENT_ELEMENT:
639
elem = new SVGRadialGradientElementImpl();
642
case SVG_RECT_ELEMENT:
644
elem = new SVGRectElementImpl();
647
case SVG_SCRIPT_ELEMENT:
649
elem = new SVGScriptElementImpl();
652
case SVG_SET_ELEMENT:
654
elem = new SVGSetElementImpl();
657
case SVG_STOP_ELEMENT:
659
elem = new SVGStopElementImpl();
662
case SVG_STYLE_ELEMENT:
664
elem = new SVGStyleElementImpl();
667
case SVG_SVG_ELEMENT:
669
elem = new SVGSVGElementImpl();
672
case SVG_SWITCH_ELEMENT:
674
elem = new SVGSwitchElementImpl();
677
case SVG_SYMBOL_ELEMENT:
679
elem = new SVGSymbolElementImpl();
682
case SVG_TEXT_ELEMENT:
684
elem = new SVGTextElementImpl();
687
case SVG_TEXTPATH_ELEMENT:
689
elem = new SVGTextPathElementImpl();
692
case SVG_TITLE_ELEMENT:
694
elem = new SVGTitleElementImpl();
697
case SVG_TREF_ELEMENT:
699
elem = new SVGTRefElementImpl();
702
case SVG_TSPAN_ELEMENT:
704
elem = new SVGTSpanElementImpl();
707
case SVG_USE_ELEMENT:
709
elem = new SVGUseElementImpl();
712
case SVG_VIEW_ELEMENT:
714
elem = new SVGViewElementImpl();
717
case SVG_VKERN_ELEMENT:
719
elem = new SVGVKernElementImpl();
733
ElementPtr SVGDocumentImpl::createElementNS(const DOMString& namespaceURI,
734
const DOMString& qualifiedName)
738
if (namespaceURI == SVG_NAMESPACE)
739
elem = createElement(qualifiedName);
741
elem = new SVGElementImpl(this, namespaceURI, qualifiedName);
751
void SVGDocumentImpl::init()
756
rootElement = new SVGSVGElementImpl();
764
/*#########################################################################
766
#########################################################################*/
770
* Retrieves an attribute value by name.
772
DOMString SVGSVGElementImpl::getAttribute(const DOMString& name)
776
s = d2s(x.getAnimVal().getValue());
777
else if (name == "y")
778
s = d2s(y.getAnimVal().getValue());
780
s = SVGElement::getAttribute(name);
785
* Sets an attribute value
787
void SVGSVGElementImpl::setAttribute(const DOMString& name,
788
const DOMString& value)
792
x.getAnimVal().setValue(s2d(value));
793
else if (name == "y")
794
y.getAnimVal().setValue(s2d(value));
795
SVGElement::setAttribute(name, value);
802
unsigned long SVGSVGElementImpl::suspendRedraw(unsigned long /*max_wait_milliseconds*/ )
810
void SVGSVGElementImpl::unsuspendRedraw(unsigned long /*suspend_handle_id*/ )
811
throw ( DOMException )
819
void SVGSVGElementImpl::unsuspendRedrawAll( )
826
void SVGSVGElementImpl::forceRedraw( )
833
void SVGSVGElementImpl::pauseAnimations( )
840
void SVGSVGElementImpl::unpauseAnimations( )
847
bool SVGSVGElementImpl::animationsPaused( )
856
NodeList SVGSVGElementImpl::getIntersectionList(const SVGRect &/*rect*/,
857
const SVGElementPtr /*referenceElement*/ )
866
NodeList SVGSVGElementImpl::getEnclosureList(const SVGRect &/*rect*/,
867
const SVGElementPtr /*referenceElement*/ )
876
bool SVGSVGElementImpl::checkIntersection(const SVGElementPtr /*element*/,
877
const SVGRect &/*rect*/ )
885
bool SVGSVGElementImpl::checkEnclosure(const SVGElementPtr /*element*/,
886
const SVGRect &/*rect*/ )
894
void SVGSVGElementImpl::deselectAll( )
901
ElementPtr SVGSVGElementImpl::getElementById(const DOMString& /*elementId*/ )
916
/*#########################################################################
918
#########################################################################*/
930
/*#########################################################################
931
## SVGDefsElementImpl
932
#########################################################################*/
945
/*#########################################################################
946
## SVGDescElementImpl
947
#########################################################################*/
960
/*#########################################################################
961
## SVGTitleElementImpl
962
#########################################################################*/
973
/*#########################################################################
974
## SVGSymbolElementImpl
975
#########################################################################*/
989
/*#########################################################################
991
#########################################################################*/
1007
/*#########################################################################
1008
## SVGImageElementImpl
1009
#########################################################################*/
1013
//##################
1015
//##################
1024
/*#########################################################################
1025
## SVGSwitchElementImpl
1026
#########################################################################*/
1030
//##################
1032
//##################
1039
/*#########################################################################
1040
## GetSVGDocumentImpl
1041
#########################################################################*/
1046
SVGDocumentPtr GetSVGDocumentImpl::getSVGDocument( )
1047
throw ( DOMException )
1052
//##################
1054
//##################
1063
/*#########################################################################
1064
## SVGStyleElementImpl
1065
#########################################################################*/
1071
//##################
1073
//##################
1078
/*#########################################################################
1079
## SVGPathElementImpl
1080
#########################################################################*/
1085
SVGAnimatedNumber SVGPathElementImpl::getPathLength()
1087
SVGAnimatedNumber ret;
1094
double SVGPathElementImpl::getTotalLength( )
1102
SVGPoint SVGPathElementImpl::getPointAtLength(double /*distance*/ )
1111
unsigned long SVGPathElementImpl::getPathSegAtLength(double /*distance*/ )
1117
//##################
1119
//##################
1128
/*#########################################################################
1129
## SVGRectElementImpl
1130
#########################################################################*/
1136
//##################
1138
//##################
1147
/*#########################################################################
1148
## SVGCircleElementImpl
1149
#########################################################################*/
1154
//##################
1156
//##################
1165
/*#########################################################################
1166
## SVGEllipseElementImpl
1167
#########################################################################*/
1171
//##################
1173
//##################
1182
/*#########################################################################
1183
## SVGLineElementImpl
1184
#########################################################################*/
1187
//##################
1189
//##################
1198
/*#########################################################################
1199
## SVGPolylineElementImpl
1200
#########################################################################*/
1206
//##################
1208
//##################
1215
/*#########################################################################
1216
## SVGPolygonElementImpl
1217
#########################################################################*/
1224
//##################
1226
//##################
1234
/*#########################################################################
1235
## SVGTextContentElementImpl
1236
#########################################################################*/
1241
SVGAnimatedLength SVGTextContentElementImpl::getTextLength()
1243
SVGAnimatedLength ret;
1251
SVGAnimatedEnumeration SVGTextContentElementImpl::getLengthAdjust()
1253
SVGAnimatedEnumeration ret;
1261
long SVGTextContentElementImpl::getNumberOfChars( )
1269
double SVGTextContentElementImpl::getComputedTextLength( )
1277
double SVGTextContentElementImpl::getSubStringLength(unsigned long /*charnum*/, unsigned long /*nchars*/ )
1278
throw ( DOMException )
1286
SVGPoint SVGTextContentElementImpl::getStartPositionOfChar(unsigned long /*charnum*/ )
1287
throw ( DOMException )
1296
SVGPoint SVGTextContentElementImpl::getEndPositionOfChar(unsigned long /*charnum*/ )
1297
throw ( DOMException )
1306
SVGRect SVGTextContentElementImpl::getExtentOfChar(unsigned long /*charnum*/ )
1307
throw ( DOMException )
1316
double SVGTextContentElementImpl::getRotationOfChar(unsigned long /*charnum*/ )
1317
throw ( DOMException )
1325
long SVGTextContentElementImpl::getCharNumAtPosition(const SVGPoint &/*point*/ )
1333
void SVGTextContentElementImpl::selectSubString(unsigned long /*charnum*/,
1334
unsigned long /*nchars*/ )
1335
throw ( DOMException )
1341
//##################
1343
//##################
1353
/*#########################################################################
1354
## SVGTextPositioningElementImpl
1355
#########################################################################*/
1360
//##################
1362
//##################
1371
/*#########################################################################
1372
## SVGTextElementImpl
1373
#########################################################################*/
1379
//##################
1381
//##################
1389
/*#########################################################################
1390
## SVGTSpanElementImpl
1391
#########################################################################*/
1397
//##################
1399
//##################
1406
/*#########################################################################
1407
## SVGTRefElementImpl
1408
#########################################################################*/
1414
//##################
1416
//##################
1424
/*#########################################################################
1425
## SVGTextPathElementImpl
1426
#########################################################################*/
1431
//##################
1433
//##################
1443
/*#########################################################################
1444
## SVGAltGlyphElementImpl
1445
#########################################################################*/
1452
//##################
1454
//##################
1462
/*#########################################################################
1463
## SVGAltGlyphDefElementImpl
1464
#########################################################################*/
1470
//##################
1472
//##################
1480
/*#########################################################################
1481
## SVGAltGlyphItemElementImpl
1482
#########################################################################*/
1488
//##################
1490
//##################
1498
/*#########################################################################
1499
## SVGGlyphRefElementImpl
1500
#########################################################################*/
1505
//##################
1507
//##################
1516
/*#########################################################################
1517
## SVGMarkerElementImpl
1518
#########################################################################*/
1523
//##################
1525
//##################
1534
/*#########################################################################
1535
## SVGColorProfileElementImpl
1536
#########################################################################*/
1541
//##################
1543
//##################
1553
/*#########################################################################
1554
## SVGGradientElementImpl
1555
#########################################################################*/
1559
//##################
1561
//##################
1569
/*#########################################################################
1570
## SVGLinearGradientElementImpl
1571
#########################################################################*/
1576
//##################
1578
//##################
1587
/*#########################################################################
1588
## SVGRadialGradientElementImpl
1589
#########################################################################*/
1595
//##################
1597
//##################
1606
/*#########################################################################
1607
## SVGStopElementImpl
1608
#########################################################################*/
1614
//##################
1616
//##################
1626
/*#########################################################################
1627
## SVGPatternElementImpl
1628
#########################################################################*/
1632
//##################
1634
//##################
1643
/*#########################################################################
1644
## SVGClipPathElementImpl
1645
#########################################################################*/
1652
//##################
1654
//##################
1664
/*#########################################################################
1665
## SVGMaskElementImpl
1666
#########################################################################*/
1670
//##################
1672
//##################
1682
/*#########################################################################
1683
## SVGFilterElementImpl
1684
#########################################################################*/
1690
//##################
1692
//##################
1702
/*#########################################################################
1703
## SVGFEBlendElementImpl
1704
#########################################################################*/
1709
//##################
1711
//##################
1720
/*#########################################################################
1721
## SVGFEColorMatrixElementImpl
1722
#########################################################################*/
1726
//##################
1728
//##################
1738
/*#########################################################################
1739
## SVGFEComponentTransferElementImpl
1740
#########################################################################*/
1745
//##################
1747
//##################
1758
/*#########################################################################
1759
## SVGComponentTransferFunctionElementImpl
1760
#########################################################################*/
1764
//##################
1766
//##################
1776
/*#########################################################################
1777
## SVGFEFuncRElementImpl
1778
#########################################################################*/
1782
//##################
1784
//##################
1792
/*#########################################################################
1793
## SVGFEFuncGElementImpl
1794
#########################################################################*/
1800
//##################
1802
//##################
1810
/*#########################################################################
1811
## SVGFEFuncBElementImpl
1812
#########################################################################*/
1818
//##################
1820
//##################
1828
/*#########################################################################
1829
## SVGFEFuncAElementImpl
1830
#########################################################################*/
1836
//##################
1838
//##################
1846
/*#########################################################################
1847
## SVGFECompositeElementImpl
1848
#########################################################################*/
1853
//##################
1855
//##################
1864
/*#########################################################################
1865
## SVGFEConvolveMatrixElementImpl
1866
#########################################################################*/
1870
//##################
1872
//##################
1881
/*#########################################################################
1882
## SVGFEDiffuseLightingElementImpl
1883
#########################################################################*/
1888
//##################
1890
//##################
1896
/*#########################################################################
1897
## SVGFEDistantLightElementImpl
1898
#########################################################################*/
1904
//##################
1906
//##################
1916
/*#########################################################################
1917
## SVGFEPointLightElementImpl
1918
#########################################################################*/
1922
//##################
1924
//##################
1934
/*#########################################################################
1935
## SVGFESpotLightElementImpl
1936
#########################################################################*/
1943
//##################
1945
//##################
1955
/*#########################################################################
1956
## SVGFEDisplacementMapElementImpl
1957
#########################################################################*/
1962
//##################
1964
//##################
1974
/*#########################################################################
1975
## SVGFEFloodElementImpl
1976
#########################################################################*/
1982
//##################
1984
//##################
1994
/*#########################################################################
1995
## SVGFEGaussianBlurElementImpl
1996
#########################################################################*/
2002
//##################
2004
//##################
2014
/*#########################################################################
2015
## SVGFEImageElementImpl
2016
#########################################################################*/
2021
//##################
2023
//##################
2031
/*#########################################################################
2032
## SVGFEMergeElementImpl
2033
#########################################################################*/
2038
//##################
2040
//##################
2048
/*#########################################################################
2049
## SVGFEMergeNodeElementImpl
2050
#########################################################################*/
2056
//##################
2058
//##################
2067
/*#########################################################################
2068
## SVGFEMorphologyElementImpl
2069
#########################################################################*/
2073
//##################
2075
//##################
2084
/*#########################################################################
2085
## SVGFEOffsetElementImpl
2086
#########################################################################*/
2091
//##################
2093
//##################
2100
/*#########################################################################
2101
## SVGFESpecularLightingElementImpl
2102
#########################################################################*/
2106
//##################
2108
//##################
2118
/*#########################################################################
2119
## SVGFETileElementImpl
2120
#########################################################################*/
2126
//##################
2128
//##################
2138
/*#########################################################################
2139
## SVGFETurbulenceElementImpl
2140
#########################################################################*/
2147
//##################
2149
//##################
2159
/*#########################################################################
2160
## SVGCursorElementImpl
2161
#########################################################################*/
2165
//##################
2167
//##################
2177
/*#########################################################################
2179
#########################################################################*/
2185
//##################
2187
//##################
2196
/*#########################################################################
2197
## SVGViewElementImpl
2198
#########################################################################*/
2205
//##################
2207
//##################
2216
/*#########################################################################
2217
## SVGScriptElementImpl
2218
#########################################################################*/
2223
//##################
2225
//##################
2233
/*#########################################################################
2234
## SVGAnimationElementImpl
2235
#########################################################################*/
2241
//##################
2243
//##################
2253
/*#########################################################################
2254
## SVGAnimateElementImpl
2255
#########################################################################*/
2258
//##################
2260
//##################
2268
/*#########################################################################
2269
## SVGSetElementImpl
2270
#########################################################################*/
2275
//##################
2277
//##################
2285
/*#########################################################################
2286
## SVGAnimateMotionElementImpl
2287
#########################################################################*/
2290
//##################
2292
//##################
2300
/*#########################################################################
2301
## SVGMPathElementImpl
2302
#########################################################################*/
2305
//##################
2307
//##################
2315
/*#########################################################################
2316
## SVGAnimateColorElementImpl
2317
#########################################################################*/
2320
//##################
2322
//##################
2330
/*#########################################################################
2331
## SVGAnimateTransformElementImpl
2332
#########################################################################*/
2336
//##################
2338
//##################
2346
/*#########################################################################
2347
## SVGFontElementImpl
2348
#########################################################################*/
2352
//##################
2354
//##################
2362
/*#########################################################################
2363
## SVGGlyphElementImpl
2364
#########################################################################*/
2368
//##################
2370
//##################
2378
/*#########################################################################
2379
## SVGMissingGlyphElementImpl
2380
#########################################################################*/
2384
//##################
2386
//##################
2394
/*#########################################################################
2395
## SVGHKernElementImpl
2396
#########################################################################*/
2400
//##################
2402
//##################
2410
/*#########################################################################
2411
## SVGVKernElementImpl
2412
#########################################################################*/
2416
//##################
2418
//##################
2426
/*#########################################################################
2427
## SVGFontFaceElementImpl
2428
#########################################################################*/
2432
//##################
2434
//##################
2442
/*#########################################################################
2443
## SVGFontFaceSrcElementImpl
2444
#########################################################################*/
2448
//##################
2450
//##################
2458
/*#########################################################################
2459
## SVGFontFaceUriElementImpl
2460
#########################################################################*/
2464
//##################
2466
//##################
2472
/*#########################################################################
2473
## SVGFontFaceFormatElementImpl
2474
#########################################################################*/
2479
//##################
2481
//##################
2488
/*#########################################################################
2489
## SVGFontFaceNameElementImpl
2490
#########################################################################*/
2494
//##################
2496
//##################
2504
/*#########################################################################
2505
## SVGDefinitionSrcElementImpl
2506
#########################################################################*/
2510
//##################
2512
//##################
2520
/*#########################################################################
2521
## SVGMetadataElementImpl
2522
#########################################################################*/
2525
//##################
2527
//##################
2533
/*#########################################################################
2534
## SVGForeignObjectElementImpl
2535
#########################################################################*/
2539
//##################
2541
//##################
2560
/*#########################################################################
2561
## E N D O F F I L E
2562
#########################################################################*/