diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 47d455dd55be855e4cc691c32f687f723d9247ee (patch) | |
tree | 52e236aaa2576bdb3840ebede26619692fed6d7d /ksvg/dom | |
download | tdegraphics-47d455dd55be855e4cc691c32f687f723d9247ee.tar.gz tdegraphics-47d455dd55be855e4cc691c32f687f723d9247ee.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegraphics@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'ksvg/dom')
298 files changed, 24612 insertions, 0 deletions
diff --git a/ksvg/dom/Makefile.am b/ksvg/dom/Makefile.am new file mode 100644 index 00000000..9b6b1cf7 --- /dev/null +++ b/ksvg/dom/Makefile.am @@ -0,0 +1,58 @@ +noinst_LTLIBRARIES = libksvgdom.la + +myincludedir = $(includedir)/dom +myinclude_HEADERS = SVGAElement.h SVGAltGlyphElement.h SVGAltGlyphDefElement.h SVGGlyphRefElement.h SVGAngle.h SVGAnimateColorElement.h SVGAnimateElement.h \ + SVGAnimateMotionElement.h SVGAnimateTransformElement.h SVGAnimatedAngle.h SVGAnimatedBoolean.h \ + SVGAnimatedEnumeration.h SVGAnimatedInteger.h SVGAnimatedLength.h SVGAnimatedLengthList.h \ + SVGAnimatedNumber.h SVGAnimatedNumberList.h SVGAnimatedPathData.h SVGAnimatedPoints.h \ + SVGAnimatedPreserveAspectRatio.h SVGAnimatedRect.h SVGAnimatedString.h SVGAnimatedTransformList.h \ + SVGAnimationElement.h SVGCSSRule.h SVGCircleElement.h SVGClipPathElement.h SVGColor.h \ + SVGColorProfileElement.h SVGColorProfileRule.h SVGComponentTransferFunctionElement.h SVGCursorElement.h \ + SVGDefinitionSrcElement.h SVGDefsElement.h SVGDescElement.h SVGDocument.h SVGElement.h SVGElementInstance.h \ + SVGElementInstanceList.h SVGEllipseElement.h SVGEvent.h SVGException.h SVGExternalResourcesRequired.h \ + SVGFEBlendElement.h SVGFEColorMatrixElement.h SVGFEComponentTransferElement.h SVGFECompositeElement.h \ + SVGFEConvolveMatrixElement.h SVGFEDiffuseLightingElement.h SVGFEDisplacementMapElement.h SVGFEDistantLightElement.h \ + SVGFEFloodElement.h SVGFEFuncAElement.h SVGFEFuncBElement.h SVGFEFuncGElement.h SVGFEFuncRElement.h \ + SVGFEGaussianBlurElement.h SVGFEImageElement.h SVGFEMergeElement.h SVGFEMergeNodeElement.h SVGFEMorphologyElement.h \ + SVGFEOffsetElement.h SVGFEPointLightElement.h SVGFESpecularLightingElement.h SVGFESpotLightElement.h \ + SVGFETileElement.h SVGFETurbulenceElement.h SVGFilterElement.h SVGFilterPrimitiveStandardAttributes.h \ + SVGFitToViewBox.h SVGFontElement.h SVGFontFaceElement.h SVGFontFaceFormatElement.h SVGFontFaceNameElement.h \ + SVGFontFaceSrcElement.h SVGFontFaceUriElement.h SVGForeignObjectElement.h SVGGElement.h SVGGlyphElement.h \ + SVGGradientElement.h SVGHKernElement.h SVGICCColor.h SVGImageElement.h SVGLangSpace.h SVGLength.h SVGLengthList.h \ + SVGLineElement.h SVGLinearGradientElement.h SVGLocatable.h SVGMPathElement.h SVGMarkerElement.h SVGMaskElement.h \ + SVGMatrix.h SVGMetadataElement.h SVGMissingGlyphElement.h SVGNumber.h SVGNumberList.h SVGPaint.h SVGPathElement.h \ + SVGPathSeg.h SVGPathSegArc.h SVGPathSegClosePath.h SVGPathSegCurvetoCubic.h SVGPathSegCurvetoCubicSmooth.h \ + SVGPathSegCurvetoQuadratic.h SVGPathSegCurvetoQuadraticSmooth.h SVGPathSegLineto.h SVGPathSegLinetoHorizontal.h \ + SVGPathSegLinetoVertical.h SVGPathSegList.h SVGPathSegMoveto.h SVGPatternElement.h SVGPoint.h SVGPointList.h \ + SVGPolygonElement.h SVGPolylineElement.h SVGPreserveAspectRatio.h SVGRadialGradientElement.h SVGRect.h \ + SVGRectElement.h SVGRenderingIntent.h SVGSVGElement.h SVGScriptElement.h SVGSetElement.h SVGStopElement.h \ + SVGStringList.h SVGStylable.h SVGStyleElement.h SVGSwitchElement.h SVGSymbolElement.h SVGTRefElement.h \ + SVGTSpanElement.h SVGTests.h SVGTextContentElement.h SVGTextElement.h SVGTextPathElement.h SVGTextPositioningElement.h \ + SVGTitleElement.h SVGTransform.h SVGTransformList.h SVGTransformable.h SVGURIReference.h SVGUnitTypes.h \ + SVGUseElement.h SVGVKernElement.h SVGViewElement.h SVGViewSpec.h SVGWindow.h SVGZoomAndPan.h SVGZoomEvent.h + +libksvgdom_la_SOURCES = SVGLength.cc SVGAnimatedLength.cc SVGNumber.cc SVGAnimatedNumber.cc SVGPoint.cc SVGTSpanElement.cc SVGTRefElement.cc \ + SVGAnimatedLengthList.cc SVGAnimatedNumberList.cc SVGTransformList.cc SVGAElement.cc SVGAnimatedTransformList.cc \ + SVGRectElement.cc SVGCircleElement.cc SVGEllipseElement.cc SVGLineElement.cc SVGPolylineElement.cc SVGPolygonElement.cc \ + SVGTextPositioningElement.cc SVGTextContentElement.cc SVGTextElement.cc SVGImageElement.cc SVGUseElement.cc \ + SVGMatrix.cc SVGTransform.cc SVGPointList.cc SVGDocument.cc SVGAnimatedEnumeration.cc SVGDefsElement.cc \ + SVGLocatable.cc SVGTransformable.cc SVGStylable.cc SVGGElement.cc SVGAngle.cc SVGAnimatedAngle.cc \ + SVGColor.cc SVGPathElement.cc SVGPathSegList.cc SVGTests.cc SVGLangSpace.cc SVGStringList.cc \ + SVGPathSeg.cc SVGPathSegClosePath.cc SVGPathSegMoveto.cc SVGPathSegLinetoHorizontal.cc SVGPathSegLinetoVertical.cc SVGPathSegLineto.cc \ + SVGPathSegCurvetoCubic.cc SVGDescElement.cc SVGTitleElement.cc SVGExternalResourcesRequired.cc SVGAnimatedBoolean.cc SVGNumberList.cc \ + SVGPathSegCurvetoCubicSmooth.cc SVGPathSegCurvetoQuadratic.cc SVGAnimatedRect.cc SVGAnimatedString.cc \ + SVGPathSegCurvetoQuadraticSmooth.cc SVGPathSegArc.cc SVGURIReference.cc SVGAnimatedInteger.cc SVGLengthList.cc \ + SVGSVGElement.cc SVGRect.cc SVGFitToViewBox.cc SVGAnimatedPreserveAspectRatio.cc SVGPreserveAspectRatio.cc SVGElement.cc \ + SVGStyleElement.cc SVGClipPathElement.cc SVGMaskElement.cc SVGColorProfileElement.cc SVGColorProfileRule.cc SVGZoomAndPan.cc SVGScriptElement.cc \ + SVGSwitchElement.cc SVGSymbolElement.cc \ + SVGDefinitionSrcElement.cc SVGFontFaceElement.cc SVGFontFaceFormatElement.cc SVGFontFaceNameElement.cc SVGFontFaceSrcElement.cc SVGHKernElement.cc SVGMetadataElement.cc SVGVKernElement.cc SVGCursorElement.cc SVGForeignObjectElement.cc SVGFontFaceUriElement.cc \ + SVGElementInstance.cc SVGElementInstanceList.cc SVGAnimatedPoints.cc SVGAnimatedPathData.cc SVGMarkerElement.cc SVGViewSpec.cc SVGViewElement.cc \ + SVGFilterElement.cc SVGFilterPrimitiveStandardAttributes.cc SVGFEBlendElement.cc SVGFEColorMatrixElement.cc SVGFEComponentTransferElement.cc SVGComponentTransferFunctionElement.cc SVGFEFuncAElement.cc SVGFEFuncBElement.cc SVGFEFuncGElement.cc SVGFEFuncRElement.cc SVGFECompositeElement.cc SVGFEConvolveMatrixElement.cc SVGFEFloodElement.cc SVGFEGaussianBlurElement.cc SVGFEDiffuseLightingElement.cc SVGFEDistantLightElement.cc SVGFEPointLightElement.cc SVGFESpotLightElement.cc SVGFEDisplacementMapElement.cc SVGFEMergeElement.cc SVGFEMergeNodeElement.cc SVGFEImageElement.cc SVGFEMorphologyElement.cc SVGFEOffsetElement.cc SVGFESpecularLightingElement.cc SVGFETileElement.cc SVGFETurbulenceElement.cc \ + SVGAnimationElement.cc SVGAnimateElement.cc SVGSetElement.cc SVGAnimateMotionElement.cc SVGAnimateColorElement.cc SVGAnimateTransformElement.cc \ + SVGEvent.cc SVGZoomEvent.cc SVGICCColor.cc SVGCSSRule.cc \ + SVGGradientElement.cc SVGRadialGradientElement.cc SVGLinearGradientElement.cc SVGStopElement.cc SVGPatternElement.cc SVGMPathElement.cc \ + SVGFontElement.cc SVGAltGlyphElement.cc SVGGlyphRefElement.cc SVGAltGlyphDefElement.cc SVGGlyphElement.cc SVGMissingGlyphElement.cc SVGPaint.cc SVGTextPathElement.cc SVGWindow.cc + +libksvgdom_la_METASOURCES = AUTO + +INCLUDES = -I$(top_srcdir)/ksvg/core -I$(top_srcdir)/ksvg/ecma -I$(top_srcdir)/ksvg/impl -I$(top_srcdir)/ksvg/impl/libs/libtext2path/src -I$(top_srcdir)/impl/ $(all_includes) diff --git a/ksvg/dom/SVGAElement.cc b/ksvg/dom/SVGAElement.cc new file mode 100644 index 00000000..a4d7d5b1 --- /dev/null +++ b/ksvg/dom/SVGAElement.cc @@ -0,0 +1,80 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAElement.h" +#include "SVGAElementImpl.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGAElement::SVGAElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGURIReference() +{ + impl = 0; +} + +SVGAElement::SVGAElement(const SVGAElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGAElement &SVGAElement::operator=(const SVGAElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAElement::SVGAElement(SVGAElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAElement::~SVGAElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGAElement::target() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->target()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAElement.h b/ksvg/dom/SVGAElement.h new file mode 100644 index 00000000..98b0f54e --- /dev/null +++ b/ksvg/dom/SVGAElement.h @@ -0,0 +1,64 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAElement_H +#define SVGAElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGURIReference.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGAElementImpl; +class SVGAElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGURIReference +{ +public: + SVGAElement(); + SVGAElement(const SVGAElement &other); + SVGAElement &operator=(const SVGAElement &other); + SVGAElement(SVGAElementImpl *other); + virtual ~SVGAElement(); + + SVGAnimatedString target() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAElementImpl *handle() const { return impl; } + +private: + SVGAElementImpl *impl; +}; + +} + +#endif +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAltGlyphDefElement.cc b/ksvg/dom/SVGAltGlyphDefElement.cc new file mode 100644 index 00000000..f150b982 --- /dev/null +++ b/ksvg/dom/SVGAltGlyphDefElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAltGlyphDefElement.h" +#include "SVGAltGlyphDefElementImpl.h" + +using namespace KSVG; + +SVGAltGlyphDefElement::SVGAltGlyphDefElement() : SVGElement() +{ + impl = 0; +} + +SVGAltGlyphDefElement::SVGAltGlyphDefElement(const SVGAltGlyphDefElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGAltGlyphDefElement &SVGAltGlyphDefElement::operator=(const SVGAltGlyphDefElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAltGlyphDefElement::SVGAltGlyphDefElement(SVGAltGlyphDefElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAltGlyphDefElement::~SVGAltGlyphDefElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAltGlyphDefElement.h b/ksvg/dom/SVGAltGlyphDefElement.h new file mode 100644 index 00000000..c0672cf6 --- /dev/null +++ b/ksvg/dom/SVGAltGlyphDefElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAltGlyphDefElement_H +#define SVGAltGlyphDefElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGAltGlyphDefElementImpl; +class SVGAltGlyphDefElement : public SVGElement +{ +public: + SVGAltGlyphDefElement(); + SVGAltGlyphDefElement(const SVGAltGlyphDefElement &other); + SVGAltGlyphDefElement &operator=(const SVGAltGlyphDefElement &other); + SVGAltGlyphDefElement(SVGAltGlyphDefElementImpl *other); + virtual ~SVGAltGlyphDefElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAltGlyphDefElementImpl *handle() const { return impl; } + +private: + SVGAltGlyphDefElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAltGlyphElement.cc b/ksvg/dom/SVGAltGlyphElement.cc new file mode 100644 index 00000000..33877a74 --- /dev/null +++ b/ksvg/dom/SVGAltGlyphElement.cc @@ -0,0 +1,80 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAltGlyphElement.h" +#include "SVGAltGlyphElementImpl.h" + +using namespace KSVG; + +SVGAltGlyphElement::SVGAltGlyphElement() : SVGTextPositioningElement(), SVGURIReference() +{ + impl = 0; +} + +SVGAltGlyphElement::SVGAltGlyphElement(const SVGAltGlyphElement &other) : SVGTextPositioningElement(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGAltGlyphElement &SVGAltGlyphElement::operator=(const SVGAltGlyphElement &other) +{ + SVGTextPositioningElement::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAltGlyphElement::SVGAltGlyphElement(SVGAltGlyphElementImpl *other) : SVGTextPositioningElement(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAltGlyphElement::~SVGAltGlyphElement() +{ + if(impl) + impl->deref(); +} + +DOM::DOMString SVGAltGlyphElement::format() +{ + if(!impl) return DOM::DOMString(); + return impl->format(); +} + +DOM::DOMString SVGAltGlyphElement::glyphRef() +{ + if(!impl) return DOM::DOMString(); + return impl->glyphRef(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAltGlyphElement.h b/ksvg/dom/SVGAltGlyphElement.h new file mode 100644 index 00000000..191c67fe --- /dev/null +++ b/ksvg/dom/SVGAltGlyphElement.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAltGlyphElement_H +#define SVGAltGlyphElement_H + +#include "SVGTextPositioningElement.h" +#include "SVGURIReference.h" + +namespace KSVG +{ + +class SVGAltGlyphElementImpl; +class SVGAltGlyphElement : public SVGTextPositioningElement, + public SVGURIReference +{ +public: + SVGAltGlyphElement(); + SVGAltGlyphElement(const SVGAltGlyphElement &other); + SVGAltGlyphElement &operator=(const SVGAltGlyphElement &other); + SVGAltGlyphElement(SVGAltGlyphElementImpl *other); + virtual ~SVGAltGlyphElement(); + + DOM::DOMString glyphRef(); + DOM::DOMString format(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAltGlyphElementImpl *handle() const { return impl; } + +private: + SVGAltGlyphElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAngle.cc b/ksvg/dom/SVGAngle.cc new file mode 100644 index 00000000..c3cb1fae --- /dev/null +++ b/ksvg/dom/SVGAngle.cc @@ -0,0 +1,120 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAngle.h" +#include "SVGAngleImpl.h" + +using namespace KSVG; + +SVGAngle::SVGAngle() +{ + impl = new SVGAngleImpl(); + impl->ref(); +} + +SVGAngle::SVGAngle(const SVGAngle &other) : impl(0) +{ + (*this) = other; +} + +SVGAngle &SVGAngle::operator =(const SVGAngle &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAngle::SVGAngle(SVGAngleImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAngle::~SVGAngle() +{ + if(impl) + impl->deref(); +} + +unsigned short SVGAngle::unitType() const +{ + if(!impl) return SVG_ANGLETYPE_UNKNOWN; + return impl->unitType(); +} + +void SVGAngle::setValue(float value) +{ + if(impl) + impl->setValue(value); +} + +float SVGAngle::value() const +{ + if(!impl) return -1; + return impl->value(); +} + +void SVGAngle::setValueInSpecifiedUnits(float valueInSpecifiedUnits) +{ + if(impl) + impl->setValueInSpecifiedUnits(valueInSpecifiedUnits); +} + +float SVGAngle::valueInSpecifiedUnits() const +{ + if(!impl) return -1; + return impl->valueInSpecifiedUnits(); +} + +void SVGAngle::setValueAsString(const DOM::DOMString &valueAsString) +{ + if(impl) + impl->setValueAsString(valueAsString); +} + +DOM::DOMString SVGAngle::valueAsString() const +{ + if(!impl) return DOM::DOMString(); + return impl->valueAsString(); +} + +void SVGAngle::newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits) +{ + if(impl) + impl->newValueSpecifiedUnits(unitType, valueInSpecifiedUnits); +} + +void SVGAngle::convertToSpecifiedUnits(unsigned short unitType) +{ + if(impl) + impl->convertToSpecifiedUnits(unitType); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAngle.h b/ksvg/dom/SVGAngle.h new file mode 100644 index 00000000..9e301660 --- /dev/null +++ b/ksvg/dom/SVGAngle.h @@ -0,0 +1,74 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAngle_H +#define SVGAngle_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +enum +{ + SVG_ANGLETYPE_UNKNOWN = 0, + SVG_ANGLETYPE_UNSPECIFIED = 1, + SVG_ANGLETYPE_DEG = 2, + SVG_ANGLETYPE_RAD = 3, + SVG_ANGLETYPE_GRAD = 4 +}; + +class SVGAngleImpl; +class SVGAngle +{ +public: + + SVGAngle(); + SVGAngle(const SVGAngle &other); + SVGAngle &operator=(const SVGAngle &other); + SVGAngle(SVGAngleImpl *other); + ~SVGAngle(); + + unsigned short unitType() const; + + void setValue(float value); + float value() const; + + void setValueInSpecifiedUnits(float valueInSpecifiedUnits); + float valueInSpecifiedUnits() const; + + void setValueAsString(const DOM::DOMString &valueAsString); + DOM::DOMString valueAsString() const; + + void newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits); + void convertToSpecifiedUnits(unsigned short unitType); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAngleImpl *handle() const { return impl; } + +private: + SVGAngleImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateColorElement.cc b/ksvg/dom/SVGAnimateColorElement.cc new file mode 100644 index 00000000..0090513f --- /dev/null +++ b/ksvg/dom/SVGAnimateColorElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimateColorElement.h" +#include "SVGAnimateColorElementImpl.h" + +using namespace KSVG; + +SVGAnimateColorElement::SVGAnimateColorElement() : SVGAnimationElement() +{ + impl = 0; +} + +SVGAnimateColorElement::SVGAnimateColorElement(const SVGAnimateColorElement &other) : SVGAnimationElement(other), impl(0) +{ + (*this) = other; +} + +SVGAnimateColorElement &SVGAnimateColorElement::operator=(const SVGAnimateColorElement &other) +{ + SVGAnimationElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimateColorElement::SVGAnimateColorElement(SVGAnimateColorElementImpl *other) : SVGAnimationElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimateColorElement::~SVGAnimateColorElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateColorElement.h b/ksvg/dom/SVGAnimateColorElement.h new file mode 100644 index 00000000..3e5d1616 --- /dev/null +++ b/ksvg/dom/SVGAnimateColorElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimateColorElement_H +#define SVGAnimateColorElement_H + +#include "SVGAnimationElement.h" + +namespace KSVG +{ + +class SVGAnimateColorElementImpl; +class SVGAnimateColorElement : public SVGAnimationElement +{ +public: + SVGAnimateColorElement(); + SVGAnimateColorElement(const SVGAnimateColorElement &other); + SVGAnimateColorElement &operator=(const SVGAnimateColorElement &other); + SVGAnimateColorElement(SVGAnimateColorElementImpl *other); + virtual ~SVGAnimateColorElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimateColorElementImpl *handle() const { return impl; } + +private: + SVGAnimateColorElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateElement.cc b/ksvg/dom/SVGAnimateElement.cc new file mode 100644 index 00000000..b0b4503e --- /dev/null +++ b/ksvg/dom/SVGAnimateElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimateElement.h" +#include "SVGAnimateElementImpl.h" + +using namespace KSVG; + +SVGAnimateElement::SVGAnimateElement() : SVGAnimationElement() +{ + impl = 0; +} + +SVGAnimateElement::SVGAnimateElement(const SVGAnimateElement &other) : SVGAnimationElement(other), impl(0) +{ + (*this) = other; +} + +SVGAnimateElement &SVGAnimateElement::operator=(const SVGAnimateElement &other) +{ + SVGAnimationElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimateElement::SVGAnimateElement(SVGAnimateElementImpl *other) : SVGAnimationElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimateElement::~SVGAnimateElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateElement.h b/ksvg/dom/SVGAnimateElement.h new file mode 100644 index 00000000..5856f9b2 --- /dev/null +++ b/ksvg/dom/SVGAnimateElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimateElement_H +#define SVGAnimateElement_H + +#include "SVGAnimationElement.h" + +namespace KSVG +{ + +class SVGAnimateElementImpl; +class SVGAnimateElement : public SVGAnimationElement +{ +public: + SVGAnimateElement(); + SVGAnimateElement(const SVGAnimateElement &other); + SVGAnimateElement &operator=(const SVGAnimateElement &other); + SVGAnimateElement(SVGAnimateElementImpl *other); + virtual ~SVGAnimateElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimateElementImpl *handle() const { return impl; } + +private: + SVGAnimateElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateMotionElement.cc b/ksvg/dom/SVGAnimateMotionElement.cc new file mode 100644 index 00000000..f2758fe3 --- /dev/null +++ b/ksvg/dom/SVGAnimateMotionElement.cc @@ -0,0 +1,65 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimateMotionElement.h" +#include "SVGAnimateMotionElementImpl.h" + +using namespace KSVG; + +SVGAnimateMotionElement::SVGAnimateMotionElement() : SVGAnimationElement() +{ + impl = 0; +} + +SVGAnimateMotionElement::SVGAnimateMotionElement(const SVGAnimateMotionElement &other) : SVGAnimationElement(), impl(0) +{ + (*this) = other; +} + +SVGAnimateMotionElement &SVGAnimateMotionElement::operator =(const SVGAnimateMotionElement &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimateMotionElement::SVGAnimateMotionElement(SVGAnimateMotionElementImpl *other) : SVGAnimationElement() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimateMotionElement::~SVGAnimateMotionElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateMotionElement.h b/ksvg/dom/SVGAnimateMotionElement.h new file mode 100644 index 00000000..62b477b0 --- /dev/null +++ b/ksvg/dom/SVGAnimateMotionElement.h @@ -0,0 +1,47 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimateMotionElement_H +#define SVGAnimateMotionElement_H + +#include "SVGAnimationElement.h" + +namespace KSVG +{ + +class SVGAnimateMotionElementImpl; +class SVGAnimateMotionElement : public SVGAnimationElement +{ +public: + SVGAnimateMotionElement(); + SVGAnimateMotionElement(const SVGAnimateMotionElement &other); + SVGAnimateMotionElement &operator=(const SVGAnimateMotionElement &other); + SVGAnimateMotionElement(SVGAnimateMotionElementImpl *other); + virtual ~SVGAnimateMotionElement(); + +private: + SVGAnimateMotionElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateTransformElement.cc b/ksvg/dom/SVGAnimateTransformElement.cc new file mode 100644 index 00000000..91bbb9a3 --- /dev/null +++ b/ksvg/dom/SVGAnimateTransformElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimateTransformElement.h" +#include "SVGAnimateTransformElementImpl.h" + +using namespace KSVG; + +SVGAnimateTransformElement::SVGAnimateTransformElement() : SVGAnimationElement() +{ + impl = 0; +} + +SVGAnimateTransformElement::SVGAnimateTransformElement(const SVGAnimateTransformElement &other) : SVGAnimationElement(other), impl(0) +{ + (*this) = other; +} + +SVGAnimateTransformElement &SVGAnimateTransformElement::operator=(const SVGAnimateTransformElement &other) +{ + SVGAnimationElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimateTransformElement::SVGAnimateTransformElement(SVGAnimateTransformElementImpl *other) : SVGAnimationElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimateTransformElement::~SVGAnimateTransformElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimateTransformElement.h b/ksvg/dom/SVGAnimateTransformElement.h new file mode 100644 index 00000000..b6c1a5ad --- /dev/null +++ b/ksvg/dom/SVGAnimateTransformElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimateTransformElement_H +#define SVGAnimateTransformElement_H + +#include "SVGAnimationElement.h" + +namespace KSVG +{ + +class SVGAnimateTransformElementImpl; +class SVGAnimateTransformElement : public SVGAnimationElement +{ +public: + SVGAnimateTransformElement(); + SVGAnimateTransformElement(const SVGAnimateTransformElement &other); + SVGAnimateTransformElement &operator=(const SVGAnimateTransformElement &other); + SVGAnimateTransformElement(SVGAnimateTransformElementImpl *other); + virtual ~SVGAnimateTransformElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimateTransformElementImpl *handle() const { return impl; } + +private: + SVGAnimateTransformElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedAngle.cc b/ksvg/dom/SVGAnimatedAngle.cc new file mode 100644 index 00000000..b8c4ff4d --- /dev/null +++ b/ksvg/dom/SVGAnimatedAngle.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedAngle.h" +#include "SVGAnimatedAngleImpl.h" +#include "SVGAngle.h" + +using namespace KSVG; + +SVGAnimatedAngle::SVGAnimatedAngle() +{ + impl = new SVGAnimatedAngleImpl(); + impl->ref(); +} + +SVGAnimatedAngle::SVGAnimatedAngle(const SVGAnimatedAngle &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedAngle &SVGAnimatedAngle::operator=(const SVGAnimatedAngle &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedAngle::SVGAnimatedAngle(SVGAnimatedAngleImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedAngle::~SVGAnimatedAngle() +{ + if(impl) + impl->deref(); +} + +SVGAngle SVGAnimatedAngle::baseVal() const +{ + if(!impl) return SVGAngle(0); + return SVGAngle(impl->baseVal()); +} + +SVGAngle SVGAnimatedAngle::animVal() const +{ + if(!impl) return SVGAngle(0); + return SVGAngle(impl->animVal()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedAngle.h b/ksvg/dom/SVGAnimatedAngle.h new file mode 100644 index 00000000..156b9c39 --- /dev/null +++ b/ksvg/dom/SVGAnimatedAngle.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedAngle_H +#define SVGAnimatedAngle_H + +namespace KSVG +{ + +class SVGAngle; +class SVGAnimatedAngleImpl; +class SVGAnimatedAngle +{ +public: + SVGAnimatedAngle(); + SVGAnimatedAngle(const SVGAnimatedAngle &other); + SVGAnimatedAngle &operator=(const SVGAnimatedAngle &other); + SVGAnimatedAngle(SVGAnimatedAngleImpl *other); + ~SVGAnimatedAngle(); + + SVGAngle baseVal() const; + SVGAngle animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedAngleImpl *handle() const { return impl; } + +private: + SVGAnimatedAngleImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedBoolean.cc b/ksvg/dom/SVGAnimatedBoolean.cc new file mode 100644 index 00000000..40bb765b --- /dev/null +++ b/ksvg/dom/SVGAnimatedBoolean.cc @@ -0,0 +1,84 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedBoolean.h" +#include "SVGAnimatedBooleanImpl.h" + +using namespace KSVG; + +SVGAnimatedBoolean::SVGAnimatedBoolean() +{ + impl = new SVGAnimatedBooleanImpl(); + impl->ref(); +} + +SVGAnimatedBoolean::SVGAnimatedBoolean(const SVGAnimatedBoolean &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedBoolean &SVGAnimatedBoolean::operator=(const SVGAnimatedBoolean &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedBoolean::SVGAnimatedBoolean(SVGAnimatedBooleanImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedBoolean::~SVGAnimatedBoolean() +{ + if(impl) + impl->deref(); +} + +void SVGAnimatedBoolean::setBaseVal(bool baseVal) +{ + if(impl) + impl->setBaseVal(baseVal); +} + +bool SVGAnimatedBoolean::baseVal() const +{ + if(!impl) return false; + return impl->baseVal(); +} + +bool SVGAnimatedBoolean::animVal() const +{ + if(!impl) return false; + return impl->animVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedBoolean.h b/ksvg/dom/SVGAnimatedBoolean.h new file mode 100644 index 00000000..c223fa9a --- /dev/null +++ b/ksvg/dom/SVGAnimatedBoolean.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedBoolean_H +#define SVGAnimatedBoolean_H + +namespace KSVG +{ + +class SVGAnimatedBooleanImpl; +class SVGAnimatedBoolean +{ +public: + SVGAnimatedBoolean(); + SVGAnimatedBoolean(const SVGAnimatedBoolean &other); + SVGAnimatedBoolean &operator=(const SVGAnimatedBoolean &other); + SVGAnimatedBoolean(SVGAnimatedBooleanImpl *other); + ~SVGAnimatedBoolean(); + + void setBaseVal(bool baseVal); + bool baseVal() const; + + bool animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedBooleanImpl *handle() const { return impl; } + +private: + SVGAnimatedBooleanImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedEnumeration.cc b/ksvg/dom/SVGAnimatedEnumeration.cc new file mode 100644 index 00000000..2e9610d4 --- /dev/null +++ b/ksvg/dom/SVGAnimatedEnumeration.cc @@ -0,0 +1,84 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedEnumerationImpl.h" + +using namespace KSVG; + +SVGAnimatedEnumeration::SVGAnimatedEnumeration() +{ + impl = new SVGAnimatedEnumerationImpl(); + impl->ref(); +} + +SVGAnimatedEnumeration::SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedEnumeration &SVGAnimatedEnumeration::operator=(const SVGAnimatedEnumeration &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedEnumeration::SVGAnimatedEnumeration(SVGAnimatedEnumerationImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedEnumeration::~SVGAnimatedEnumeration() +{ + if(impl) + impl->deref(); +} + +void SVGAnimatedEnumeration::setBaseVal(unsigned short baseVal) +{ + if(impl) + impl->setBaseVal(baseVal); +} + +unsigned short SVGAnimatedEnumeration::baseVal() const +{ + if(!impl) return 0; + return impl->baseVal(); +} + +unsigned short SVGAnimatedEnumeration::animVal() const +{ + if(!impl) return 0; + return impl->animVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedEnumeration.h b/ksvg/dom/SVGAnimatedEnumeration.h new file mode 100644 index 00000000..79f75a67 --- /dev/null +++ b/ksvg/dom/SVGAnimatedEnumeration.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedEnumeration_H +#define SVGAnimatedEnumeration_H + +namespace KSVG +{ + +class SVGAnimatedEnumerationImpl; +class SVGAnimatedEnumeration +{ +public: + SVGAnimatedEnumeration(); + SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other); + SVGAnimatedEnumeration &operator=(const SVGAnimatedEnumeration &other); + SVGAnimatedEnumeration(SVGAnimatedEnumerationImpl *other); + ~SVGAnimatedEnumeration(); + + void setBaseVal(unsigned short baseVal); + unsigned short baseVal() const; + + unsigned short animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedEnumerationImpl *handle() const { return impl; } + +private: + SVGAnimatedEnumerationImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedInteger.cc b/ksvg/dom/SVGAnimatedInteger.cc new file mode 100644 index 00000000..df5f9011 --- /dev/null +++ b/ksvg/dom/SVGAnimatedInteger.cc @@ -0,0 +1,84 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedInteger.h" +#include "SVGAnimatedIntegerImpl.h" + +using namespace KSVG; + +SVGAnimatedInteger::SVGAnimatedInteger() +{ + impl = new SVGAnimatedIntegerImpl(); + impl->ref(); +} + +SVGAnimatedInteger::SVGAnimatedInteger(const SVGAnimatedInteger &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedInteger &SVGAnimatedInteger::operator=(const SVGAnimatedInteger &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedInteger::SVGAnimatedInteger(SVGAnimatedIntegerImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedInteger::~SVGAnimatedInteger() +{ + if(impl) + impl->deref(); +} + +void SVGAnimatedInteger::setBaseVal(long baseVal) +{ + if(impl) + impl->setBaseVal(baseVal); +} + +long SVGAnimatedInteger::baseVal() const +{ + if(!impl) return -1; + return impl->baseVal(); +} + +long SVGAnimatedInteger::animVal() const +{ + if(!impl) return -1; + return impl->animVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedInteger.h b/ksvg/dom/SVGAnimatedInteger.h new file mode 100644 index 00000000..495cda75 --- /dev/null +++ b/ksvg/dom/SVGAnimatedInteger.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedInteger_H +#define SVGAnimatedInteger_H + +namespace KSVG +{ + +class SVGAnimatedIntegerImpl; +class SVGAnimatedInteger +{ +public: + SVGAnimatedInteger(); + SVGAnimatedInteger(const SVGAnimatedInteger &other); + SVGAnimatedInteger &operator=(const SVGAnimatedInteger &other); + SVGAnimatedInteger(SVGAnimatedIntegerImpl *other); + ~SVGAnimatedInteger(); + + void setBaseVal(long baseVal); + long baseVal() const; + + long animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedIntegerImpl *handle() const { return impl; } + +private: + SVGAnimatedIntegerImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedLength.cc b/ksvg/dom/SVGAnimatedLength.cc new file mode 100644 index 00000000..50172f13 --- /dev/null +++ b/ksvg/dom/SVGAnimatedLength.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedLength.h" +#include "SVGAnimatedLengthImpl.h" +#include "SVGLength.h" + +using namespace KSVG; + +SVGAnimatedLength::SVGAnimatedLength() +{ + impl = new SVGAnimatedLengthImpl(); + impl->ref(); +} + +SVGAnimatedLength::SVGAnimatedLength(const SVGAnimatedLength &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedLength &SVGAnimatedLength::operator=(const SVGAnimatedLength &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedLength::SVGAnimatedLength(SVGAnimatedLengthImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedLength::~SVGAnimatedLength() +{ + if(impl) + impl->deref(); +} + +SVGLength SVGAnimatedLength::baseVal() const +{ + if(!impl) return SVGLength(0); + return SVGLength(impl->baseVal()); +} + +SVGLength SVGAnimatedLength::animVal() const +{ + if(!impl) return SVGLength(0); + return SVGLength(impl->animVal()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedLength.h b/ksvg/dom/SVGAnimatedLength.h new file mode 100644 index 00000000..a59792e3 --- /dev/null +++ b/ksvg/dom/SVGAnimatedLength.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedLength_H +#define SVGAnimatedLength_H + +namespace KSVG +{ + +class SVGLength; +class SVGAnimatedLengthImpl; +class SVGAnimatedLength +{ +public: + SVGAnimatedLength(); + SVGAnimatedLength(const SVGAnimatedLength &other); + SVGAnimatedLength &operator=(const SVGAnimatedLength &other); + SVGAnimatedLength(SVGAnimatedLengthImpl *other); + ~SVGAnimatedLength(); + + SVGLength baseVal() const; + SVGLength animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedLengthImpl *handle() const { return impl; } + +private: + SVGAnimatedLengthImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedLengthList.cc b/ksvg/dom/SVGAnimatedLengthList.cc new file mode 100644 index 00000000..f1e9c001 --- /dev/null +++ b/ksvg/dom/SVGAnimatedLengthList.cc @@ -0,0 +1,78 @@ +/* + Copyright (C) 2002 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedLengthList.h" +#include "SVGAnimatedLengthListImpl.h" + +using namespace KSVG; + +SVGAnimatedLengthList::SVGAnimatedLengthList() +{ + impl = new SVGAnimatedLengthListImpl(); + impl->ref(); +} + +SVGAnimatedLengthList::SVGAnimatedLengthList(const SVGAnimatedLengthList &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedLengthList &SVGAnimatedLengthList::operator=(const SVGAnimatedLengthList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedLengthList::SVGAnimatedLengthList(SVGAnimatedLengthListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedLengthList::~SVGAnimatedLengthList() +{ + if(impl) + impl->deref(); +} + +SVGLengthList SVGAnimatedLengthList::baseVal() const +{ + if(!impl) return 0; + return impl->animVal(); +} + +SVGLengthList SVGAnimatedLengthList::animVal() const +{ + if(!impl) return 0; + return impl->baseVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedLengthList.h b/ksvg/dom/SVGAnimatedLengthList.h new file mode 100644 index 00000000..80eafb03 --- /dev/null +++ b/ksvg/dom/SVGAnimatedLengthList.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2002 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedLengthList_H +#define SVGAnimatedLengthList_H + +#include "SVGLengthList.h" + +namespace KSVG +{ + +class SVGAnimatedLengthListImpl; +class SVGAnimatedLengthList +{ +public: + SVGAnimatedLengthList(); + SVGAnimatedLengthList(const SVGAnimatedLengthList &); + SVGAnimatedLengthList &operator=(const SVGAnimatedLengthList &); + SVGAnimatedLengthList(SVGAnimatedLengthListImpl *); + ~SVGAnimatedLengthList(); + + SVGLengthList baseVal() const; + SVGLengthList animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedLengthListImpl *handle() const { return impl; } + +private: + SVGAnimatedLengthListImpl *impl; +}; + +} + +#endif diff --git a/ksvg/dom/SVGAnimatedNumber.cc b/ksvg/dom/SVGAnimatedNumber.cc new file mode 100644 index 00000000..9e801842 --- /dev/null +++ b/ksvg/dom/SVGAnimatedNumber.cc @@ -0,0 +1,84 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedNumberImpl.h" + +using namespace KSVG; + +SVGAnimatedNumber::SVGAnimatedNumber() +{ + impl = new SVGAnimatedNumberImpl(); + impl->ref(); +} + +SVGAnimatedNumber::SVGAnimatedNumber(const SVGAnimatedNumber &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedNumber &SVGAnimatedNumber::operator=(const SVGAnimatedNumber &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedNumber::SVGAnimatedNumber(SVGAnimatedNumberImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedNumber::~SVGAnimatedNumber() +{ + if(impl) + impl->deref(); +} + +void SVGAnimatedNumber::setBaseVal(float baseVal) +{ + if(impl) + impl->setBaseVal(baseVal); +} + +float SVGAnimatedNumber::baseVal() const +{ + if(!impl) return -1; + return impl->baseVal(); +} + +float SVGAnimatedNumber::animVal() const +{ + if(!impl) return -1; + return impl->animVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedNumber.h b/ksvg/dom/SVGAnimatedNumber.h new file mode 100644 index 00000000..8c3f1670 --- /dev/null +++ b/ksvg/dom/SVGAnimatedNumber.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedNumber_H +#define SVGAnimatedNumber_H + +namespace KSVG +{ + +class SVGAnimatedNumberImpl; +class SVGAnimatedNumber +{ +public: + SVGAnimatedNumber(); + SVGAnimatedNumber(const SVGAnimatedNumber &other); + SVGAnimatedNumber &operator=(const SVGAnimatedNumber &other); + SVGAnimatedNumber(SVGAnimatedNumberImpl *other); + ~SVGAnimatedNumber(); + + void setBaseVal(float baseVal); + float baseVal() const; + + float animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedNumberImpl *handle() const { return impl; } + +private: + SVGAnimatedNumberImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedNumberList.cc b/ksvg/dom/SVGAnimatedNumberList.cc new file mode 100644 index 00000000..66881cac --- /dev/null +++ b/ksvg/dom/SVGAnimatedNumberList.cc @@ -0,0 +1,78 @@ +/* + Copyright (C) 2002 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedNumberList.h" +#include "SVGAnimatedNumberListImpl.h" + +using namespace KSVG; + +SVGAnimatedNumberList::SVGAnimatedNumberList() +{ + impl = new SVGAnimatedNumberListImpl(); + impl->ref(); +} + +SVGAnimatedNumberList::SVGAnimatedNumberList(const SVGAnimatedNumberList &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedNumberList &SVGAnimatedNumberList::operator=(const SVGAnimatedNumberList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedNumberList::SVGAnimatedNumberList(SVGAnimatedNumberListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedNumberList::~SVGAnimatedNumberList() +{ + if(impl) + impl->deref(); +} + +SVGNumberList SVGAnimatedNumberList::baseVal() const +{ + if(!impl) return 0; + return impl->animVal(); +} + +SVGNumberList SVGAnimatedNumberList::animVal() const +{ + if(!impl) return 0; + return impl->baseVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedNumberList.h b/ksvg/dom/SVGAnimatedNumberList.h new file mode 100644 index 00000000..525ce0fd --- /dev/null +++ b/ksvg/dom/SVGAnimatedNumberList.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2002 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedNumberList_H +#define SVGAnimatedNumberList_H + +#include "SVGNumberList.h" + +namespace KSVG +{ + +class SVGAnimatedNumberListImpl; +class SVGAnimatedNumberList +{ +public: + SVGAnimatedNumberList(); + SVGAnimatedNumberList(const SVGAnimatedNumberList &); + SVGAnimatedNumberList &operator=(const SVGAnimatedNumberList &); + SVGAnimatedNumberList(SVGAnimatedNumberListImpl *); + ~SVGAnimatedNumberList(); + + SVGNumberList baseVal() const; + SVGNumberList animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedNumberListImpl *handle() const { return impl; } + +private: + SVGAnimatedNumberListImpl *impl; +}; + +} + +#endif diff --git a/ksvg/dom/SVGAnimatedPathData.cc b/ksvg/dom/SVGAnimatedPathData.cc new file mode 100644 index 00000000..d332f567 --- /dev/null +++ b/ksvg/dom/SVGAnimatedPathData.cc @@ -0,0 +1,91 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedPathData.h" +#include "SVGAnimatedPathDataImpl.h" +#include "SVGPathSegList.h" + +using namespace KSVG; + +SVGAnimatedPathData::SVGAnimatedPathData() +{ + impl = new SVGAnimatedPathDataImpl(); + impl->ref(); +} + +SVGAnimatedPathData::SVGAnimatedPathData(const SVGAnimatedPathData &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedPathData &SVGAnimatedPathData::operator=(const SVGAnimatedPathData &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedPathData::SVGAnimatedPathData(SVGAnimatedPathDataImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedPathData::~SVGAnimatedPathData() +{ + if(impl) + impl->deref(); +} + +SVGPathSegList SVGAnimatedPathData::pathSegList() const +{ + if(!impl) return SVGPathSegList(0); + return SVGPathSegList(impl->pathSegList()); +} + +SVGPathSegList SVGAnimatedPathData::normalizedPathSegList() const +{ + if(!impl) return SVGPathSegList(0); + return SVGPathSegList(impl->normalizedPathSegList()); +} + +SVGPathSegList SVGAnimatedPathData::animatedPathSegList() const +{ + if(!impl) return SVGPathSegList(0); + return SVGPathSegList(impl->animatedPathSegList()); +} + +SVGPathSegList SVGAnimatedPathData::animatedNormalizedPathSegList() const +{ + if(!impl) return SVGPathSegList(0); + return SVGPathSegList(impl->animatedNormalizedPathSegList()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedPathData.h b/ksvg/dom/SVGAnimatedPathData.h new file mode 100644 index 00000000..06ae2905 --- /dev/null +++ b/ksvg/dom/SVGAnimatedPathData.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedPathData_H +#define SVGAnimatedPathData_H + +namespace KSVG +{ + +class SVGPathSegList; +class SVGAnimatedPathDataImpl; +class SVGAnimatedPathData +{ +public: + SVGAnimatedPathData(); + SVGAnimatedPathData(const SVGAnimatedPathData &other); + SVGAnimatedPathData &operator=(const SVGAnimatedPathData &other); + SVGAnimatedPathData(SVGAnimatedPathDataImpl *other); + virtual ~SVGAnimatedPathData(); + + SVGPathSegList pathSegList() const; + SVGPathSegList normalizedPathSegList() const; + SVGPathSegList animatedPathSegList() const; + SVGPathSegList animatedNormalizedPathSegList() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedPathDataImpl *handle() const { return impl; } + +private: + SVGAnimatedPathDataImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedPoints.cc b/ksvg/dom/SVGAnimatedPoints.cc new file mode 100644 index 00000000..cc4e999d --- /dev/null +++ b/ksvg/dom/SVGAnimatedPoints.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedPoints.h" +#include "SVGAnimatedPointsImpl.h" +#include "SVGPointList.h" + +using namespace KSVG; + +SVGAnimatedPoints::SVGAnimatedPoints() +{ + impl = new SVGAnimatedPointsImpl(); + impl->ref(); +} + +SVGAnimatedPoints::SVGAnimatedPoints(const SVGAnimatedPoints &other) : impl(0) +{ + (*this) = other;; +} + +SVGAnimatedPoints &SVGAnimatedPoints::operator=(const SVGAnimatedPoints &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedPoints::SVGAnimatedPoints(SVGAnimatedPointsImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedPoints::~SVGAnimatedPoints() +{ + if(impl) + impl->deref(); +} + +SVGPointList SVGAnimatedPoints::points() const +{ + if(!impl) return SVGPointList(0); + return SVGPointList(impl->points()); +} + +SVGPointList SVGAnimatedPoints::animatedPoints() const +{ + if(!impl) return SVGPointList(0); + return SVGPointList(impl->animatedPoints()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedPoints.h b/ksvg/dom/SVGAnimatedPoints.h new file mode 100644 index 00000000..3f035722 --- /dev/null +++ b/ksvg/dom/SVGAnimatedPoints.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedPoints_H +#define SVGAnimatedPoints_H + +namespace KSVG +{ + +class SVGPointList; +class SVGAnimatedPointsImpl; +class SVGAnimatedPoints +{ +public: + SVGAnimatedPoints(); + SVGAnimatedPoints(const SVGAnimatedPoints &other); + SVGAnimatedPoints &operator=(const SVGAnimatedPoints &other); + SVGAnimatedPoints(SVGAnimatedPointsImpl *other); + virtual ~SVGAnimatedPoints(); + + SVGPointList points() const; + SVGPointList animatedPoints() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedPointsImpl *handle() const { return impl; } + +private: + SVGAnimatedPointsImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedPreserveAspectRatio.cc b/ksvg/dom/SVGAnimatedPreserveAspectRatio.cc new file mode 100644 index 00000000..ed157028 --- /dev/null +++ b/ksvg/dom/SVGAnimatedPreserveAspectRatio.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedPreserveAspectRatio.h" +#include "SVGAnimatedPreserveAspectRatioImpl.h" +#include "SVGPreserveAspectRatio.h" + +using namespace KSVG; + +SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio() +{ + impl = new SVGAnimatedPreserveAspectRatioImpl(); + impl->ref(); +} + +SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedPreserveAspectRatio &SVGAnimatedPreserveAspectRatio::operator=(const SVGAnimatedPreserveAspectRatio &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio(SVGAnimatedPreserveAspectRatioImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedPreserveAspectRatio::~SVGAnimatedPreserveAspectRatio() +{ + if(impl) + impl->deref(); +} + +SVGPreserveAspectRatio SVGAnimatedPreserveAspectRatio::baseVal() const +{ + if(!impl) return SVGPreserveAspectRatio(0); + return SVGPreserveAspectRatio(impl->baseVal()); +} + +SVGPreserveAspectRatio SVGAnimatedPreserveAspectRatio::animVal() const +{ + if(!impl) return SVGPreserveAspectRatio(0); + return SVGPreserveAspectRatio(impl->animVal()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedPreserveAspectRatio.h b/ksvg/dom/SVGAnimatedPreserveAspectRatio.h new file mode 100644 index 00000000..4eea042f --- /dev/null +++ b/ksvg/dom/SVGAnimatedPreserveAspectRatio.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedPreserveAspectRatio_H +#define SVGAnimatedPreserveAspectRatio_H + + +namespace KSVG +{ + +class SVGPreserveAspectRatio; +class SVGAnimatedPreserveAspectRatioImpl; +class SVGAnimatedPreserveAspectRatio +{ +public: + SVGAnimatedPreserveAspectRatio(); + SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other); + SVGAnimatedPreserveAspectRatio &operator=(const SVGAnimatedPreserveAspectRatio &other); + SVGAnimatedPreserveAspectRatio(SVGAnimatedPreserveAspectRatioImpl *other); + ~SVGAnimatedPreserveAspectRatio(); + + SVGPreserveAspectRatio baseVal() const; + SVGPreserveAspectRatio animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedPreserveAspectRatioImpl *handle() const { return impl; } + +private: + SVGAnimatedPreserveAspectRatioImpl *impl; +}; + +} + +#endif +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedRect.cc b/ksvg/dom/SVGAnimatedRect.cc new file mode 100644 index 00000000..2c315003 --- /dev/null +++ b/ksvg/dom/SVGAnimatedRect.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedRect.h" +#include "SVGAnimatedRectImpl.h" +#include "SVGRect.h" + +using namespace KSVG; + +SVGAnimatedRect::SVGAnimatedRect() +{ + impl = new SVGAnimatedRectImpl(); + impl->ref(); +} + +SVGAnimatedRect::SVGAnimatedRect(const SVGAnimatedRect &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedRect &SVGAnimatedRect::operator=(const SVGAnimatedRect &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedRect::SVGAnimatedRect(SVGAnimatedRectImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedRect::~SVGAnimatedRect() +{ + if(impl) + impl->deref(); +} + +SVGRect SVGAnimatedRect::baseVal() const +{ + if(!impl) return SVGRect(0); + return SVGRect(impl->baseVal()); +} + +SVGRect SVGAnimatedRect::animVal() const +{ + if(!impl) return SVGRect(0); + return SVGRect(impl->animVal()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedRect.h b/ksvg/dom/SVGAnimatedRect.h new file mode 100644 index 00000000..c45a8f2d --- /dev/null +++ b/ksvg/dom/SVGAnimatedRect.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedRect_H +#define SVGAnimatedRect_H + +namespace KSVG +{ + +class SVGRect; +class SVGAnimatedRectImpl; +class SVGAnimatedRect +{ +public: + SVGAnimatedRect(); + SVGAnimatedRect(const SVGAnimatedRect &other); + SVGAnimatedRect &operator=(const SVGAnimatedRect &other); + SVGAnimatedRect(SVGAnimatedRectImpl *other); + ~SVGAnimatedRect(); + + SVGRect baseVal() const; + SVGRect animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedRectImpl *handle() const { return impl; } + +private: + SVGAnimatedRectImpl *impl; +}; + +} + +#endif +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedString.cc b/ksvg/dom/SVGAnimatedString.cc new file mode 100644 index 00000000..5d22f4ae --- /dev/null +++ b/ksvg/dom/SVGAnimatedString.cc @@ -0,0 +1,84 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedString.h" +#include "SVGAnimatedStringImpl.h" + +using namespace KSVG; + +SVGAnimatedString::SVGAnimatedString() +{ + impl = new SVGAnimatedStringImpl(); + impl->ref(); +} + +SVGAnimatedString::SVGAnimatedString(const SVGAnimatedString &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedString &SVGAnimatedString::operator=(const SVGAnimatedString &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedString::SVGAnimatedString(SVGAnimatedStringImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedString::~SVGAnimatedString() +{ + if(impl) + impl->deref(); +} + +void SVGAnimatedString::setBaseVal(const DOM::DOMString &baseVal) +{ + if(impl) + impl->setBaseVal(baseVal); +} + +DOM::DOMString SVGAnimatedString::baseVal() const +{ + if(!impl) return DOM::DOMString(); + return impl->baseVal(); +} + +DOM::DOMString SVGAnimatedString::animVal() const +{ + if(!impl) return DOM::DOMString(); + return impl->animVal(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedString.h b/ksvg/dom/SVGAnimatedString.h new file mode 100644 index 00000000..f97bb5c8 --- /dev/null +++ b/ksvg/dom/SVGAnimatedString.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedString_H +#define SVGAnimatedString_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGAnimatedStringImpl; +class SVGAnimatedString +{ +public: + SVGAnimatedString(); + SVGAnimatedString(const SVGAnimatedString &other); + SVGAnimatedString &operator=(const SVGAnimatedString &other); + SVGAnimatedString(SVGAnimatedStringImpl *other); + ~SVGAnimatedString(); + + void setBaseVal(const DOM::DOMString &baseVal); + DOM::DOMString baseVal() const; + + DOM::DOMString animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedStringImpl *handle() const { return impl; } + +private: + SVGAnimatedStringImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedTransformList.cc b/ksvg/dom/SVGAnimatedTransformList.cc new file mode 100644 index 00000000..a1eb43ca --- /dev/null +++ b/ksvg/dom/SVGAnimatedTransformList.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimatedTransformList.h" +#include "SVGAnimatedTransformListImpl.h" +#include "SVGTransformList.h" + +using namespace KSVG; + +SVGAnimatedTransformList::SVGAnimatedTransformList() +{ + impl = new SVGAnimatedTransformListImpl(); + impl->ref(); +} + +SVGAnimatedTransformList::SVGAnimatedTransformList(const SVGAnimatedTransformList &other) : impl(0) +{ + (*this) = other; +} + +SVGAnimatedTransformList &SVGAnimatedTransformList::operator=(const SVGAnimatedTransformList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimatedTransformList::SVGAnimatedTransformList(SVGAnimatedTransformListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimatedTransformList::~SVGAnimatedTransformList() +{ + if(impl) + impl->deref(); +} + +SVGTransformList SVGAnimatedTransformList::baseVal() const +{ + if(!impl) return SVGTransformList(0); + return SVGTransformList(impl->baseVal()); +} + +SVGTransformList SVGAnimatedTransformList::animVal() const +{ + if(!impl) return SVGTransformList(0); + return SVGTransformList(impl->animVal()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimatedTransformList.h b/ksvg/dom/SVGAnimatedTransformList.h new file mode 100644 index 00000000..87a12d3b --- /dev/null +++ b/ksvg/dom/SVGAnimatedTransformList.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimatedTransformList_H +#define SVGAnimatedTransformList_H + +namespace KSVG +{ + +class SVGTransformList; +class SVGAnimatedTransformListImpl; +class SVGAnimatedTransformList +{ +public: + SVGAnimatedTransformList(); + SVGAnimatedTransformList(const SVGAnimatedTransformList &other); + SVGAnimatedTransformList &operator=(const SVGAnimatedTransformList &other); + SVGAnimatedTransformList(SVGAnimatedTransformListImpl *other); + ~SVGAnimatedTransformList(); + + SVGTransformList baseVal() const; + SVGTransformList animVal() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimatedTransformListImpl *handle() const { return impl; } + +private: + SVGAnimatedTransformListImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimationElement.cc b/ksvg/dom/SVGAnimationElement.cc new file mode 100644 index 00000000..0d4014a7 --- /dev/null +++ b/ksvg/dom/SVGAnimationElement.cc @@ -0,0 +1,93 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGAnimationElement.h" +#include "SVGAnimationElementImpl.h" + +using namespace KSVG; + +SVGAnimationElement::SVGAnimationElement() : SVGElement(), SVGTests(), SVGExternalResourcesRequired() +{ + impl = 0; +} + +SVGAnimationElement::SVGAnimationElement(const SVGAnimationElement &other) : SVGElement(other), SVGTests(other), SVGExternalResourcesRequired(other), impl(0) +{ + (*this) = other; +} + +SVGAnimationElement &SVGAnimationElement::operator=(const SVGAnimationElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGExternalResourcesRequired::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGAnimationElement::SVGAnimationElement(SVGAnimationElementImpl *other) : SVGElement(other), SVGTests(other), SVGExternalResourcesRequired(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGAnimationElement::~SVGAnimationElement() +{ + if(impl) + impl->deref(); +} + +SVGElement SVGAnimationElement::targetElement() const +{ + if(!impl) return SVGElement(0); + return SVGElement(impl->targetElement()); +} + +float SVGAnimationElement::getStartTime() +{ + if(!impl) return -1; + return impl->getStartTime(); +} + +float SVGAnimationElement::getCurrentTime() +{ + if(!impl) return -1; + return impl->getCurrentTime(); +} + +float SVGAnimationElement::getSimpleDuration() +{ + if(!impl) return -1; + return impl->getSimpleDuration(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGAnimationElement.h b/ksvg/dom/SVGAnimationElement.h new file mode 100644 index 00000000..2e4df665 --- /dev/null +++ b/ksvg/dom/SVGAnimationElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGAnimationElement_H +#define SVGAnimationElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGExternalResourcesRequired.h" + +namespace KSVG +{ + +class SVGAnimationElementImpl; +class SVGAnimationElement : public SVGElement, + public SVGTests, + public SVGExternalResourcesRequired +{ +public: + SVGAnimationElement(); + SVGAnimationElement(const SVGAnimationElement &other); + SVGAnimationElement &operator=(const SVGAnimationElement &other); + SVGAnimationElement(SVGAnimationElementImpl *other); + virtual ~SVGAnimationElement(); + + SVGElement targetElement() const; + + float getStartTime(); + float getCurrentTime(); + float getSimpleDuration(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGAnimationElementImpl *handle() const { return impl; } + +private: + SVGAnimationElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGCSSRule.cc b/ksvg/dom/SVGCSSRule.cc new file mode 100644 index 00000000..cad5657e --- /dev/null +++ b/ksvg/dom/SVGCSSRule.cc @@ -0,0 +1,66 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGCSSRule.h" +#include "SVGCSSRuleImpl.h" + +using namespace KSVG; + +SVGCSSRule::SVGCSSRule() //: css::CSSRule() +{ + impl = new SVGCSSRuleImpl(); + impl->ref(); +} + +SVGCSSRule::SVGCSSRule(const SVGCSSRule &other) : /*css::CSSRule(),*/ impl(0) +{ + (*this) = other; +} + +SVGCSSRule &SVGCSSRule::operator=(const SVGCSSRule &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGCSSRule::SVGCSSRule(SVGCSSRuleImpl *other) //: css::CSSRule() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGCSSRule::~SVGCSSRule() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGCSSRule.h b/ksvg/dom/SVGCSSRule.h new file mode 100644 index 00000000..dc9e9360 --- /dev/null +++ b/ksvg/dom/SVGCSSRule.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGCSSRule_H +#define SVGCSSRule_H + +namespace KSVG +{ + +class SVGCSSRuleImpl; +class SVGCSSRule //: public css::CSSRule +{ +public: + SVGCSSRule(); + SVGCSSRule(const SVGCSSRule &other); + SVGCSSRule &operator=(const SVGCSSRule &other); + SVGCSSRule(SVGCSSRuleImpl *other); + virtual ~SVGCSSRule(); + + // add to enum + // const unsigned short COLOR_PROFILE_RULE = 7; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGCSSRuleImpl *handle() const { return impl; } + +private: + SVGCSSRuleImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGCircleElement.cc b/ksvg/dom/SVGCircleElement.cc new file mode 100644 index 00000000..13875211 --- /dev/null +++ b/ksvg/dom/SVGCircleElement.cc @@ -0,0 +1,92 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGCircleElement.h" +#include "SVGCircleElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGCircleElement::SVGCircleElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGCircleElement::SVGCircleElement(const SVGCircleElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGCircleElement &SVGCircleElement::operator=(const SVGCircleElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGCircleElement::SVGCircleElement(SVGCircleElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGCircleElement::~SVGCircleElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGCircleElement::cx() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->cx()); +} + +SVGAnimatedLength SVGCircleElement::cy() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->cy()); +} + +SVGAnimatedLength SVGCircleElement::r() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->r()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGCircleElement.h b/ksvg/dom/SVGCircleElement.h new file mode 100644 index 00000000..65406a1c --- /dev/null +++ b/ksvg/dom/SVGCircleElement.h @@ -0,0 +1,117 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + +#ifndef SVGCircleElement_H +#define SVGCircleElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGCircleElementImpl; + +class SVGAnimatedLength; +/** + * The <code>circle</code> element defines a circle based on a center + * point and radius. + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/shapes.html#CircleElement">9.3 The + * 'circle' element</a>. + */ +class SVGCircleElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGCircleElement(); + SVGCircleElement(const SVGCircleElement &); + SVGCircleElement &operator=(const SVGCircleElement &other); + SVGCircleElement(SVGCircleElementImpl *); + ~SVGCircleElement(); + + /** + * The x-axis coordinate of the center of the circle. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the center of the circle. + */ + SVGAnimatedLength cx(); + + /** + * The y-axis coordinate of the center of the circle. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the center of the circle. + */ + SVGAnimatedLength cy(); + + /** + * The radius of the circle. + * A negative value is an error (see <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> + * Error processing</a>). A value of zero disables rendering of + * the element. + * + * This attribute is animatable. + * + * @return The radius of the circle. + */ + SVGAnimatedLength r(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGCircleElementImpl *handle() const { return impl; } + +private: + SVGCircleElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGClipPathElement.cc b/ksvg/dom/SVGClipPathElement.cc new file mode 100644 index 00000000..f0785efc --- /dev/null +++ b/ksvg/dom/SVGClipPathElement.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGClipPathElement.h" +#include "SVGClipPathElementImpl.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGClipPathElement::SVGClipPathElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGClipPathElement::SVGClipPathElement(const SVGClipPathElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + (*this) = other; +} + +SVGClipPathElement &SVGClipPathElement::operator=(const SVGClipPathElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGClipPathElement::SVGClipPathElement(SVGClipPathElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGClipPathElement::~SVGClipPathElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedEnumeration SVGClipPathElement::clipPathUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->clipPathUnits()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGClipPathElement.h b/ksvg/dom/SVGClipPathElement.h new file mode 100644 index 00000000..70cfe6bb --- /dev/null +++ b/ksvg/dom/SVGClipPathElement.h @@ -0,0 +1,65 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGClipPathElement_H +#define SVGClipPathElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGUnitTypes.h" + +namespace KSVG +{ + +class SVGAnimatedEnumeration; +class SVGClipPathElementImpl; +class SVGClipPathElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGUnitTypes +{ +public: + SVGClipPathElement(); + SVGClipPathElement(const SVGClipPathElement &other); + SVGClipPathElement &operator=(const SVGClipPathElement &other); + SVGClipPathElement(SVGClipPathElementImpl *other); + virtual ~SVGClipPathElement(); + + SVGAnimatedEnumeration clipPathUnits() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGClipPathElementImpl *handle() const { return impl; } + +private: + SVGClipPathElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGColor.cc b/ksvg/dom/SVGColor.cc new file mode 100644 index 00000000..e9294c5d --- /dev/null +++ b/ksvg/dom/SVGColor.cc @@ -0,0 +1,105 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option); any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGColor.h" +#include "SVGICCColor.h" +#include "SVGColorImpl.h" + +using namespace KSVG; + +SVGColor::SVGColor() +{ + // FIXME: no icc color support... + impl = new SVGColorImpl(0); + impl->ref(); +} + +SVGColor::SVGColor(const SVGColor &other) : impl(0) +{ + (*this) = other; +} + +SVGColor &SVGColor::operator=(const SVGColor &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; + +} + +SVGColor::SVGColor(SVGColorImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGColor::~SVGColor() +{ + if(impl) + impl->deref(); +} + +unsigned short SVGColor::colorType() const +{ + if(!impl) return SVG_COLORTYPE_UNKNOWN; + return impl->colorType(); +} + +DOM::RGBColor SVGColor::rgbColor() const +{ + if(!impl) return DOM::RGBColor(); + return impl->rgbColor(); +} + +SVGICCColor SVGColor::iccColor() const +{ + if(!impl) return SVGICCColor(); + return impl->iccColor(); +} + +void SVGColor::setRGBColor(const DOM::DOMString &rgbColor) +{ + if(impl) + impl->setRGBColor(rgbColor); +} + +void SVGColor::setRGBColorICCColor(const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor) +{ + if(impl) + impl->setRGBColorICCColor(rgbColor, iccColor); +} + +void SVGColor::setColor(unsigned short colorType, const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor) +{ + if(impl) + impl->setColor(colorType, rgbColor, iccColor); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGColor.h b/ksvg/dom/SVGColor.h new file mode 100644 index 00000000..62147ed0 --- /dev/null +++ b/ksvg/dom/SVGColor.h @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGColor_H +#define SVGColor_H + +#include <dom/css_value.h> +#include <dom/dom_string.h> + +namespace KSVG +{ + +enum +{ + SVG_COLORTYPE_UNKNOWN = 0, + SVG_COLORTYPE_RGBCOLOR = 1, + SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2, + SVG_COLORTYPE_CURRENTCOLOR = 3 +}; + +class SVGColorImpl; +class SVGICCColor; +class SVGColor // : public css::CSSValue +{ +public: + SVGColor(); + SVGColor(const SVGColor &); + SVGColor &operator=(const SVGColor &other); + SVGColor(SVGColorImpl *); + ~SVGColor(); + + unsigned short colorType() const; + + DOM::RGBColor rgbColor() const; + SVGICCColor iccColor() const; + + void setRGBColor(const DOM::DOMString &rgbColor); + void setRGBColorICCColor(const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor); + void setColor(unsigned short colorType, const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGColorImpl *handle() const { return impl; } + +private: + SVGColorImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGColorProfileElement.cc b/ksvg/dom/SVGColorProfileElement.cc new file mode 100644 index 00000000..5acdb1a1 --- /dev/null +++ b/ksvg/dom/SVGColorProfileElement.cc @@ -0,0 +1,105 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGColorProfileElement.h" +#include "SVGColorProfileElementImpl.h" +#include "SVGRenderingIntent.h" + +using namespace KSVG; + +SVGColorProfileElement::SVGColorProfileElement() : SVGElement(), SVGURIReference() +{ + impl = 0; +} + +SVGColorProfileElement::SVGColorProfileElement(const SVGColorProfileElement &other) : SVGElement(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGColorProfileElement &SVGColorProfileElement::operator=(const SVGColorProfileElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGColorProfileElement::SVGColorProfileElement(SVGColorProfileElementImpl *other) : SVGElement(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGColorProfileElement::~SVGColorProfileElement() +{ + if(impl) + impl->deref(); +} + +void SVGColorProfileElement::setLocal(const DOM::DOMString &local) +{ + if(impl) + impl->setLocal(local); +} + +DOM::DOMString SVGColorProfileElement::local() const +{ + if(!impl) return DOM::DOMString(); + return impl->local(); +} + +void SVGColorProfileElement::setName(const DOM::DOMString &name) +{ + if(impl) + impl->setName(name); +} + +DOM::DOMString SVGColorProfileElement::name() const +{ + if(!impl) return DOM::DOMString(); + return impl->name(); +} + +void SVGColorProfileElement::setRenderingIntent(unsigned short renderingIntent) +{ + if(impl) + impl->setRenderingIntent(renderingIntent); +} + +unsigned short SVGColorProfileElement::renderingIntent() const +{ + if(!impl) return RENDERING_INTENT_UNKNOWN; + return impl->renderingIntent(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGColorProfileElement.h b/ksvg/dom/SVGColorProfileElement.h new file mode 100644 index 00000000..f7f3bd41 --- /dev/null +++ b/ksvg/dom/SVGColorProfileElement.h @@ -0,0 +1,62 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGColorProfileElement_H +#define SVGColorProfileElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGColorProfileElementImpl; +class SVGColorProfileElement : public SVGElement, + public SVGURIReference +{ +public: + SVGColorProfileElement(); + SVGColorProfileElement(const SVGColorProfileElement &other); + SVGColorProfileElement &operator=(const SVGColorProfileElement &other); + SVGColorProfileElement(SVGColorProfileElementImpl *other); + virtual ~SVGColorProfileElement(); + + void setLocal(const DOM::DOMString &local); + DOM::DOMString local() const; + + void setName(const DOM::DOMString &name); + DOM::DOMString name() const; + + void setRenderingIntent(unsigned short renderingIntent); + unsigned short renderingIntent() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGColorProfileElementImpl *handle() const { return impl; } + +private: + SVGColorProfileElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGColorProfileRule.cc b/ksvg/dom/SVGColorProfileRule.cc new file mode 100644 index 00000000..8c4ecea7 --- /dev/null +++ b/ksvg/dom/SVGColorProfileRule.cc @@ -0,0 +1,103 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGColorProfileRule.h" +#include "SVGColorProfileRuleImpl.h" +#include "SVGRenderingIntent.h" + +using namespace KSVG; + +SVGColorProfileRule::SVGColorProfileRule() : SVGCSSRule() +{ + impl = new SVGColorProfileRuleImpl(); + impl->ref(); +} + +SVGColorProfileRule::SVGColorProfileRule(const SVGColorProfileRule &other) : SVGCSSRule(), impl(0) +{ + (*this) = other; +} + +SVGColorProfileRule &SVGColorProfileRule::operator=(const SVGColorProfileRule &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGColorProfileRule::SVGColorProfileRule(SVGColorProfileRuleImpl *other) : SVGCSSRule(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGColorProfileRule::~SVGColorProfileRule() +{ + if(impl) + impl->deref(); +} + +void SVGColorProfileRule::setSrc(const DOM::DOMString &src) +{ + if(impl) + impl->setSrc(src); +} + +DOM::DOMString SVGColorProfileRule::src() const +{ + if(!impl) return DOM::DOMString(); + return impl->src(); +} + +void SVGColorProfileRule::setName(const DOM::DOMString &name) +{ + if(impl) + impl->setName(name); +} + +DOM::DOMString SVGColorProfileRule::name() const +{ + if(!impl) return DOM::DOMString(); + return impl->name(); +} + +void SVGColorProfileRule::setRenderingIntent(unsigned short renderingIntent) +{ + if(impl) + impl->setRenderingIntent(renderingIntent); +} + +unsigned short SVGColorProfileRule::renderingIntent() const +{ + if(!impl) return RENDERING_INTENT_UNKNOWN; + return impl->renderingIntent(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGColorProfileRule.h b/ksvg/dom/SVGColorProfileRule.h new file mode 100644 index 00000000..b99321ad --- /dev/null +++ b/ksvg/dom/SVGColorProfileRule.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGColorProfileRule_H +#define SVGColorProfileRule_H + +#include <dom/dom_string.h> +#include "SVGCSSRule.h" + +namespace KSVG +{ + +class SVGColorProfileRuleImpl; +class SVGColorProfileRule : public SVGCSSRule +{ +public: + SVGColorProfileRule(); + SVGColorProfileRule(const SVGColorProfileRule &other); + SVGColorProfileRule &operator=(const SVGColorProfileRule &other); + SVGColorProfileRule(SVGColorProfileRuleImpl *other); + virtual ~SVGColorProfileRule(); + + void setSrc(const DOM::DOMString &src); + DOM::DOMString src() const; + + void setName(const DOM::DOMString &name); + DOM::DOMString name() const; + + void setRenderingIntent(unsigned short renderingIntent); + unsigned short renderingIntent() const; + +private: + SVGColorProfileRuleImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGComponentTransferFunctionElement.cc b/ksvg/dom/SVGComponentTransferFunctionElement.cc new file mode 100644 index 00000000..970da9ea --- /dev/null +++ b/ksvg/dom/SVGComponentTransferFunctionElement.cc @@ -0,0 +1,112 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGComponentTransferFunctionElement.h" +#include "SVGComponentTransferFunctionElementImpl.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedNumberList.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement() : SVGElement() +{ + impl = 0; +} + +SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement(const SVGComponentTransferFunctionElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGComponentTransferFunctionElement &SVGComponentTransferFunctionElement::operator =(const SVGComponentTransferFunctionElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement(SVGComponentTransferFunctionElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGComponentTransferFunctionElement::~SVGComponentTransferFunctionElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedEnumeration SVGComponentTransferFunctionElement::type() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->type()); +} + +SVGAnimatedNumberList SVGComponentTransferFunctionElement::tableValues() const +{ + if(!impl) return SVGAnimatedNumberList(0); + return SVGAnimatedNumberList(impl->tableValues()); +} + +SVGAnimatedNumber SVGComponentTransferFunctionElement::slope() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->slope()); +} + +SVGAnimatedNumber SVGComponentTransferFunctionElement::intercept() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->intercept()); +} + +SVGAnimatedNumber SVGComponentTransferFunctionElement::amplitude() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->amplitude()); +} + +SVGAnimatedNumber SVGComponentTransferFunctionElement::exponent() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->exponent()); +} + +SVGAnimatedNumber SVGComponentTransferFunctionElement::offset() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->offset()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGComponentTransferFunctionElement.h b/ksvg/dom/SVGComponentTransferFunctionElement.h new file mode 100644 index 00000000..d9dd0080 --- /dev/null +++ b/ksvg/dom/SVGComponentTransferFunctionElement.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGComponentTransferFunctionElement_H +#define SVGComponentTransferFunctionElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +enum +{ + SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0, + SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1, + SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2, + SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3, + SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4, + SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5 +}; + +class SVGAnimatedEnumeration; +class SVGAnimatedNumberList; +class SVGAnimatedNumber; +class SVGComponentTransferFunctionElementImpl; +class SVGComponentTransferFunctionElement : public SVGElement +{ +public: + SVGComponentTransferFunctionElement(); + SVGComponentTransferFunctionElement(const SVGComponentTransferFunctionElement &other); + SVGComponentTransferFunctionElement &operator=(const SVGComponentTransferFunctionElement &other); + SVGComponentTransferFunctionElement(SVGComponentTransferFunctionElementImpl *other); + virtual ~SVGComponentTransferFunctionElement(); + + SVGAnimatedEnumeration type() const; + SVGAnimatedNumberList tableValues() const; + SVGAnimatedNumber slope() const; + SVGAnimatedNumber intercept() const; + SVGAnimatedNumber amplitude() const; + SVGAnimatedNumber exponent() const; + SVGAnimatedNumber offset() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGComponentTransferFunctionElementImpl *handle() const { return impl; } + +private: + SVGComponentTransferFunctionElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGCursorElement.cc b/ksvg/dom/SVGCursorElement.cc new file mode 100644 index 00000000..2eb3c0dc --- /dev/null +++ b/ksvg/dom/SVGCursorElement.cc @@ -0,0 +1,83 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGCursorElement.h" +#include "SVGCursorElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGCursorElement::SVGCursorElement() : SVGElement(), SVGURIReference(), SVGTests(), SVGExternalResourcesRequired() +{ + impl = 0; +} + +SVGCursorElement::SVGCursorElement(const SVGCursorElement &other) : SVGElement(other), SVGURIReference(other), SVGTests(other), SVGExternalResourcesRequired(other), impl(0) +{ + (*this) = other; +} + +SVGCursorElement &SVGCursorElement::operator =(const SVGCursorElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGTests::operator=(other); + SVGExternalResourcesRequired::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGCursorElement::SVGCursorElement(SVGCursorElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGTests(other), SVGExternalResourcesRequired(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGCursorElement::~SVGCursorElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGCursorElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGCursorElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGCursorElement.h b/ksvg/dom/SVGCursorElement.h new file mode 100644 index 00000000..feb9b2b7 --- /dev/null +++ b/ksvg/dom/SVGCursorElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGCursorElement_H +#define SVGCursorElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGTests.h" +#include "SVGExternalResourcesRequired.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGCursorElementImpl; +class SVGCursorElement : public SVGElement, + public SVGURIReference, + public SVGTests, + public SVGExternalResourcesRequired +{ +public: + SVGCursorElement(); + SVGCursorElement(const SVGCursorElement &other); + SVGCursorElement &operator=(const SVGCursorElement &other); + SVGCursorElement(SVGCursorElementImpl *other); + virtual ~SVGCursorElement(); + + SVGAnimatedLength x() const; + SVGAnimatedLength y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGCursorElementImpl *handle() const { return impl; } + +private: + SVGCursorElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDefinitionSrcElement.cc b/ksvg/dom/SVGDefinitionSrcElement.cc new file mode 100644 index 00000000..755b6b4f --- /dev/null +++ b/ksvg/dom/SVGDefinitionSrcElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGDefinitionSrcElement.h" +#include "SVGDefinitionSrcElementImpl.h" + +using namespace KSVG; + +SVGDefinitionSrcElement::SVGDefinitionSrcElement() : SVGElement() +{ + impl = 0; +} + +SVGDefinitionSrcElement::SVGDefinitionSrcElement(const SVGDefinitionSrcElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGDefinitionSrcElement &SVGDefinitionSrcElement::operator =(const SVGDefinitionSrcElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGDefinitionSrcElement::SVGDefinitionSrcElement(SVGDefinitionSrcElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGDefinitionSrcElement::~SVGDefinitionSrcElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDefinitionSrcElement.h b/ksvg/dom/SVGDefinitionSrcElement.h new file mode 100644 index 00000000..fc1b7f52 --- /dev/null +++ b/ksvg/dom/SVGDefinitionSrcElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGDefinitionSrcElement_H +#define SVGDefinitionSrcElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGDefinitionSrcElementImpl; +class SVGDefinitionSrcElement : public SVGElement +{ +public: + SVGDefinitionSrcElement(); + SVGDefinitionSrcElement(const SVGDefinitionSrcElement &other); + SVGDefinitionSrcElement &operator=(const SVGDefinitionSrcElement &other); + SVGDefinitionSrcElement(SVGDefinitionSrcElementImpl *other); + virtual ~SVGDefinitionSrcElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGDefinitionSrcElementImpl *handle() const { return impl; } + +private: + SVGDefinitionSrcElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDefsElement.cc b/ksvg/dom/SVGDefsElement.cc new file mode 100644 index 00000000..67bb2baf --- /dev/null +++ b/ksvg/dom/SVGDefsElement.cc @@ -0,0 +1,72 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGDefsElement.h" +#include "SVGDefsElementImpl.h" + +using namespace KSVG; + +SVGDefsElement::SVGDefsElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGDefsElement::SVGDefsElement(const SVGDefsElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGDefsElement &SVGDefsElement::operator =(const SVGDefsElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGDefsElement::SVGDefsElement(SVGDefsElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGDefsElement::~SVGDefsElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDefsElement.h b/ksvg/dom/SVGDefsElement.h new file mode 100644 index 00000000..e1e7e0a5 --- /dev/null +++ b/ksvg/dom/SVGDefsElement.h @@ -0,0 +1,78 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGDefsElement_H +#define SVGDefsElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGDefsElementImpl; + +/** + * The 'defs' element is a container element for referenced elements. For understandability and accessibility + * reasons, it is recommended that, whenever possible, referenced elements be defined inside of a 'defs'. + * + * The content model for 'defs' is the same as for the <code> g </code> element; thus, any element that can be a child of + * a <code> g </code> can also be a child of a 'defs', and vice versa. + */ +class SVGDefsElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGDefsElement(); + SVGDefsElement(const SVGDefsElement &other); + SVGDefsElement &operator=(const SVGDefsElement &other); + SVGDefsElement(SVGDefsElementImpl *other); + virtual ~SVGDefsElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGDefsElementImpl *handle() const { return impl; } + +private: + SVGDefsElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDescElement.cc b/ksvg/dom/SVGDescElement.cc new file mode 100644 index 00000000..6eed0ed9 --- /dev/null +++ b/ksvg/dom/SVGDescElement.cc @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGDescElement.h" +#include "SVGDescElementImpl.h" + +using namespace KSVG; + +SVGDescElement::SVGDescElement() : SVGElement(), SVGLangSpace(), SVGStylable() +{ + impl = 0; +} + +SVGDescElement::SVGDescElement(const SVGDescElement &other) : SVGElement(other), SVGLangSpace(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGDescElement &SVGDescElement::operator =(const SVGDescElement &other) +{ + SVGElement::operator=(other); + SVGLangSpace::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGDescElement::SVGDescElement(SVGDescElementImpl *other) : SVGElement(other), SVGLangSpace(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGDescElement::~SVGDescElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDescElement.h b/ksvg/dom/SVGDescElement.h new file mode 100644 index 00000000..9a5b270f --- /dev/null +++ b/ksvg/dom/SVGDescElement.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGDescElement_H +#define SVGDescElement_H + +#include "SVGElement.h" +#include "SVGLangSpace.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGDescElementImpl; +class SVGDescElement : public SVGElement, + public SVGLangSpace, + public SVGStylable +{ +public: + SVGDescElement(); + SVGDescElement(const SVGDescElement &other); + SVGDescElement &operator=(const SVGDescElement &other); + SVGDescElement(SVGDescElementImpl *other); + virtual ~SVGDescElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGDescElementImpl *handle() const { return impl; } + +private: + SVGDescElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDocument.cc b/ksvg/dom/SVGDocument.cc new file mode 100644 index 00000000..8734b8da --- /dev/null +++ b/ksvg/dom/SVGDocument.cc @@ -0,0 +1,138 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "ksvg_ecma.h" + +#include "SVGDocument.h" +#include "SVGDocumentImpl.h" +#include "SVGSVGElement.h" +#include "SVGWindow.h" + +using namespace KSVG; + +SVGDocument::SVGDocument() : DOM::Document(*(new SVGDocumentImpl())) +{ + impl = reinterpret_cast<SVGDocumentImpl *>(handle()); + impl->ref(); +} + +SVGDocument::SVGDocument(const SVGDocument &other) : DOM::Document(other), impl(0) +{ + (*this) = other; +} + +SVGDocument &SVGDocument::operator=(const SVGDocument &other) +{ + DOM::Document::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGDocument::SVGDocument(SVGDocumentImpl *other) : DOM::Document(other->handle()) +{ + impl = other; + + if(impl) + impl->ref(); +} + +SVGDocument::~SVGDocument() +{ + if(impl) + impl->deref(); +} + +DOM::DOMString SVGDocument::title() const +{ + if(!impl) return DOM::DOMString(); + return impl->title(); +} + +DOM::DOMString SVGDocument::referrer() const +{ + if(!impl) return DOM::DOMString(); + return impl->referrer(); +} + +DOM::DOMString SVGDocument::domain() const +{ + if(!impl) return DOM::DOMString(); + return impl->domain(); +} + +DOM::DOMString SVGDocument::URL() const +{ + if(!impl) return DOM::DOMString(); + return impl->URL(); +} + +SVGWindow SVGDocument::window() const +{ + if(!impl) return SVGWindow(); + return impl->window(); +} + +SVGSVGElement SVGDocument::rootElement() const +{ + if(!impl) return SVGSVGElement(0); + return SVGSVGElement(impl->rootElement()); +} + +SVGElement SVGDocument::createElement(const DOM::DOMString &tagName) +{ + if(!impl) return SVGElement(0); + + DOM::Element impl = DOM::Document::createElement(tagName); + return SVGElement(SVGDocumentImpl::createElement(tagName, impl)); +} + +SVGElement SVGDocument::createElementNS(const DOM::DOMString &namespaceURI, const DOM::DOMString &qualifiedName) +{ + if(!impl) return SVGElement(0); + + DOM::Element impl = DOM::Document::createElementNS(namespaceURI, qualifiedName); + return SVGElement(SVGDocumentImpl::createElement(qualifiedName, impl)); +} + +// Internal +KJS::Object SVGDocument::globalJSObject() +{ + if(!impl) return KJS::Object(); + return impl->ecmaEngine()->globalObject(); +} + +KJS::ExecState *SVGDocument::globalJSExec() +{ + if(!impl) return 0; + return impl->ecmaEngine()->globalExec(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGDocument.h b/ksvg/dom/SVGDocument.h new file mode 100644 index 00000000..c3f5c7bd --- /dev/null +++ b/ksvg/dom/SVGDocument.h @@ -0,0 +1,70 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGDocument_H +#define SVGDocument_H + +#include <kjs/object.h> + +#include <dom/dom_doc.h> +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGWindow; +class SVGElement; +class SVGSVGElement; +class SVGDocumentImpl; +class SVGDocument : public DOM::Document +{ +public: + SVGDocument(); + SVGDocument(const SVGDocument &other); + SVGDocument &operator=(const SVGDocument &other); + SVGDocument(SVGDocumentImpl *other); + ~SVGDocument(); + + DOM::DOMString title() const; + DOM::DOMString referrer() const; + DOM::DOMString domain() const; + DOM::DOMString URL() const; + SVGWindow window() const; + + SVGSVGElement rootElement() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGDocumentImpl *handle() const { return impl; } + + SVGElement createElement(const DOM::DOMString &tagName); + SVGElement createElementNS(const DOM::DOMString &namespaceURI, const DOM::DOMString &qualifiedName); + + KJS::Object globalJSObject(); + KJS::ExecState *globalJSExec(); + +private: + SVGDocumentImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGElement.cc b/ksvg/dom/SVGElement.cc new file mode 100644 index 00000000..0edef368 --- /dev/null +++ b/ksvg/dom/SVGElement.cc @@ -0,0 +1,124 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGSVGElement.h" +#include "SVGElement.h" +#include "SVGElementImpl.h" + +using namespace KSVG; + +// There is no way to create a SVGElement this way! Use SVGDocument. +SVGElement::SVGElement() : DOM::Element() +{ + impl = 0; // new SVGElementImpl(ownerDocument().createElement().handle()); +} + +SVGElement::SVGElement(const SVGElement &other) : DOM::Element(other), impl(0) +{ + (*this) = other; +} + +SVGElement &SVGElement::operator=(const SVGElement &other) +{ + // Baseclass assignement operators always first (Niko) + DOM::Element::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGElement::SVGElement(SVGElementImpl *other) : DOM::Element(other->handle()) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGElement::~SVGElement() +{ + if(impl) + impl->deref(); +} + +void SVGElement::setId(DOM::DOMString value) +{ + if(impl) + impl->setId(value); +} + +DOM::DOMString SVGElement::id() +{ + if(!impl) return DOM::DOMString(); + return impl->id(); +} + +void SVGElement::setXmlbase(DOM::DOMString value) +{ + if(impl) + impl->setXmlbase(value); +} + +DOM::DOMString SVGElement::xmlbase() +{ + if(!impl) return DOM::DOMString(); + return impl->xmlbase(); +} + +SVGSVGElement SVGElement::ownerSVGElement() +{ + if(!impl) return SVGSVGElement(0); + return impl->ownerSVGElement(); +} + +SVGElement SVGElement::viewportElement() +{ + if(!impl) return SVGElement(0); + return impl->viewportElement(); +} + +void SVGElement::setAttribute(const DOM::DOMString &name, const DOM::DOMString &value) +{ + if(impl) + impl->setAttributeInternal(name, value); +} + +DOM::DOMString SVGElement::getAttribute(const DOM::DOMString &name) +{ + if(!impl) return DOM::DOMString(); + return impl->getAttributeInternal(name); +} + +bool SVGElement::hasAttribute(const DOM::DOMString &name) +{ + if(!impl) return false; + return impl->hasAttribute(name); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGElement.h b/ksvg/dom/SVGElement.h new file mode 100644 index 00000000..12191b05 --- /dev/null +++ b/ksvg/dom/SVGElement.h @@ -0,0 +1,83 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGElement_H +#define SVGElement_H + +#include <dom/dom_string.h> +#include <dom/dom_element.h> + +namespace KSVG +{ + +// Not part of the DOM specification. Internal use only! +#define dom_cast(Class, Obj) reinterpret_cast<Class##Impl *>(Obj.handle()) + +template<class A, class B> +class SVGSafeCreator +{ +public: + SVGSafeCreator() { } + ~SVGSafeCreator() { } + + static A create(B *impl) + { + if(!impl) return A(); // Don't use A(0) it'll crash! + return A(impl); + } +}; + +class SVGSVGElement; +class SVGElementImpl; +class SVGElement : public DOM::Element +{ +public: + SVGElement(); + SVGElement(const SVGElement &other); + SVGElement &operator=(const SVGElement &other); + SVGElement(SVGElementImpl *other); + ~SVGElement(); + + void setId(DOM::DOMString); + DOM::DOMString id(); + + void setXmlbase(DOM::DOMString); + DOM::DOMString xmlbase(); + + SVGSVGElement ownerSVGElement(); + SVGElement viewportElement(); + + // We need to overwrite set/get/hasAttribute(s) + void setAttribute(const DOM::DOMString &name, const DOM::DOMString &value); + DOM::DOMString getAttribute(const DOM::DOMString &name); + bool hasAttribute(const DOM::DOMString &name); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGElementImpl *handle() const { return impl; } + +private: + SVGElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGElementInstance.cc b/ksvg/dom/SVGElementInstance.cc new file mode 100644 index 00000000..9bc027c0 --- /dev/null +++ b/ksvg/dom/SVGElementInstance.cc @@ -0,0 +1,117 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGElementInstance.h" +#include "SVGElementInstanceImpl.h" +#include "SVGElementInstanceList.h" +#include "SVGElement.h" +#include "SVGUseElement.h" + +using namespace KSVG; + +SVGElementInstance::SVGElementInstance() +{ + impl = new SVGElementInstanceImpl(); + impl->ref(); +} + +SVGElementInstance::SVGElementInstance(const SVGElementInstance &other) : impl(0) +{ + (*this) = other; +} + +SVGElementInstance &SVGElementInstance::operator =(const SVGElementInstance &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGElementInstance::SVGElementInstance(SVGElementInstanceImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGElementInstance::~SVGElementInstance() +{ + if(impl) + impl->deref(); +} + +SVGElement SVGElementInstance::correspondingElement() const +{ + if(!impl) return SVGElement(0); + return SVGElement(impl->correspondingElement()); +} + +SVGUseElement SVGElementInstance::correspondingUseElement() const +{ + if(!impl) return SVGUseElement(0); + return SVGUseElement(impl->correspondingUseElement()); +} + +SVGElementInstance SVGElementInstance::parentNode() const +{ + if(!impl) return SVGElementInstance(0); + return SVGElementInstance(impl->parentNode()); +} + +SVGElementInstanceList SVGElementInstance::childNodes() const +{ + if(!impl) return SVGElementInstanceList(0); + return SVGElementInstanceList(impl->childNodes()); +} + +SVGElementInstance SVGElementInstance::firstChild() const +{ + if(!impl) return SVGElementInstance(0); + return SVGElementInstance(impl->firstChild()); +} + +SVGElementInstance SVGElementInstance::lastChild() const +{ + if(!impl) return SVGElementInstance(0); + return SVGElementInstance(impl->lastChild()); +} + +SVGElementInstance SVGElementInstance::previousSibling() const +{ + if(!impl) return SVGElementInstance(0); + return SVGElementInstance(impl->previousSibling()); +} + +SVGElementInstance SVGElementInstance::nextSibling() const +{ + if(!impl) return SVGElementInstance(0); + return SVGElementInstance(impl->nextSibling()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGElementInstance.h b/ksvg/dom/SVGElementInstance.h new file mode 100644 index 00000000..51d81831 --- /dev/null +++ b/ksvg/dom/SVGElementInstance.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGElementInstance_H +#define SVGElementInstance_H + +namespace KSVG +{ + +class SVGElement; +class SVGUseElement; +class SVGElementInstanceList; +class SVGElementInstanceImpl; +class SVGElementInstance +{ +public: + SVGElementInstance(); + SVGElementInstance(const SVGElementInstance &other); + SVGElementInstance &operator=(const SVGElementInstance &other); + SVGElementInstance(SVGElementInstanceImpl *other); + ~SVGElementInstance(); + + SVGElement correspondingElement() const; + SVGUseElement correspondingUseElement() const; + SVGElementInstance parentNode() const; + SVGElementInstanceList childNodes() const; + SVGElementInstance firstChild() const; + SVGElementInstance lastChild() const; + SVGElementInstance previousSibling() const; + SVGElementInstance nextSibling() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGElementInstanceImpl *handle() const { return impl; } + +private: + SVGElementInstanceImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGElementInstanceList.cc b/ksvg/dom/SVGElementInstanceList.cc new file mode 100644 index 00000000..ccc99f37 --- /dev/null +++ b/ksvg/dom/SVGElementInstanceList.cc @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGElementInstanceList.h" +#include "SVGElementInstanceListImpl.h" +#include "SVGElementInstance.h" + +using namespace KSVG; + +SVGElementInstanceList::SVGElementInstanceList() +{ + impl = new SVGElementInstanceListImpl(); + impl->ref(); +} + +SVGElementInstanceList::SVGElementInstanceList(const SVGElementInstanceList &other) : impl(0) +{ + (*this) = other; +} + +SVGElementInstanceList &SVGElementInstanceList::operator=(const SVGElementInstanceList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGElementInstanceList::SVGElementInstanceList(SVGElementInstanceListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGElementInstanceList::~SVGElementInstanceList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGElementInstanceList::length() const +{ + if(!impl) return 0; + return impl->length(); +} + +SVGElementInstance SVGElementInstanceList::item(unsigned long index) +{ + if(!impl) return SVGElementInstance(0); + return SVGElementInstance(impl->item(index)); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGElementInstanceList.h b/ksvg/dom/SVGElementInstanceList.h new file mode 100644 index 00000000..9beb40ed --- /dev/null +++ b/ksvg/dom/SVGElementInstanceList.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGElementInstanceList_H +#define SVGElementInstanceList_H + +namespace KSVG +{ + +class SVGElementInstance; +class SVGElementInstanceListImpl; +class SVGElementInstanceList +{ +public: + SVGElementInstanceList(); + SVGElementInstanceList(const SVGElementInstanceList &other); + SVGElementInstanceList &operator=(const SVGElementInstanceList &other); + SVGElementInstanceList(SVGElementInstanceListImpl *other); + ~SVGElementInstanceList(); + + unsigned long length() const; + SVGElementInstance item(unsigned long index); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGElementInstanceListImpl *handle() const { return impl; } + +private: + SVGElementInstanceListImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGEllipseElement.cc b/ksvg/dom/SVGEllipseElement.cc new file mode 100644 index 00000000..2b744ccb --- /dev/null +++ b/ksvg/dom/SVGEllipseElement.cc @@ -0,0 +1,98 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGEllipseElement.h" +#include "SVGEllipseElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGEllipseElement::SVGEllipseElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGEllipseElement::SVGEllipseElement(const SVGEllipseElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGEllipseElement &SVGEllipseElement::operator=(const SVGEllipseElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGEllipseElement::SVGEllipseElement(SVGEllipseElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGEllipseElement::~SVGEllipseElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGEllipseElement::cx() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->cx()); +} + +SVGAnimatedLength SVGEllipseElement::cy() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->cy()); +} + +SVGAnimatedLength SVGEllipseElement::rx() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->rx()); +} + +SVGAnimatedLength SVGEllipseElement::ry() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->ry()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGEllipseElement.h b/ksvg/dom/SVGEllipseElement.h new file mode 100644 index 00000000..78399779 --- /dev/null +++ b/ksvg/dom/SVGEllipseElement.h @@ -0,0 +1,131 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + +#ifndef SVGEllipseElement_H +#define SVGEllipseElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGEllipseElementImpl; + +/** + * The <code>ellipse</code> element defines an ellipse which is + * axis-aligned with the current user coordinate system based on a + * center point and two radii. + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/shapes.html#EllipseElement">9.4 The + * 'ellipse' element</a>. + */ +class SVGEllipseElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGEllipseElement(); + SVGEllipseElement(const SVGEllipseElement &); + SVGEllipseElement &operator=(const SVGEllipseElement &other); + SVGEllipseElement(SVGEllipseElementImpl *); + ~SVGEllipseElement(); + + /** + * The x-axis coordinate of the center of the ellipse. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the center of the ellipse. + */ + SVGAnimatedLength cx(); + + /** + * The y-axis coordinate of the center of the ellipse. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the center of the ellipse. + */ + SVGAnimatedLength cy(); + + /** + * The x-axis radius of the ellipse. + * A negative value is an error (see <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> + * Error processing</a>). A value of zero disables rendering of + * the element. + * + * This attribute is animatable. + * + * @return The x-radius of the ellipse. + */ + SVGAnimatedLength rx(); + + /** + * The y-axis radius of the ellipse. + * A negative value is an error (see <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> + * Error processing</a>). A value of zero disables rendering of + * the element. + * + * This attribute is animatable. + * + * @return The y-radius of the ellipse. + */ + SVGAnimatedLength ry(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGEllipseElementImpl *handle() const { return impl; } + +private: + SVGEllipseElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGEvent.cc b/ksvg/dom/SVGEvent.cc new file mode 100644 index 00000000..19fa6d27 --- /dev/null +++ b/ksvg/dom/SVGEvent.cc @@ -0,0 +1,187 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGEvent.h" +#include "SVGEventImpl.h" + +using namespace KSVG; + +SVGEvent::SVGEvent() : DOM::Event() +{ + impl = 0; +} + +SVGEvent::SVGEvent(const SVGEvent &other) : DOM::Event(other), impl(0) +{ + (*this) = other; +} + +SVGEvent &SVGEvent::operator =(const SVGEvent &other) +{ + DOM::Event::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGEvent::SVGEvent(SVGEventImpl *other) : DOM::Event() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGEvent::~SVGEvent() +{ + if(impl) + impl->deref(); +} + +SVGEvent::EventId SVGEvent::typeToId(DOM::DOMString type) +{ + if(type == "DOMFocusIn") + return DOMFOCUSIN_EVENT; + else if(type == "DOMFocusOut") + return DOMFOCUSOUT_EVENT; + else if(type == "DOMActivate") + return DOMACTIVATE_EVENT; + else if(type == "click") + return CLICK_EVENT; + else if(type == "mousedown") + return MOUSEDOWN_EVENT; + else if(type == "mouseup") + return MOUSEUP_EVENT; + else if(type == "mouseover") + return MOUSEOVER_EVENT; + else if(type == "mousemove") + return MOUSEMOVE_EVENT; + else if(type == "mouseout") + return MOUSEOUT_EVENT; + else if(type == "DOMSubtreeModified") + return DOMSUBTREEMODIFIED_EVENT; + else if(type == "DOMNodeInserted") + return DOMNODEINSERTED_EVENT; + else if(type == "DOMNodeRemoved") + return DOMNODEREMOVED_EVENT; + else if(type == "DOMNodeRemovedFromDocument") + return DOMNODEREMOVEDFROMDOCUMENT_EVENT; + else if(type == "DOMNodeInsertedIntoDocument") + return DOMNODEINSERTEDINTODOCUMENT_EVENT; + else if(type == "DOMAttrModified") + return DOMATTRMODIFIED_EVENT; + else if(type == "DOMCharacterDataModified") + return DOMCHARACTERDATAMODIFIED_EVENT; + else if(type == "load") + return LOAD_EVENT; + else if(type == "unload") + return UNLOAD_EVENT; + else if(type == "abort") + return ABORT_EVENT; + else if(type == "error") + return ERROR_EVENT; + else if(type == "resize") + return RESIZE_EVENT; + else if(type == "scroll") + return SCROLL_EVENT; + else if(type == "zoom") + return ZOOM_EVENT; + else if(type == "keydown") + return KEYDOWN_EVENT; + else if(type == "keyup") + return KEYUP_EVENT; + else if(type == "keypress") + return KEYPRESS_EVENT; + + return UNKNOWN_EVENT; +} + +DOM::DOMString SVGEvent::idToType(EventId id) +{ + switch(id) + { + case DOMFOCUSIN_EVENT: + return "DOMFocusIn"; + case DOMFOCUSOUT_EVENT: + return "DOMFocusOut"; + case DOMACTIVATE_EVENT: + return "DOMActivate"; + case CLICK_EVENT: + return "click"; + case MOUSEDOWN_EVENT: + return "mousedown"; + case MOUSEUP_EVENT: + return "mouseup"; + case MOUSEOVER_EVENT: + return "mouseover"; + case MOUSEMOVE_EVENT: + return "mousemove"; + case MOUSEOUT_EVENT: + return "mouseout"; + case DOMSUBTREEMODIFIED_EVENT: + return "DOMSubtreeModified"; + case DOMNODEINSERTED_EVENT: + return "DOMNodeInserted"; + case DOMNODEREMOVED_EVENT: + return "DOMNodeRemoved"; + case DOMNODEREMOVEDFROMDOCUMENT_EVENT: + return "DOMNodeRemovedFromDocument"; + case DOMNODEINSERTEDINTODOCUMENT_EVENT: + return "DOMNodeInsertedIntoDocument"; + case DOMATTRMODIFIED_EVENT: + return "DOMAttrModified"; + case DOMCHARACTERDATAMODIFIED_EVENT: + return "DOMCharacterDataModified"; + case LOAD_EVENT: + return "load"; + case UNLOAD_EVENT: + return "unload"; + case ABORT_EVENT: + return "abort"; + case ERROR_EVENT: + return "error"; + case RESIZE_EVENT: + return "resize"; + case SCROLL_EVENT: + return "scroll"; + case ZOOM_EVENT: + return "zoom"; + case KEYDOWN_EVENT: + return "keydown"; + case KEYUP_EVENT: + return "keyup"; + case KEYPRESS_EVENT: + return "keypress"; + default: + return DOM::DOMString(); + break; + } +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGEvent.h b/ksvg/dom/SVGEvent.h new file mode 100644 index 00000000..6aebf0aa --- /dev/null +++ b/ksvg/dom/SVGEvent.h @@ -0,0 +1,95 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGEvent_H +#define SVGEvent_H + +#include <dom/dom2_events.h> + +namespace KSVG +{ + +class SVGEventImpl; +class SVGEvent : public DOM::Event +{ +public: + enum EventId + { + UNKNOWN_EVENT = 0, + + // UI events + DOMFOCUSIN_EVENT, + DOMFOCUSOUT_EVENT, + DOMACTIVATE_EVENT, + + // Mouse events + CLICK_EVENT, + MOUSEDOWN_EVENT, + MOUSEUP_EVENT, + MOUSEOVER_EVENT, + MOUSEMOVE_EVENT, + MOUSEOUT_EVENT, + + // Mutation events + DOMSUBTREEMODIFIED_EVENT, + DOMNODEINSERTED_EVENT, + DOMNODEREMOVED_EVENT, + DOMNODEREMOVEDFROMDOCUMENT_EVENT, + DOMNODEINSERTEDINTODOCUMENT_EVENT, + DOMATTRMODIFIED_EVENT, + DOMCHARACTERDATAMODIFIED_EVENT, + + // SVG events + LOAD_EVENT, + UNLOAD_EVENT, + ABORT_EVENT, + ERROR_EVENT, + RESIZE_EVENT, + SCROLL_EVENT, + ZOOM_EVENT, + + // Key Events + KEYDOWN_EVENT, + KEYPRESS_EVENT, + KEYUP_EVENT + }; + + SVGEvent(); + SVGEvent(const SVGEvent &other); + SVGEvent &operator=(const SVGEvent &other); + SVGEvent(SVGEventImpl *other); + virtual ~SVGEvent(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGEventImpl *handle() const { return impl; } + + // Helper functions + static EventId typeToId(DOM::DOMString type); + static DOM::DOMString idToType(EventId id); + +private: + SVGEventImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGException.h b/ksvg/dom/SVGException.h new file mode 100644 index 00000000..dbbe7175 --- /dev/null +++ b/ksvg/dom/SVGException.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGException_H +#define SVGException_H + +namespace KSVG +{ +// TODO : use when DOM is full and/or ecma binding comes into play +class SVGException +{ +public: + SVGException(unsigned short code) { m_code = code; } + SVGException(const SVGException &other) { m_code = other.m_code; } + SVGException &operator=(const SVGException &other) + { + m_code = other.m_code; + return *this; + } + ~SVGException() {} + + enum ExceptionCode { + SVG_WRONG_TYPE_ERR = 0, + SVG_INVALID_VALUE_ERR = 1, + SVG_MATRIX_NOT_INVERTABLE = 2 + }; + unsigned short m_code; +}; + +}; + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGExternalResourcesRequired.cc b/ksvg/dom/SVGExternalResourcesRequired.cc new file mode 100644 index 00000000..986bf564 --- /dev/null +++ b/ksvg/dom/SVGExternalResourcesRequired.cc @@ -0,0 +1,65 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGExternalResourcesRequired.h" +#include "SVGExternalResourcesRequiredImpl.h" +#include "SVGAnimatedBoolean.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGExternalResourcesRequired::SVGExternalResourcesRequired() +{ + impl = 0; +} + +SVGExternalResourcesRequired::SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other) : impl(0) +{ + (*this) = other; +} + +SVGExternalResourcesRequired &SVGExternalResourcesRequired::operator=(const SVGExternalResourcesRequired &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGExternalResourcesRequired::SVGExternalResourcesRequired(SVGExternalResourcesRequiredImpl *other) +{ + impl = other; +} + +SVGExternalResourcesRequired::~SVGExternalResourcesRequired() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +SVGAnimatedBoolean SVGExternalResourcesRequired::externalResourcesRequired() const +{ + if(!impl) return SVGAnimatedBoolean(0); + return SVGAnimatedBoolean(impl->externalResourcesRequired()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGExternalResourcesRequired.h b/ksvg/dom/SVGExternalResourcesRequired.h new file mode 100644 index 00000000..e3668881 --- /dev/null +++ b/ksvg/dom/SVGExternalResourcesRequired.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGExternalResourcesRequired_H +#define SVGExternalResourcesRequired_H + +namespace KSVG +{ + +class SVGAnimatedBoolean; +class SVGExternalResourcesRequiredImpl; +class SVGExternalResourcesRequired +{ +public: + SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other); + SVGExternalResourcesRequired &operator=(const SVGExternalResourcesRequired &other); + SVGExternalResourcesRequired(SVGExternalResourcesRequiredImpl *other); + ~SVGExternalResourcesRequired(); + + SVGAnimatedBoolean externalResourcesRequired() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGExternalResourcesRequiredImpl *handle() const { return impl; } + +protected: + SVGExternalResourcesRequired(); + +private: + SVGExternalResourcesRequiredImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEBlendElement.cc b/ksvg/dom/SVGFEBlendElement.cc new file mode 100644 index 00000000..c991d18c --- /dev/null +++ b/ksvg/dom/SVGFEBlendElement.cc @@ -0,0 +1,88 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEBlendElement.h" +#include "SVGFEBlendElementImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGFEBlendElement::SVGFEBlendElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEBlendElement::SVGFEBlendElement(const SVGFEBlendElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEBlendElement &SVGFEBlendElement::operator =(const SVGFEBlendElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEBlendElement::SVGFEBlendElement(SVGFEBlendElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEBlendElement::~SVGFEBlendElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEBlendElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedString SVGFEBlendElement::in2() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in2()); +} + +SVGAnimatedEnumeration SVGFEBlendElement::mode() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->mode()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEBlendElement.h b/ksvg/dom/SVGFEBlendElement.h new file mode 100644 index 00000000..91c64b3f --- /dev/null +++ b/ksvg/dom/SVGFEBlendElement.h @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEBlendElement_H +#define SVGFEBlendElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +enum +{ + SVG_FEBLEND_MODE_UNKNOWN = 0, + SVG_FEBLEND_MODE_NORMAL = 1, + SVG_FEBLEND_MODE_MULTIPLY = 2, + SVG_FEBLEND_MODE_SCREEN = 3, + SVG_FEBLEND_MODE_DARKEN = 4, + SVG_FEBLEND_MODE_LIGHTEN = 5 +}; + +class SVGAnimatedString; +class SVGAnimatedEnumeration; +class SVGFEBlendElementImpl; +class SVGFEBlendElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEBlendElement(); + SVGFEBlendElement(const SVGFEBlendElement &other); + SVGFEBlendElement &operator=(const SVGFEBlendElement &other); + SVGFEBlendElement(SVGFEBlendElementImpl *other); + virtual ~SVGFEBlendElement(); + + SVGAnimatedString in1() const; + SVGAnimatedString in2() const; + SVGAnimatedEnumeration mode() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEBlendElementImpl *handle() const { return impl; } + +private: + SVGFEBlendElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEColorMatrixElement.cc b/ksvg/dom/SVGFEColorMatrixElement.cc new file mode 100644 index 00000000..1f77ac0e --- /dev/null +++ b/ksvg/dom/SVGFEColorMatrixElement.cc @@ -0,0 +1,89 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEColorMatrixElement.h" +#include "SVGFEColorMatrixElementImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedNumberList.h" + +using namespace KSVG; + +SVGFEColorMatrixElement::SVGFEColorMatrixElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEColorMatrixElement::SVGFEColorMatrixElement(const SVGFEColorMatrixElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEColorMatrixElement &SVGFEColorMatrixElement::operator =(const SVGFEColorMatrixElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEColorMatrixElement::SVGFEColorMatrixElement(SVGFEColorMatrixElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEColorMatrixElement::~SVGFEColorMatrixElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEColorMatrixElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedEnumeration SVGFEColorMatrixElement::type() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->type()); +} + +SVGAnimatedNumberList SVGFEColorMatrixElement::values() const +{ + if(!impl) return SVGAnimatedNumberList(0); + return SVGAnimatedNumberList(impl->values()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEColorMatrixElement.h b/ksvg/dom/SVGFEColorMatrixElement.h new file mode 100644 index 00000000..bbe51f16 --- /dev/null +++ b/ksvg/dom/SVGFEColorMatrixElement.h @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEColorMatrixElement_H +#define SVGFEColorMatrixElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +enum +{ + SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0, + SVG_FECOLORMATRIX_TYPE_MATRIX = 1, + SVG_FECOLORMATRIX_TYPE_SATURATE = 2, + SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3, + SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4 +}; + +class SVGAnimatedString; +class SVGAnimatedEnumeration; +class SVGAnimatedNumberList; +class SVGFEColorMatrixElementImpl; +class SVGFEColorMatrixElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEColorMatrixElement(); + SVGFEColorMatrixElement(const SVGFEColorMatrixElement &other); + SVGFEColorMatrixElement &operator=(const SVGFEColorMatrixElement &other); + SVGFEColorMatrixElement(SVGFEColorMatrixElementImpl *other); + virtual ~SVGFEColorMatrixElement(); + + SVGAnimatedString in1() const; + SVGAnimatedEnumeration type() const; + SVGAnimatedNumberList values() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEColorMatrixElementImpl *handle() const { return impl; } + +private: + SVGFEColorMatrixElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEComponentTransferElement.cc b/ksvg/dom/SVGFEComponentTransferElement.cc new file mode 100644 index 00000000..ea0d7490 --- /dev/null +++ b/ksvg/dom/SVGFEComponentTransferElement.cc @@ -0,0 +1,75 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEComponentTransferElement.h" +#include "SVGFEComponentTransferElementImpl.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGFEComponentTransferElement::SVGFEComponentTransferElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEComponentTransferElement::SVGFEComponentTransferElement(const SVGFEComponentTransferElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEComponentTransferElement &SVGFEComponentTransferElement::operator =(const SVGFEComponentTransferElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEComponentTransferElement::SVGFEComponentTransferElement(SVGFEComponentTransferElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEComponentTransferElement::~SVGFEComponentTransferElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEComponentTransferElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEComponentTransferElement.h b/ksvg/dom/SVGFEComponentTransferElement.h new file mode 100644 index 00000000..c387a4ca --- /dev/null +++ b/ksvg/dom/SVGFEComponentTransferElement.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEComponentTransferElement_H +#define SVGFEComponentTransferElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGFEComponentTransferElementImpl; +class SVGFEComponentTransferElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEComponentTransferElement(); + SVGFEComponentTransferElement(const SVGFEComponentTransferElement &other); + SVGFEComponentTransferElement &operator=(const SVGFEComponentTransferElement &other); + SVGFEComponentTransferElement(SVGFEComponentTransferElementImpl *other); + virtual ~SVGFEComponentTransferElement(); + + SVGAnimatedString in1() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEComponentTransferElementImpl *handle() const { return impl; } + +private: + SVGFEComponentTransferElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFECompositeElement.cc b/ksvg/dom/SVGFECompositeElement.cc new file mode 100644 index 00000000..61cf4352 --- /dev/null +++ b/ksvg/dom/SVGFECompositeElement.cc @@ -0,0 +1,113 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFECompositeElement.h" +#include "SVGFECompositeElementImpl.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGFECompositeElement::SVGFECompositeElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFECompositeElement::SVGFECompositeElement(const SVGFECompositeElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFECompositeElement &SVGFECompositeElement::operator =(const SVGFECompositeElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFECompositeElement::SVGFECompositeElement(SVGFECompositeElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFECompositeElement::~SVGFECompositeElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFECompositeElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedString SVGFECompositeElement::in2() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in2()); +} + +SVGAnimatedEnumeration SVGFECompositeElement::Operator() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->Operator()); +} + +SVGAnimatedNumber SVGFECompositeElement::k1() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->k1()); +} + +SVGAnimatedNumber SVGFECompositeElement::k2() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->k2()); +} + +SVGAnimatedNumber SVGFECompositeElement::k3() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->k3()); +} + +SVGAnimatedNumber SVGFECompositeElement::k4() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->k4()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFECompositeElement.h b/ksvg/dom/SVGFECompositeElement.h new file mode 100644 index 00000000..dcfa1817 --- /dev/null +++ b/ksvg/dom/SVGFECompositeElement.h @@ -0,0 +1,74 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFECompositeElement_H +#define SVGFECompositeElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +enum +{ + SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0, + SVG_FECOMPOSITE_OPERATOR_OVER = 1, + SVG_FECOMPOSITE_OPERATOR_IN = 2, + SVG_FECOMPOSITE_OPERATOR_OUT = 3, + SVG_FECOMPOSITE_OPERATOR_ATOP = 4, + SVG_FECOMPOSITE_OPERATOR_XOR = 5, + SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6 +}; + +class SVGAnimatedString; +class SVGAnimatedEnumeration; +class SVGAnimatedNumber; +class SVGFECompositeElementImpl; +class SVGFECompositeElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFECompositeElement(); + SVGFECompositeElement(const SVGFECompositeElement &other); + SVGFECompositeElement &operator=(const SVGFECompositeElement &other); + SVGFECompositeElement(SVGFECompositeElementImpl *other); + virtual ~SVGFECompositeElement(); + + SVGAnimatedString in1() const; + SVGAnimatedString in2() const; + SVGAnimatedEnumeration Operator() const; // TODO : impossible otherwise ? + SVGAnimatedNumber k1() const; + SVGAnimatedNumber k2() const; + SVGAnimatedNumber k3() const; + SVGAnimatedNumber k4() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFECompositeElementImpl *handle() const { return impl; } + +private: + SVGFECompositeElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEConvolveMatrixElement.cc b/ksvg/dom/SVGFEConvolveMatrixElement.cc new file mode 100644 index 00000000..5ecc292c --- /dev/null +++ b/ksvg/dom/SVGFEConvolveMatrixElement.cc @@ -0,0 +1,140 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEConvolveMatrixElement.h" +#include "SVGFEConvolveMatrixElementImpl.h" +#include "SVGAnimatedInteger.h" +#include "SVGAnimatedNumberList.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedLength.h" +#include "SVGAnimatedBoolean.h" + +using namespace KSVG; + +SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(const SVGFEConvolveMatrixElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEConvolveMatrixElement &SVGFEConvolveMatrixElement::operator =(const SVGFEConvolveMatrixElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(SVGFEConvolveMatrixElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEConvolveMatrixElement::~SVGFEConvolveMatrixElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedInteger SVGFEConvolveMatrixElement::orderX() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->orderX()); +} + +SVGAnimatedInteger SVGFEConvolveMatrixElement::orderY() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->orderY()); +} + +SVGAnimatedNumberList SVGFEConvolveMatrixElement::kernelMatrix() const +{ + if(!impl) return SVGAnimatedNumberList(0); + return SVGAnimatedNumberList(impl->kernelMatrix()); +} + +SVGAnimatedNumber SVGFEConvolveMatrixElement::divisor() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->divisor()); +} + +SVGAnimatedNumber SVGFEConvolveMatrixElement::bias() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->bias()); +} + +SVGAnimatedInteger SVGFEConvolveMatrixElement::targetX() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->targetX()); +} + +SVGAnimatedInteger SVGFEConvolveMatrixElement::targetY() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->targetY()); +} + +SVGAnimatedEnumeration SVGFEConvolveMatrixElement::edgeMode() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->edgeMode()); +} + +SVGAnimatedLength SVGFEConvolveMatrixElement::kernelUnitLengthX() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->kernelUnitLengthX()); +} + +SVGAnimatedLength SVGFEConvolveMatrixElement::kernelUnitLengthY() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->kernelUnitLengthY()); +} + +SVGAnimatedBoolean SVGFEConvolveMatrixElement::preserveAlpha() const +{ + if(!impl) return SVGAnimatedBoolean(0); + return SVGAnimatedBoolean(impl->preserveAlpha()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEConvolveMatrixElement.h b/ksvg/dom/SVGFEConvolveMatrixElement.h new file mode 100644 index 00000000..88a7ed00 --- /dev/null +++ b/ksvg/dom/SVGFEConvolveMatrixElement.h @@ -0,0 +1,78 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEConvolveMatrixElement_H +#define SVGFEConvolveMatrixElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +enum +{ + SVG_EDGEMODE_UNKNOWN = 0, + SVG_EDGEMODE_DUPLICATE = 1, + SVG_EDGEMODE_WRAP = 2, + SVG_EDGEMODE_NONE = 3 +}; + +class SVGAnimatedInteger; +class SVGAnimatedNumberList; +class SVGAnimatedNumber; +class SVGAnimatedEnumeration; +class SVGAnimatedLength; +class SVGAnimatedBoolean; +class SVGFEConvolveMatrixElementImpl; +class SVGFEConvolveMatrixElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEConvolveMatrixElement(); + SVGFEConvolveMatrixElement(const SVGFEConvolveMatrixElement &other); + SVGFEConvolveMatrixElement &operator=(const SVGFEConvolveMatrixElement &other); + SVGFEConvolveMatrixElement(SVGFEConvolveMatrixElementImpl *other); + virtual ~SVGFEConvolveMatrixElement(); + + SVGAnimatedInteger orderX() const; + SVGAnimatedInteger orderY() const; + SVGAnimatedNumberList kernelMatrix() const; + SVGAnimatedNumber divisor() const; + SVGAnimatedNumber bias() const; + SVGAnimatedInteger targetX() const; + SVGAnimatedInteger targetY() const; + SVGAnimatedEnumeration edgeMode() const; + SVGAnimatedLength kernelUnitLengthX() const; + SVGAnimatedLength kernelUnitLengthY() const; + SVGAnimatedBoolean preserveAlpha() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEConvolveMatrixElementImpl *handle() const { return impl; } + +private: + SVGFEConvolveMatrixElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEDiffuseLightingElement.cc b/ksvg/dom/SVGFEDiffuseLightingElement.cc new file mode 100644 index 00000000..eba5935f --- /dev/null +++ b/ksvg/dom/SVGFEDiffuseLightingElement.cc @@ -0,0 +1,88 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEDiffuseLightingElement.h" +#include "SVGFEDiffuseLightingElementImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedNumber.h" + +using namespace KSVG; + +SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement(const SVGFEDiffuseLightingElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEDiffuseLightingElement &SVGFEDiffuseLightingElement::operator =(const SVGFEDiffuseLightingElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement(SVGFEDiffuseLightingElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEDiffuseLightingElement::~SVGFEDiffuseLightingElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEDiffuseLightingElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedNumber SVGFEDiffuseLightingElement::surfaceScale() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->surfaceScale()); +} + +SVGAnimatedNumber SVGFEDiffuseLightingElement::diffuseConstant() const +{ + if(!impl) return SVGAnimatedNumber(); + return SVGAnimatedNumber(impl->diffuseConstant()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEDiffuseLightingElement.h b/ksvg/dom/SVGFEDiffuseLightingElement.h new file mode 100644 index 00000000..6356d996 --- /dev/null +++ b/ksvg/dom/SVGFEDiffuseLightingElement.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEDiffuseLightingElement_H +#define SVGFEDiffuseLightingElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGAnimatedNumber; +class SVGFEDiffuseLightingElementImpl; +class SVGFEDiffuseLightingElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEDiffuseLightingElement(); + SVGFEDiffuseLightingElement(const SVGFEDiffuseLightingElement &other); + SVGFEDiffuseLightingElement &operator=(const SVGFEDiffuseLightingElement &other); + SVGFEDiffuseLightingElement(SVGFEDiffuseLightingElementImpl *other); + virtual ~SVGFEDiffuseLightingElement(); + + SVGAnimatedString in1() const; + SVGAnimatedNumber surfaceScale() const; + SVGAnimatedNumber diffuseConstant() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEDiffuseLightingElementImpl *handle() const { return impl; } + +private: + SVGFEDiffuseLightingElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEDisplacementMapElement.cc b/ksvg/dom/SVGFEDisplacementMapElement.cc new file mode 100644 index 00000000..7c41fd3e --- /dev/null +++ b/ksvg/dom/SVGFEDisplacementMapElement.cc @@ -0,0 +1,101 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEDisplacementMapElement.h" +#include "SVGFEDisplacementMapElementImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGFEDisplacementMapElement::SVGFEDisplacementMapElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(const SVGFEDisplacementMapElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEDisplacementMapElement &SVGFEDisplacementMapElement::operator =(const SVGFEDisplacementMapElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(SVGFEDisplacementMapElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEDisplacementMapElement::~SVGFEDisplacementMapElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEDisplacementMapElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedString SVGFEDisplacementMapElement::in2() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in2()); +} + +SVGAnimatedNumber SVGFEDisplacementMapElement::scale() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->scale()); +} + +SVGAnimatedEnumeration SVGFEDisplacementMapElement::xChannelSelector() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->xChannelSelector()); +} + +SVGAnimatedEnumeration SVGFEDisplacementMapElement::yChannelSelector() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->yChannelSelector()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEDisplacementMapElement.h b/ksvg/dom/SVGFEDisplacementMapElement.h new file mode 100644 index 00000000..ee591ca4 --- /dev/null +++ b/ksvg/dom/SVGFEDisplacementMapElement.h @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEDisplacementMapElement_H +#define SVGFEDisplacementMapElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ +enum +{ + SVG_CHANNEL_UNKNOWN = 0, + SVG_CHANNEL_R = 1, + SVG_CHANNEL_G = 2, + SVG_CHANNEL_B = 3, + SVG_CHANNEL_A = 4 +}; + +class SVGAnimatedNumber; +class SVGAnimatedString; +class SVGAnimatedEnumeration; +class SVGFEDisplacementMapElementImpl; +class SVGFEDisplacementMapElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEDisplacementMapElement(); + SVGFEDisplacementMapElement(const SVGFEDisplacementMapElement &other); + SVGFEDisplacementMapElement &operator=(const SVGFEDisplacementMapElement &other); + SVGFEDisplacementMapElement(SVGFEDisplacementMapElementImpl *other); + virtual ~SVGFEDisplacementMapElement(); + + SVGAnimatedString in1() const; + SVGAnimatedString in2() const; + SVGAnimatedNumber scale() const; + SVGAnimatedEnumeration xChannelSelector() const; + SVGAnimatedEnumeration yChannelSelector() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEDisplacementMapElementImpl *handle() const { return impl; } + +private: + SVGFEDisplacementMapElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEDistantLightElement.cc b/ksvg/dom/SVGFEDistantLightElement.cc new file mode 100644 index 00000000..92371abc --- /dev/null +++ b/ksvg/dom/SVGFEDistantLightElement.cc @@ -0,0 +1,80 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEDistantLightElement.h" +#include "SVGFEDistantLightElementImpl.h" +#include "SVGAnimatedNumber.h" + +using namespace KSVG; + +SVGFEDistantLightElement::SVGFEDistantLightElement() : SVGElement() +{ + impl = 0; +} + +SVGFEDistantLightElement::SVGFEDistantLightElement(const SVGFEDistantLightElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEDistantLightElement &SVGFEDistantLightElement::operator =(const SVGFEDistantLightElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEDistantLightElement::SVGFEDistantLightElement(SVGFEDistantLightElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEDistantLightElement::~SVGFEDistantLightElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedNumber SVGFEDistantLightElement::azimuth() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->azimuth()); +} + +SVGAnimatedNumber SVGFEDistantLightElement::elevation() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->elevation()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEDistantLightElement.h b/ksvg/dom/SVGFEDistantLightElement.h new file mode 100644 index 00000000..4b2c926a --- /dev/null +++ b/ksvg/dom/SVGFEDistantLightElement.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEDistantLightElement_H +#define SVGFEDistantLightElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGAnimatedNumber; +class SVGFEDistantLightElementImpl; +class SVGFEDistantLightElement : public SVGElement +{ +public: + SVGFEDistantLightElement(); + SVGFEDistantLightElement(const SVGFEDistantLightElement &other); + SVGFEDistantLightElement &operator=(const SVGFEDistantLightElement &other); + SVGFEDistantLightElement(SVGFEDistantLightElementImpl *other); + virtual ~SVGFEDistantLightElement(); + + SVGAnimatedNumber azimuth() const; + SVGAnimatedNumber elevation() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEDistantLightElementImpl *handle() const { return impl; } + +private: + SVGFEDistantLightElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFloodElement.cc b/ksvg/dom/SVGFEFloodElement.cc new file mode 100644 index 00000000..7b0b320c --- /dev/null +++ b/ksvg/dom/SVGFEFloodElement.cc @@ -0,0 +1,76 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEFloodElement.h" +#include "SVGFEFloodElementImpl.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGFEFloodElement::SVGFEFloodElement() : SVGElement(), SVGStylable(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEFloodElement::SVGFEFloodElement(const SVGFEFloodElement &other) : SVGElement(other), SVGStylable(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEFloodElement &SVGFEFloodElement::operator =(const SVGFEFloodElement &other) +{ + SVGElement::operator=(other); + SVGStylable::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEFloodElement::SVGFEFloodElement(SVGFEFloodElementImpl *other) : SVGElement(other), SVGStylable(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEFloodElement::~SVGFEFloodElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEFloodElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFloodElement.h b/ksvg/dom/SVGFEFloodElement.h new file mode 100644 index 00000000..401e056b --- /dev/null +++ b/ksvg/dom/SVGFEFloodElement.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEFloodElement_H +#define SVGFEFloodElement_H + +#include "SVGElement.h" +#include "SVGStylable.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGFEFloodElementImpl; +class SVGFEFloodElement : public SVGElement, + public SVGStylable, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEFloodElement(); + SVGFEFloodElement(const SVGFEFloodElement &other); + SVGFEFloodElement &operator=(const SVGFEFloodElement &other); + SVGFEFloodElement(SVGFEFloodElementImpl *other); + virtual ~SVGFEFloodElement(); + + SVGAnimatedString in1() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEFloodElementImpl *handle() const { return impl; } + +private: + SVGFEFloodElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncAElement.cc b/ksvg/dom/SVGFEFuncAElement.cc new file mode 100644 index 00000000..cd0e9f10 --- /dev/null +++ b/ksvg/dom/SVGFEFuncAElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEFuncAElement.h" +#include "SVGFEFuncAElementImpl.h" + +using namespace KSVG; + +SVGFEFuncAElement::SVGFEFuncAElement() : SVGComponentTransferFunctionElement() +{ + impl = 0; +} + +SVGFEFuncAElement::SVGFEFuncAElement(const SVGFEFuncAElement &other) : SVGComponentTransferFunctionElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEFuncAElement &SVGFEFuncAElement::operator =(const SVGFEFuncAElement &other) +{ + SVGComponentTransferFunctionElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEFuncAElement::SVGFEFuncAElement(SVGFEFuncAElementImpl *other) : SVGComponentTransferFunctionElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEFuncAElement::~SVGFEFuncAElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncAElement.h b/ksvg/dom/SVGFEFuncAElement.h new file mode 100644 index 00000000..64287f27 --- /dev/null +++ b/ksvg/dom/SVGFEFuncAElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEFuncAElement_H +#define SVGFEFuncAElement_H + +#include "SVGComponentTransferFunctionElement.h" + +namespace KSVG +{ + +class SVGFEFuncAElementImpl; +class SVGFEFuncAElement : public SVGComponentTransferFunctionElement +{ +public: + SVGFEFuncAElement(); + SVGFEFuncAElement(const SVGFEFuncAElement &other); + SVGFEFuncAElement &operator=(const SVGFEFuncAElement &other); + SVGFEFuncAElement(SVGFEFuncAElementImpl *other); + virtual ~SVGFEFuncAElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEFuncAElementImpl *handle() const { return impl; } + +private: + SVGFEFuncAElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncBElement.cc b/ksvg/dom/SVGFEFuncBElement.cc new file mode 100644 index 00000000..2cf0fdb0 --- /dev/null +++ b/ksvg/dom/SVGFEFuncBElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEFuncBElement.h" +#include "SVGFEFuncBElementImpl.h" + +using namespace KSVG; + +SVGFEFuncBElement::SVGFEFuncBElement() : SVGComponentTransferFunctionElement() +{ + impl = 0; +} + +SVGFEFuncBElement::SVGFEFuncBElement(const SVGFEFuncBElement &other) : SVGComponentTransferFunctionElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEFuncBElement &SVGFEFuncBElement::operator =(const SVGFEFuncBElement &other) +{ + SVGComponentTransferFunctionElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEFuncBElement::SVGFEFuncBElement(SVGFEFuncBElementImpl *other) : SVGComponentTransferFunctionElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEFuncBElement::~SVGFEFuncBElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncBElement.h b/ksvg/dom/SVGFEFuncBElement.h new file mode 100644 index 00000000..2eacbbc3 --- /dev/null +++ b/ksvg/dom/SVGFEFuncBElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEFuncBElement_H +#define SVGFEFuncBElement_H + +#include "SVGComponentTransferFunctionElement.h" + +namespace KSVG +{ + +class SVGFEFuncBElementImpl; +class SVGFEFuncBElement : public SVGComponentTransferFunctionElement +{ +public: + SVGFEFuncBElement(); + SVGFEFuncBElement(const SVGFEFuncBElement &other); + SVGFEFuncBElement &operator=(const SVGFEFuncBElement &other); + SVGFEFuncBElement(SVGFEFuncBElementImpl *other); + virtual ~SVGFEFuncBElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEFuncBElementImpl *handle() const { return impl; } + +private: + SVGFEFuncBElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncGElement.cc b/ksvg/dom/SVGFEFuncGElement.cc new file mode 100644 index 00000000..ef8fdfea --- /dev/null +++ b/ksvg/dom/SVGFEFuncGElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEFuncGElement.h" +#include "SVGFEFuncGElementImpl.h" + +using namespace KSVG; + +SVGFEFuncGElement::SVGFEFuncGElement() : SVGComponentTransferFunctionElement() +{ + impl = 0; +} + +SVGFEFuncGElement::SVGFEFuncGElement(const SVGFEFuncGElement &other) : SVGComponentTransferFunctionElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEFuncGElement &SVGFEFuncGElement::operator =(const SVGFEFuncGElement &other) +{ + SVGComponentTransferFunctionElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEFuncGElement::SVGFEFuncGElement(SVGFEFuncGElementImpl *other) : SVGComponentTransferFunctionElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEFuncGElement::~SVGFEFuncGElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncGElement.h b/ksvg/dom/SVGFEFuncGElement.h new file mode 100644 index 00000000..09c98195 --- /dev/null +++ b/ksvg/dom/SVGFEFuncGElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEFuncGElement_H +#define SVGFEFuncGElement_H + +#include "SVGComponentTransferFunctionElement.h" + +namespace KSVG +{ + +class SVGFEFuncGElementImpl; +class SVGFEFuncGElement : public SVGComponentTransferFunctionElement +{ +public: + SVGFEFuncGElement(); + SVGFEFuncGElement(const SVGFEFuncGElement &other); + SVGFEFuncGElement &operator=(const SVGFEFuncGElement &other); + SVGFEFuncGElement(SVGFEFuncGElementImpl *other); + virtual ~SVGFEFuncGElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEFuncGElementImpl *handle() const { return impl; } + +private: + SVGFEFuncGElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncRElement.cc b/ksvg/dom/SVGFEFuncRElement.cc new file mode 100644 index 00000000..2020e33c --- /dev/null +++ b/ksvg/dom/SVGFEFuncRElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEFuncRElement.h" +#include "SVGFEFuncRElementImpl.h" + +using namespace KSVG; + +SVGFEFuncRElement::SVGFEFuncRElement() : SVGComponentTransferFunctionElement() +{ + impl = 0; +} + +SVGFEFuncRElement::SVGFEFuncRElement(const SVGFEFuncRElement &other) : SVGComponentTransferFunctionElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEFuncRElement &SVGFEFuncRElement::operator =(const SVGFEFuncRElement &other) +{ + SVGComponentTransferFunctionElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEFuncRElement::SVGFEFuncRElement(SVGFEFuncRElementImpl *other) : SVGComponentTransferFunctionElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEFuncRElement::~SVGFEFuncRElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEFuncRElement.h b/ksvg/dom/SVGFEFuncRElement.h new file mode 100644 index 00000000..1a58ef15 --- /dev/null +++ b/ksvg/dom/SVGFEFuncRElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEFuncRElement_H +#define SVGFEFuncRElement_H + +#include "SVGComponentTransferFunctionElement.h" + +namespace KSVG +{ + +class SVGFEFuncRElementImpl; +class SVGFEFuncRElement : public SVGComponentTransferFunctionElement +{ +public: + SVGFEFuncRElement(); + SVGFEFuncRElement(const SVGFEFuncRElement &other); + SVGFEFuncRElement &operator=(const SVGFEFuncRElement &other); + SVGFEFuncRElement(SVGFEFuncRElementImpl *other); + virtual ~SVGFEFuncRElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEFuncRElementImpl *handle() const { return impl; } + +private: + SVGFEFuncRElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEGaussianBlurElement.cc b/ksvg/dom/SVGFEGaussianBlurElement.cc new file mode 100644 index 00000000..2daaa8b8 --- /dev/null +++ b/ksvg/dom/SVGFEGaussianBlurElement.cc @@ -0,0 +1,94 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEGaussianBlurElement.h" +#include "SVGFEGaussianBlurElementImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedNumber.h" + +using namespace KSVG; + +SVGFEGaussianBlurElement::SVGFEGaussianBlurElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEGaussianBlurElement::SVGFEGaussianBlurElement(const SVGFEGaussianBlurElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEGaussianBlurElement &SVGFEGaussianBlurElement::operator =(const SVGFEGaussianBlurElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEGaussianBlurElement::SVGFEGaussianBlurElement(SVGFEGaussianBlurElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEGaussianBlurElement::~SVGFEGaussianBlurElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEGaussianBlurElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedNumber SVGFEGaussianBlurElement::stdDeviationX() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->stdDeviationX()); +} + +SVGAnimatedNumber SVGFEGaussianBlurElement::stdDeviationY() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->stdDeviationY()); +} + +void SVGFEGaussianBlurElement::setStdDeviation(float stdDeviationX, float stdDeviationY) +{ + if(impl) + impl->setStdDeviation(stdDeviationX, stdDeviationY); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEGaussianBlurElement.h b/ksvg/dom/SVGFEGaussianBlurElement.h new file mode 100644 index 00000000..a920ea68 --- /dev/null +++ b/ksvg/dom/SVGFEGaussianBlurElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEGaussianBlurElement_H +#define SVGFEGaussianBlurElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGAnimatedNumber; +class SVGFEGaussianBlurElementImpl; +class SVGFEGaussianBlurElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEGaussianBlurElement(); + SVGFEGaussianBlurElement(const SVGFEGaussianBlurElement &other); + SVGFEGaussianBlurElement &operator=(const SVGFEGaussianBlurElement &other); + SVGFEGaussianBlurElement(SVGFEGaussianBlurElementImpl *other); + virtual ~SVGFEGaussianBlurElement(); + + SVGAnimatedString in1() const; + SVGAnimatedNumber stdDeviationX() const; + SVGAnimatedNumber stdDeviationY() const; + + void setStdDeviation(float stdDeviationX, float stdDeviationY); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEGaussianBlurElementImpl *handle() const { return impl; } + +private: + SVGFEGaussianBlurElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEImageElement.cc b/ksvg/dom/SVGFEImageElement.cc new file mode 100644 index 00000000..6781edb6 --- /dev/null +++ b/ksvg/dom/SVGFEImageElement.cc @@ -0,0 +1,72 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEImageElement.h" +#include "SVGFEImageElementImpl.h" + +using namespace KSVG; + +SVGFEImageElement::SVGFEImageElement() : SVGElement(), SVGURIReference(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEImageElement::SVGFEImageElement(const SVGFEImageElement &other) : SVGElement(other), SVGURIReference(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEImageElement &SVGFEImageElement::operator =(const SVGFEImageElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEImageElement::SVGFEImageElement(SVGFEImageElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEImageElement::~SVGFEImageElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEImageElement.h b/ksvg/dom/SVGFEImageElement.h new file mode 100644 index 00000000..2c8d5b38 --- /dev/null +++ b/ksvg/dom/SVGFEImageElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEImageElement_H +#define SVGFEImageElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGFEImageElementImpl; +class SVGFEImageElement : public SVGElement, + public SVGURIReference, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEImageElement(); + SVGFEImageElement(const SVGFEImageElement &other); + SVGFEImageElement &operator=(const SVGFEImageElement &other); + SVGFEImageElement(SVGFEImageElementImpl *other); + virtual ~SVGFEImageElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEImageElementImpl *handle() const { return impl; } + +private: + SVGFEImageElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEMergeElement.cc b/ksvg/dom/SVGFEMergeElement.cc new file mode 100644 index 00000000..8440cd53 --- /dev/null +++ b/ksvg/dom/SVGFEMergeElement.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEMergeElement.h" +#include "SVGFEMergeElementImpl.h" + +using namespace KSVG; + +SVGFEMergeElement::SVGFEMergeElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEMergeElement::SVGFEMergeElement(const SVGFEMergeElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEMergeElement &SVGFEMergeElement::operator =(const SVGFEMergeElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEMergeElement::SVGFEMergeElement(SVGFEMergeElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEMergeElement::~SVGFEMergeElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEMergeElement.h b/ksvg/dom/SVGFEMergeElement.h new file mode 100644 index 00000000..72e915ec --- /dev/null +++ b/ksvg/dom/SVGFEMergeElement.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEMergeElement_H +#define SVGFEMergeElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGFEMergeElementImpl; +class SVGFEMergeElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEMergeElement(); + SVGFEMergeElement(const SVGFEMergeElement &other); + SVGFEMergeElement &operator=(const SVGFEMergeElement &other); + SVGFEMergeElement(SVGFEMergeElementImpl *other); + virtual ~SVGFEMergeElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEMergeElementImpl *handle() const { return impl; } + +private: + SVGFEMergeElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEMergeNodeElement.cc b/ksvg/dom/SVGFEMergeNodeElement.cc new file mode 100644 index 00000000..7abe70e7 --- /dev/null +++ b/ksvg/dom/SVGFEMergeNodeElement.cc @@ -0,0 +1,74 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEMergeNodeElement.h" +#include "SVGFEMergeNodeElementImpl.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGFEMergeNodeElement::SVGFEMergeNodeElement() : SVGElement() +{ + impl = 0; +} + +SVGFEMergeNodeElement::SVGFEMergeNodeElement(const SVGFEMergeNodeElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEMergeNodeElement &SVGFEMergeNodeElement::operator =(const SVGFEMergeNodeElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEMergeNodeElement::SVGFEMergeNodeElement(SVGFEMergeNodeElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEMergeNodeElement::~SVGFEMergeNodeElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEMergeNodeElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEMergeNodeElement.h b/ksvg/dom/SVGFEMergeNodeElement.h new file mode 100644 index 00000000..e9002f0c --- /dev/null +++ b/ksvg/dom/SVGFEMergeNodeElement.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEMergeNodeElement_H +#define SVGFEMergeNodeElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGFEMergeNodeElementImpl; +class SVGFEMergeNodeElement : public SVGElement +{ +public: + SVGFEMergeNodeElement(); + SVGFEMergeNodeElement(const SVGFEMergeNodeElement &other); + SVGFEMergeNodeElement &operator=(const SVGFEMergeNodeElement &other); + SVGFEMergeNodeElement(SVGFEMergeNodeElementImpl *other); + virtual ~SVGFEMergeNodeElement(); + + SVGAnimatedString in1() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEMergeNodeElementImpl *handle() const { return impl; } + +private: + SVGFEMergeNodeElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEMorphologyElement.cc b/ksvg/dom/SVGFEMorphologyElement.cc new file mode 100644 index 00000000..293d86a8 --- /dev/null +++ b/ksvg/dom/SVGFEMorphologyElement.cc @@ -0,0 +1,95 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEMorphologyElement.h" +#include "SVGFEMorphologyElementImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGFEMorphologyElement::SVGFEMorphologyElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEMorphologyElement::SVGFEMorphologyElement(const SVGFEMorphologyElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEMorphologyElement &SVGFEMorphologyElement::operator =(const SVGFEMorphologyElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEMorphologyElement::SVGFEMorphologyElement(SVGFEMorphologyElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEMorphologyElement::~SVGFEMorphologyElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEMorphologyElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedEnumeration SVGFEMorphologyElement::Operator() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->Operator()); +} + +SVGAnimatedLength SVGFEMorphologyElement::radiusX() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->radiusX()); +} + +SVGAnimatedLength SVGFEMorphologyElement::radiusY() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->radiusY()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEMorphologyElement.h b/ksvg/dom/SVGFEMorphologyElement.h new file mode 100644 index 00000000..7ca1b6a0 --- /dev/null +++ b/ksvg/dom/SVGFEMorphologyElement.h @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEMorphologyElement_H +#define SVGFEMorphologyElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +enum +{ + SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0, + SVG_MORPHOLOGY_OPERATOR_ERODE = 1, + SVG_MORPHOLOGY_OPERATOR_DILATE = 2 +}; + +class SVGAnimatedString; +class SVGAnimatedEnumeration; +class SVGAnimatedLength; +class SVGFEMorphologyElementImpl; +class SVGFEMorphologyElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEMorphologyElement(); + SVGFEMorphologyElement(const SVGFEMorphologyElement &other); + SVGFEMorphologyElement &operator=(const SVGFEMorphologyElement &other); + SVGFEMorphologyElement(SVGFEMorphologyElementImpl *other); + virtual ~SVGFEMorphologyElement(); + + SVGAnimatedString in1() const; + SVGAnimatedEnumeration Operator() const; + SVGAnimatedLength radiusX() const; + SVGAnimatedLength radiusY() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEMorphologyElementImpl *handle() const { return impl; } + +private: + SVGFEMorphologyElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEOffsetElement.cc b/ksvg/dom/SVGFEOffsetElement.cc new file mode 100644 index 00000000..f16ff5ed --- /dev/null +++ b/ksvg/dom/SVGFEOffsetElement.cc @@ -0,0 +1,88 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEOffsetElement.h" +#include "SVGFEOffsetElementImpl.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGFEOffsetElement::SVGFEOffsetElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFEOffsetElement::SVGFEOffsetElement(const SVGFEOffsetElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFEOffsetElement &SVGFEOffsetElement::operator =(const SVGFEOffsetElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEOffsetElement::SVGFEOffsetElement(SVGFEOffsetElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEOffsetElement::~SVGFEOffsetElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFEOffsetElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedNumber SVGFEOffsetElement::dx() const +{ + if(!impl) return SVGAnimatedNumber(0); // FIXME + return SVGAnimatedNumber(impl->dx()); +} + +SVGAnimatedNumber SVGFEOffsetElement::dy() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->dy()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEOffsetElement.h b/ksvg/dom/SVGFEOffsetElement.h new file mode 100644 index 00000000..62b63407 --- /dev/null +++ b/ksvg/dom/SVGFEOffsetElement.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEOffsetElement_H +#define SVGFEOffsetElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGAnimatedNumber; +class SVGFEOffsetElementImpl; +class SVGFEOffsetElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFEOffsetElement(); + SVGFEOffsetElement(const SVGFEOffsetElement &other); + SVGFEOffsetElement &operator=(const SVGFEOffsetElement &other); + SVGFEOffsetElement(SVGFEOffsetElementImpl *other); + virtual ~SVGFEOffsetElement(); + + SVGAnimatedString in1() const; + SVGAnimatedNumber dx() const; + SVGAnimatedNumber dy() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEOffsetElementImpl *handle() const { return impl; } + +private: + SVGFEOffsetElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEPointLightElement.cc b/ksvg/dom/SVGFEPointLightElement.cc new file mode 100644 index 00000000..ce5e4635 --- /dev/null +++ b/ksvg/dom/SVGFEPointLightElement.cc @@ -0,0 +1,86 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFEPointLightElement.h" +#include "SVGFEPointLightElementImpl.h" +#include "SVGAnimatedNumber.h" + +using namespace KSVG; + +SVGFEPointLightElement::SVGFEPointLightElement() : SVGElement() +{ + impl = 0; +} + +SVGFEPointLightElement::SVGFEPointLightElement(const SVGFEPointLightElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFEPointLightElement &SVGFEPointLightElement::operator =(const SVGFEPointLightElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFEPointLightElement::SVGFEPointLightElement(SVGFEPointLightElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFEPointLightElement::~SVGFEPointLightElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedNumber SVGFEPointLightElement::x() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->x()); +} + +SVGAnimatedNumber SVGFEPointLightElement::y() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->y()); +} + +SVGAnimatedNumber SVGFEPointLightElement::z() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->z()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFEPointLightElement.h b/ksvg/dom/SVGFEPointLightElement.h new file mode 100644 index 00000000..1d029e00 --- /dev/null +++ b/ksvg/dom/SVGFEPointLightElement.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFEPointLightElement_H +#define SVGFEPointLightElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGAnimatedNumber; +class SVGFEPointLightElementImpl; +class SVGFEPointLightElement : public SVGElement +{ +public: + SVGFEPointLightElement(); + SVGFEPointLightElement(const SVGFEPointLightElement &other); + SVGFEPointLightElement &operator=(const SVGFEPointLightElement &other); + SVGFEPointLightElement(SVGFEPointLightElementImpl *other); + virtual ~SVGFEPointLightElement(); + + SVGAnimatedNumber x() const; + SVGAnimatedNumber y() const; + SVGAnimatedNumber z() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFEPointLightElementImpl *handle() const { return impl; } + +private: + SVGFEPointLightElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFESpecularLightingElement.cc b/ksvg/dom/SVGFESpecularLightingElement.cc new file mode 100644 index 00000000..924e1ce7 --- /dev/null +++ b/ksvg/dom/SVGFESpecularLightingElement.cc @@ -0,0 +1,94 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFESpecularLightingElement.h" +#include "SVGFESpecularLightingElementImpl.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGFESpecularLightingElement::SVGFESpecularLightingElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFESpecularLightingElement::SVGFESpecularLightingElement(const SVGFESpecularLightingElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFESpecularLightingElement &SVGFESpecularLightingElement::operator =(const SVGFESpecularLightingElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFESpecularLightingElement::SVGFESpecularLightingElement(SVGFESpecularLightingElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFESpecularLightingElement::~SVGFESpecularLightingElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFESpecularLightingElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +SVGAnimatedNumber SVGFESpecularLightingElement::surfaceScale() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->surfaceScale()); +} + +SVGAnimatedNumber SVGFESpecularLightingElement::specularConstant() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->specularConstant()); +} + +SVGAnimatedNumber SVGFESpecularLightingElement::specularExponent() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->specularExponent()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFESpecularLightingElement.h b/ksvg/dom/SVGFESpecularLightingElement.h new file mode 100644 index 00000000..3566006c --- /dev/null +++ b/ksvg/dom/SVGFESpecularLightingElement.h @@ -0,0 +1,59 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFESpecularLightingElement_H +#define SVGFESpecularLightingElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGAnimatedNumber; +class SVGFESpecularLightingElementImpl; +class SVGFESpecularLightingElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFESpecularLightingElement(); + SVGFESpecularLightingElement(const SVGFESpecularLightingElement &other); + SVGFESpecularLightingElement &operator=(const SVGFESpecularLightingElement &other); + SVGFESpecularLightingElement(SVGFESpecularLightingElementImpl *other); + virtual ~SVGFESpecularLightingElement(); + + SVGAnimatedString in1() const; + SVGAnimatedNumber surfaceScale() const; + SVGAnimatedNumber specularConstant() const; + SVGAnimatedNumber specularExponent() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFESpecularLightingElementImpl *handle() const { return impl; } + +private: + SVGFESpecularLightingElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFESpotLightElement.cc b/ksvg/dom/SVGFESpotLightElement.cc new file mode 100644 index 00000000..57dd498f --- /dev/null +++ b/ksvg/dom/SVGFESpotLightElement.cc @@ -0,0 +1,116 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFESpotLightElement.h" +#include "SVGFESpotLightElementImpl.h" +#include "SVGAnimatedNumber.h" + +using namespace KSVG; + +SVGFESpotLightElement::SVGFESpotLightElement() : SVGElement() +{ + impl = 0; +} + +SVGFESpotLightElement::SVGFESpotLightElement(const SVGFESpotLightElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFESpotLightElement &SVGFESpotLightElement::operator =(const SVGFESpotLightElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFESpotLightElement::SVGFESpotLightElement(SVGFESpotLightElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFESpotLightElement::~SVGFESpotLightElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedNumber SVGFESpotLightElement::x() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->x()); +} + +SVGAnimatedNumber SVGFESpotLightElement::y() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->y()); +} + +SVGAnimatedNumber SVGFESpotLightElement::z() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->z()); +} + +SVGAnimatedNumber SVGFESpotLightElement::pointsAtX() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->pointsAtX()); +} + +SVGAnimatedNumber SVGFESpotLightElement::pointsAtY() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->pointsAtY()); +} + +SVGAnimatedNumber SVGFESpotLightElement::pointsAtZ() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->pointsAtZ()); +} + +SVGAnimatedNumber SVGFESpotLightElement::specularExponent() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->specularExponent()); +} + +SVGAnimatedNumber SVGFESpotLightElement::limitingConeAngle() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->limitingConeAngle()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFESpotLightElement.h b/ksvg/dom/SVGFESpotLightElement.h new file mode 100644 index 00000000..735a6428 --- /dev/null +++ b/ksvg/dom/SVGFESpotLightElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFESpotLightElement_H +#define SVGFESpotLightElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGAnimatedNumber; +class SVGFESpotLightElementImpl; +class SVGFESpotLightElement : public SVGElement +{ +public: + SVGFESpotLightElement(); + SVGFESpotLightElement(const SVGFESpotLightElement &other); + SVGFESpotLightElement &operator=(const SVGFESpotLightElement &other); + SVGFESpotLightElement(SVGFESpotLightElementImpl *other); + virtual ~SVGFESpotLightElement(); + + SVGAnimatedNumber x() const; + SVGAnimatedNumber y() const; + SVGAnimatedNumber z() const; + SVGAnimatedNumber pointsAtX() const; + SVGAnimatedNumber pointsAtY() const; + SVGAnimatedNumber pointsAtZ() const; + SVGAnimatedNumber specularExponent() const; + SVGAnimatedNumber limitingConeAngle() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFESpotLightElementImpl *handle() const { return impl; } + +private: + SVGFESpotLightElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFETileElement.cc b/ksvg/dom/SVGFETileElement.cc new file mode 100644 index 00000000..01c7ffed --- /dev/null +++ b/ksvg/dom/SVGFETileElement.cc @@ -0,0 +1,75 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFETileElement.h" +#include "SVGFETileElementImpl.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGFETileElement::SVGFETileElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFETileElement::SVGFETileElement(const SVGFETileElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFETileElement &SVGFETileElement::operator =(const SVGFETileElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFETileElement::SVGFETileElement(SVGFETileElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFETileElement::~SVGFETileElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedString SVGFETileElement::in1() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->in1()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFETileElement.h b/ksvg/dom/SVGFETileElement.h new file mode 100644 index 00000000..cbf548b1 --- /dev/null +++ b/ksvg/dom/SVGFETileElement.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFETileElement_H +#define SVGFETileElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGFETileElementImpl; +class SVGFETileElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFETileElement(); + SVGFETileElement(const SVGFETileElement &other); + SVGFETileElement &operator=(const SVGFETileElement &other); + SVGFETileElement(SVGFETileElementImpl *other); + virtual ~SVGFETileElement(); + + SVGAnimatedString in1() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFETileElementImpl *handle() const { return impl; } + +private: + SVGFETileElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFETurbulenceElement.cc b/ksvg/dom/SVGFETurbulenceElement.cc new file mode 100644 index 00000000..7d846e6b --- /dev/null +++ b/ksvg/dom/SVGFETurbulenceElement.cc @@ -0,0 +1,107 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFETurbulenceElement.h" +#include "SVGFETurbulenceElementImpl.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedInteger.h" + +using namespace KSVG; + +SVGFETurbulenceElement::SVGFETurbulenceElement() : SVGElement(), SVGFilterPrimitiveStandardAttributes() +{ + impl = 0; +} + +SVGFETurbulenceElement::SVGFETurbulenceElement(const SVGFETurbulenceElement &other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other), impl(0) +{ + (*this) = other; +} + +SVGFETurbulenceElement &SVGFETurbulenceElement::operator =(const SVGFETurbulenceElement &other) +{ + SVGElement::operator=(other); + SVGFilterPrimitiveStandardAttributes::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFETurbulenceElement::SVGFETurbulenceElement(SVGFETurbulenceElementImpl *other) : SVGElement(other), SVGFilterPrimitiveStandardAttributes(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFETurbulenceElement::~SVGFETurbulenceElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedNumber SVGFETurbulenceElement::baseFrequencyX() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->baseFrequencyX()); +} + +SVGAnimatedNumber SVGFETurbulenceElement::baseFrequencyY() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->baseFrequencyY()); +} + +SVGAnimatedInteger SVGFETurbulenceElement::numOctaves() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->numOctaves()); +} + +SVGAnimatedNumber SVGFETurbulenceElement::seed() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->seed()); +} + +SVGAnimatedEnumeration SVGFETurbulenceElement::stitchTiles() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->stitchTiles()); +} + +SVGAnimatedEnumeration SVGFETurbulenceElement::type() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->type()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFETurbulenceElement.h b/ksvg/dom/SVGFETurbulenceElement.h new file mode 100644 index 00000000..39b6050d --- /dev/null +++ b/ksvg/dom/SVGFETurbulenceElement.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFETurbulenceElement_H +#define SVGFETurbulenceElement_H + +#include "SVGElement.h" +#include "SVGFilterPrimitiveStandardAttributes.h" + +namespace KSVG +{ +enum +{ + SVG_TURBULENCE_TYPE_UNKNOWN = 0, + SVG_TURBULENCE_TYPE_FRACTALNOISE = 1, + SVG_TURBULENCE_TYPE_TURBULENCE = 2, + SVG_STITCHTYPE_UNKNOWN = 0, + SVG_STITCHTYPE_STITCH = 1, + SVG_STITCHTYPE_NOSTITCH = 2 +}; + +class SVGAnimatedEnumeration; +class SVGAnimatedNumber; +class SVGAnimatedInteger; +class SVGFETurbulenceElementImpl; +class SVGFETurbulenceElement : public SVGElement, + public SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFETurbulenceElement(); + SVGFETurbulenceElement(const SVGFETurbulenceElement &other); + SVGFETurbulenceElement &operator=(const SVGFETurbulenceElement &other); + SVGFETurbulenceElement(SVGFETurbulenceElementImpl *other); + virtual ~SVGFETurbulenceElement(); + + SVGAnimatedNumber baseFrequencyX() const; + SVGAnimatedNumber baseFrequencyY() const; + SVGAnimatedInteger numOctaves() const; + SVGAnimatedNumber seed() const; + SVGAnimatedEnumeration stitchTiles() const; + SVGAnimatedEnumeration type() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFETurbulenceElementImpl *handle() const { return impl; } + +private: + SVGFETurbulenceElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFilterElement.cc b/ksvg/dom/SVGFilterElement.cc new file mode 100644 index 00000000..3644a807 --- /dev/null +++ b/ksvg/dom/SVGFilterElement.cc @@ -0,0 +1,128 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFilterElement.h" +#include "SVGFilterElementImpl.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedInteger.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGFilterElement::SVGFilterElement() : SVGElement(), SVGURIReference(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGUnitTypes() +{ + impl = 0; +} + +SVGFilterElement::SVGFilterElement(const SVGFilterElement &other) : SVGElement(other), SVGURIReference(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGUnitTypes(), impl(0) +{ + (*this) = other; +} + +SVGFilterElement &SVGFilterElement::operator =(const SVGFilterElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFilterElement::SVGFilterElement(SVGFilterElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGUnitTypes() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFilterElement::~SVGFilterElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedEnumeration SVGFilterElement::filterUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->filterUnits()); +} + +SVGAnimatedEnumeration SVGFilterElement::primitiveUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->primitiveUnits()); +} + +SVGAnimatedLength SVGFilterElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGFilterElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGFilterElement::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGFilterElement::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +SVGAnimatedInteger SVGFilterElement::filterResX() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->filterResX()); +} + +SVGAnimatedInteger SVGFilterElement::filterResY() const +{ + if(!impl) return SVGAnimatedInteger(0); + return SVGAnimatedInteger(impl->filterResY()); +} + +void SVGFilterElement::setFilterRes(unsigned long filterResX, unsigned long filterResY) +{ + if(impl) + impl->setFilterRes(filterResX, filterResY); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFilterElement.h b/ksvg/dom/SVGFilterElement.h new file mode 100644 index 00000000..82f67e5c --- /dev/null +++ b/ksvg/dom/SVGFilterElement.h @@ -0,0 +1,74 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFilterElement_H +#define SVGFilterElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGUnitTypes.h" + +namespace KSVG +{ + +class SVGAnimatedEnumeration; +class SVGAnimatedLength; +class SVGAnimatedInteger; +class SVGFilterElementImpl; +class SVGFilterElement : public SVGElement, + public SVGURIReference, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGUnitTypes +{ +public: + SVGFilterElement(); + SVGFilterElement(const SVGFilterElement &other); + SVGFilterElement &operator=(const SVGFilterElement &other); + SVGFilterElement(SVGFilterElementImpl *other); + virtual ~SVGFilterElement(); + + SVGAnimatedEnumeration filterUnits() const; + SVGAnimatedEnumeration primitiveUnits() const; + SVGAnimatedLength x() const; + SVGAnimatedLength y() const; + SVGAnimatedLength width() const; + SVGAnimatedLength height() const; + SVGAnimatedInteger filterResX() const; + SVGAnimatedInteger filterResY() const; + + void setFilterRes(unsigned long filterResX, unsigned long filterResY); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFilterElementImpl *handle() const { return impl; } + +private: + SVGFilterElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFilterPrimitiveStandardAttributes.cc b/ksvg/dom/SVGFilterPrimitiveStandardAttributes.cc new file mode 100644 index 00000000..05b2ef2a --- /dev/null +++ b/ksvg/dom/SVGFilterPrimitiveStandardAttributes.cc @@ -0,0 +1,88 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFilterPrimitiveStandardAttributes.h" +#include "SVGFilterPrimitiveStandardAttributesImpl.h" +#include "SVGAnimatedString.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes() +{ + impl = new SVGFilterPrimitiveStandardAttributesImpl(); +} + +SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other) +{ + impl = other.impl; +} + +SVGFilterPrimitiveStandardAttributes &SVGFilterPrimitiveStandardAttributes::operator=(const SVGFilterPrimitiveStandardAttributes &other) +{ + if(impl == other.impl) + return *this; + + delete impl; + impl = other.impl; + + return *this; +} + +SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(SVGFilterPrimitiveStandardAttributesImpl *other) +{ + impl = other; +} + +SVGFilterPrimitiveStandardAttributes::~SVGFilterPrimitiveStandardAttributes() +{ +} + +SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGFilterPrimitiveStandardAttributes::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +SVGAnimatedString SVGFilterPrimitiveStandardAttributes::result() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->result()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFilterPrimitiveStandardAttributes.h b/ksvg/dom/SVGFilterPrimitiveStandardAttributes.h new file mode 100644 index 00000000..9d2c9894 --- /dev/null +++ b/ksvg/dom/SVGFilterPrimitiveStandardAttributes.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFilterPrimitiveStandardAttributes_H +#define SVGFilterPrimitiveStandardAttributes_H + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGAnimatedString; +class SVGFilterPrimitiveStandardAttributesImpl; +class SVGFilterPrimitiveStandardAttributes +{ +public: + SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other); + SVGFilterPrimitiveStandardAttributes &operator=(const SVGFilterPrimitiveStandardAttributes &other); + SVGFilterPrimitiveStandardAttributes(SVGFilterPrimitiveStandardAttributesImpl *other); + virtual ~SVGFilterPrimitiveStandardAttributes(); + + SVGAnimatedLength x() const; + SVGAnimatedLength y() const; + SVGAnimatedLength width() const; + SVGAnimatedLength height() const; + SVGAnimatedString result() const; + +protected: + SVGFilterPrimitiveStandardAttributes(); + +private: + SVGFilterPrimitiveStandardAttributesImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFitToViewBox.cc b/ksvg/dom/SVGFitToViewBox.cc new file mode 100644 index 00000000..e0d576f0 --- /dev/null +++ b/ksvg/dom/SVGFitToViewBox.cc @@ -0,0 +1,72 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFitToViewBox.h" +#include "SVGFitToViewBoxImpl.h" +#include "SVGAnimatedRect.h" +#include "SVGAnimatedPreserveAspectRatio.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGFitToViewBox::SVGFitToViewBox() +{ + impl = 0; +} + +SVGFitToViewBox::SVGFitToViewBox(const SVGFitToViewBox &other) : impl(0) +{ + (*this) = other; +} + +SVGFitToViewBox &SVGFitToViewBox::operator=(const SVGFitToViewBox &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGFitToViewBox::SVGFitToViewBox(SVGFitToViewBoxImpl *other) +{ + impl = other; +} + +SVGFitToViewBox::~SVGFitToViewBox() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +SVGAnimatedRect SVGFitToViewBox::viewBox() const +{ + if(!impl) return SVGAnimatedRect(0); + return SVGAnimatedRect(impl->viewBox()); +} + +SVGAnimatedPreserveAspectRatio SVGFitToViewBox::preserveAspectRatio() const +{ + if(!impl) return SVGAnimatedPreserveAspectRatio(0); + return SVGAnimatedPreserveAspectRatio(impl->preserveAspectRatio()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFitToViewBox.h b/ksvg/dom/SVGFitToViewBox.h new file mode 100644 index 00000000..50778657 --- /dev/null +++ b/ksvg/dom/SVGFitToViewBox.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFitToViewBox_H +#define SVGFitToViewBox_H + +namespace KSVG +{ + +class SVGAnimatedRect; +class SVGAnimatedPreserveAspectRatio; +class SVGFitToViewBoxImpl; +class SVGFitToViewBox +{ +public: + SVGFitToViewBox(const SVGFitToViewBox &other); + SVGFitToViewBox &operator=(const SVGFitToViewBox &other); + SVGFitToViewBox(SVGFitToViewBoxImpl *other); + ~SVGFitToViewBox(); + + SVGAnimatedRect viewBox() const; + SVGAnimatedPreserveAspectRatio preserveAspectRatio() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFitToViewBoxImpl *handle() const { return impl; } + +protected: + SVGFitToViewBox(); + +private: + SVGFitToViewBoxImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontElement.cc b/ksvg/dom/SVGFontElement.cc new file mode 100644 index 00000000..5fae52ee --- /dev/null +++ b/ksvg/dom/SVGFontElement.cc @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFontElement.h" +#include "SVGFontElementImpl.h" + +using namespace KSVG; + +SVGFontElement::SVGFontElement() : SVGElement(), SVGExternalResourcesRequired(), SVGStylable() +{ + impl = 0; +} + +SVGFontElement::SVGFontElement(const SVGFontElement &other) : SVGElement(other), SVGExternalResourcesRequired(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGFontElement &SVGFontElement::operator =(const SVGFontElement &other) +{ + SVGElement::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFontElement::SVGFontElement(SVGFontElementImpl *other) : SVGElement(other), SVGExternalResourcesRequired(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFontElement::~SVGFontElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontElement.h b/ksvg/dom/SVGFontElement.h new file mode 100644 index 00000000..9ecc36bf --- /dev/null +++ b/ksvg/dom/SVGFontElement.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFontElement_H +#define SVGFontElement_H + +#include "SVGElement.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGFontElementImpl; +class SVGFontElement : public SVGElement, + public SVGExternalResourcesRequired, + public SVGStylable +{ +public: + SVGFontElement(); + SVGFontElement(const SVGFontElement &other); + SVGFontElement &operator=(const SVGFontElement &other); + SVGFontElement(SVGFontElementImpl *other); + virtual ~SVGFontElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFontElementImpl *handle() const { return impl; } + +private: + SVGFontElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceElement.cc b/ksvg/dom/SVGFontFaceElement.cc new file mode 100644 index 00000000..6d542a04 --- /dev/null +++ b/ksvg/dom/SVGFontFaceElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFontFaceElement.h" +#include "SVGFontFaceElementImpl.h" + +using namespace KSVG; + +SVGFontFaceElement::SVGFontFaceElement() : SVGElement() +{ + impl = 0; +} + +SVGFontFaceElement::SVGFontFaceElement(const SVGFontFaceElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFontFaceElement &SVGFontFaceElement::operator =(const SVGFontFaceElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFontFaceElement::SVGFontFaceElement(SVGFontFaceElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFontFaceElement::~SVGFontFaceElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceElement.h b/ksvg/dom/SVGFontFaceElement.h new file mode 100644 index 00000000..f16d0eb2 --- /dev/null +++ b/ksvg/dom/SVGFontFaceElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFontFaceElement_H +#define SVGFontFaceElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGFontFaceElementImpl; +class SVGFontFaceElement : public SVGElement +{ +public: + SVGFontFaceElement(); + SVGFontFaceElement(const SVGFontFaceElement &other); + SVGFontFaceElement &operator=(const SVGFontFaceElement &other); + SVGFontFaceElement(SVGFontFaceElementImpl *other); + virtual ~SVGFontFaceElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFontFaceElementImpl *handle() const { return impl; } + +private: + SVGFontFaceElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceFormatElement.cc b/ksvg/dom/SVGFontFaceFormatElement.cc new file mode 100644 index 00000000..a64c5fa8 --- /dev/null +++ b/ksvg/dom/SVGFontFaceFormatElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFontFaceFormatElement.h" +#include "SVGFontFaceFormatElementImpl.h" + +using namespace KSVG; + +SVGFontFaceFormatElement::SVGFontFaceFormatElement() : SVGElement() +{ + impl = 0; +} + +SVGFontFaceFormatElement::SVGFontFaceFormatElement(const SVGFontFaceFormatElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFontFaceFormatElement &SVGFontFaceFormatElement::operator =(const SVGFontFaceFormatElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFontFaceFormatElement::SVGFontFaceFormatElement(SVGFontFaceFormatElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFontFaceFormatElement::~SVGFontFaceFormatElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceFormatElement.h b/ksvg/dom/SVGFontFaceFormatElement.h new file mode 100644 index 00000000..577cae35 --- /dev/null +++ b/ksvg/dom/SVGFontFaceFormatElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFontFaceFormatElement_H +#define SVGFontFaceFormatElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGFontFaceFormatElementImpl; +class SVGFontFaceFormatElement : public SVGElement +{ +public: + SVGFontFaceFormatElement(); + SVGFontFaceFormatElement(const SVGFontFaceFormatElement &other); + SVGFontFaceFormatElement &operator=(const SVGFontFaceFormatElement &other); + SVGFontFaceFormatElement(SVGFontFaceFormatElementImpl *other); + virtual ~SVGFontFaceFormatElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFontFaceFormatElementImpl *handle() const { return impl; } + +private: + SVGFontFaceFormatElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceNameElement.cc b/ksvg/dom/SVGFontFaceNameElement.cc new file mode 100644 index 00000000..e5160869 --- /dev/null +++ b/ksvg/dom/SVGFontFaceNameElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFontFaceNameElement.h" +#include "SVGFontFaceNameElementImpl.h" + +using namespace KSVG; + +SVGFontFaceNameElement::SVGFontFaceNameElement() : SVGElement() +{ + impl = 0; +} + +SVGFontFaceNameElement::SVGFontFaceNameElement(const SVGFontFaceNameElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFontFaceNameElement &SVGFontFaceNameElement::operator =(const SVGFontFaceNameElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFontFaceNameElement::SVGFontFaceNameElement(SVGFontFaceNameElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFontFaceNameElement::~SVGFontFaceNameElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceNameElement.h b/ksvg/dom/SVGFontFaceNameElement.h new file mode 100644 index 00000000..b246e61d --- /dev/null +++ b/ksvg/dom/SVGFontFaceNameElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFontFaceNameElement_H +#define SVGFontFaceNameElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGFontFaceNameElementImpl; +class SVGFontFaceNameElement : public SVGElement +{ +public: + SVGFontFaceNameElement(); + SVGFontFaceNameElement(const SVGFontFaceNameElement &other); + SVGFontFaceNameElement &operator=(const SVGFontFaceNameElement &other); + SVGFontFaceNameElement(SVGFontFaceNameElementImpl *other); + virtual ~SVGFontFaceNameElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFontFaceNameElementImpl *handle() const { return impl; } + +private: + SVGFontFaceNameElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceSrcElement.cc b/ksvg/dom/SVGFontFaceSrcElement.cc new file mode 100644 index 00000000..8ecbbffa --- /dev/null +++ b/ksvg/dom/SVGFontFaceSrcElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFontFaceSrcElement.h" +#include "SVGFontFaceSrcElementImpl.h" + +using namespace KSVG; + +SVGFontFaceSrcElement::SVGFontFaceSrcElement() : SVGElement() +{ + impl = 0; +} + +SVGFontFaceSrcElement::SVGFontFaceSrcElement(const SVGFontFaceSrcElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFontFaceSrcElement &SVGFontFaceSrcElement::operator =(const SVGFontFaceSrcElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFontFaceSrcElement::SVGFontFaceSrcElement(SVGFontFaceSrcElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFontFaceSrcElement::~SVGFontFaceSrcElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceSrcElement.h b/ksvg/dom/SVGFontFaceSrcElement.h new file mode 100644 index 00000000..585971e0 --- /dev/null +++ b/ksvg/dom/SVGFontFaceSrcElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFontFaceSrcElement_H +#define SVGFontFaceSrcElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGFontFaceSrcElementImpl; +class SVGFontFaceSrcElement : public SVGElement +{ +public: + SVGFontFaceSrcElement(); + SVGFontFaceSrcElement(const SVGFontFaceSrcElement &other); + SVGFontFaceSrcElement &operator=(const SVGFontFaceSrcElement &other); + SVGFontFaceSrcElement(SVGFontFaceSrcElementImpl *other); + virtual ~SVGFontFaceSrcElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFontFaceSrcElementImpl *handle() const { return impl; } + +private: + SVGFontFaceSrcElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceUriElement.cc b/ksvg/dom/SVGFontFaceUriElement.cc new file mode 100644 index 00000000..aafb392b --- /dev/null +++ b/ksvg/dom/SVGFontFaceUriElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGFontFaceUriElement.h" +#include "SVGFontFaceUriElementImpl.h" + +using namespace KSVG; + +SVGFontFaceUriElement::SVGFontFaceUriElement() : SVGElement() +{ + impl = 0; +} + +SVGFontFaceUriElement::SVGFontFaceUriElement(const SVGFontFaceUriElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGFontFaceUriElement &SVGFontFaceUriElement::operator =(const SVGFontFaceUriElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGFontFaceUriElement::SVGFontFaceUriElement(SVGFontFaceUriElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGFontFaceUriElement::~SVGFontFaceUriElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGFontFaceUriElement.h b/ksvg/dom/SVGFontFaceUriElement.h new file mode 100644 index 00000000..c2dd6514 --- /dev/null +++ b/ksvg/dom/SVGFontFaceUriElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGFontFaceUriElement_H +#define SVGFontFaceUriElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGFontFaceUriElementImpl; +class SVGFontFaceUriElement : public SVGElement +{ +public: + SVGFontFaceUriElement(); + SVGFontFaceUriElement(const SVGFontFaceUriElement &other); + SVGFontFaceUriElement &operator=(const SVGFontFaceUriElement &other); + SVGFontFaceUriElement(SVGFontFaceUriElementImpl *other); + virtual ~SVGFontFaceUriElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGFontFaceUriElementImpl *handle() const { return impl; } + +private: + SVGFontFaceUriElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGForeignObjectElement.cc b/ksvg/dom/SVGForeignObjectElement.cc new file mode 100644 index 00000000..e12a194a --- /dev/null +++ b/ksvg/dom/SVGForeignObjectElement.cc @@ -0,0 +1,97 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGForeignObjectElement.h" +#include "SVGForeignObjectElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGForeignObjectElement::SVGForeignObjectElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGForeignObjectElement::SVGForeignObjectElement(const SVGForeignObjectElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + (*this) = other; +} + +SVGForeignObjectElement &SVGForeignObjectElement::operator =(const SVGForeignObjectElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGForeignObjectElement::SVGForeignObjectElement(SVGForeignObjectElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGForeignObjectElement::~SVGForeignObjectElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGForeignObjectElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGForeignObjectElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGForeignObjectElement::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGForeignObjectElement::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGForeignObjectElement.h b/ksvg/dom/SVGForeignObjectElement.h new file mode 100644 index 00000000..0d35019f --- /dev/null +++ b/ksvg/dom/SVGForeignObjectElement.h @@ -0,0 +1,66 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGForeignObjectElement_H +#define SVGForeignObjectElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGForeignObjectElementImpl; +class SVGForeignObjectElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGForeignObjectElement(); + SVGForeignObjectElement(const SVGForeignObjectElement &other); + SVGForeignObjectElement &operator=(const SVGForeignObjectElement &other); + SVGForeignObjectElement(SVGForeignObjectElementImpl *other); + virtual ~SVGForeignObjectElement(); + + SVGAnimatedLength x() const; + SVGAnimatedLength y() const; + SVGAnimatedLength width() const; + SVGAnimatedLength height() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGForeignObjectElementImpl *handle() const { return impl; } + +private: + SVGForeignObjectElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGElement.cc b/ksvg/dom/SVGGElement.cc new file mode 100644 index 00000000..272c7608 --- /dev/null +++ b/ksvg/dom/SVGGElement.cc @@ -0,0 +1,72 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGGElement.h" +#include "SVGGElementImpl.h" + +using namespace KSVG; + +SVGGElement::SVGGElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGGElement::SVGGElement(const SVGGElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGGElement &SVGGElement::operator =(const SVGGElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGGElement::SVGGElement(SVGGElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGGElement::~SVGGElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGElement.h b/ksvg/dom/SVGGElement.h new file mode 100644 index 00000000..724bbadb --- /dev/null +++ b/ksvg/dom/SVGGElement.h @@ -0,0 +1,83 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGGElement_H +#define SVGGElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGGElementImpl; + +/** + * The 'g' element is a container element for grouping together related graphics elements. + * + * Grouping constructs, when used in conjunction with the @ref desc and @ref title elements, provide + * information about document structure and semantics. Documents that are rich in structure may be + * rendered graphically, as speech, or as braille, and thus promote accessibility. + * + * A group of elements, as well as individual objects, can be given a name using the <code> id </code> attribute. + * Named groups are needed for several purposes such as animation and re-usable objects. + * + * A 'g' element can contain other 'g' elements nested within it, to an arbitrary depth. + */ +class SVGGElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGGElement(); + SVGGElement(const SVGGElement &other); + SVGGElement &operator=(const SVGGElement &other); + SVGGElement(SVGGElementImpl *other); + ~SVGGElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGGElementImpl *handle() const { return impl; } + +private: + SVGGElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGlyphElement.cc b/ksvg/dom/SVGGlyphElement.cc new file mode 100644 index 00000000..c852d44d --- /dev/null +++ b/ksvg/dom/SVGGlyphElement.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGGlyphElement.h" +#include "SVGGlyphElementImpl.h" + +using namespace KSVG; + +SVGGlyphElement::SVGGlyphElement() : SVGElement(), SVGStylable() +{ + impl = 0; +} + +SVGGlyphElement::SVGGlyphElement(const SVGGlyphElement &other) : SVGElement(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGGlyphElement &SVGGlyphElement::operator =(const SVGGlyphElement &other) +{ + SVGElement::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGGlyphElement::SVGGlyphElement(SVGGlyphElementImpl *other) : SVGElement(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGGlyphElement::~SVGGlyphElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGlyphElement.h b/ksvg/dom/SVGGlyphElement.h new file mode 100644 index 00000000..c3d2237b --- /dev/null +++ b/ksvg/dom/SVGGlyphElement.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGGlyphElement_H +#define SVGGlyphElement_H + +#include "SVGElement.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGGlyphElementImpl; +class SVGGlyphElement : public SVGElement, + public SVGStylable +{ +public: + SVGGlyphElement(); + SVGGlyphElement(const SVGGlyphElement &other); + SVGGlyphElement &operator=(const SVGGlyphElement &other); + SVGGlyphElement(SVGGlyphElementImpl *other); + virtual ~SVGGlyphElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGGlyphElementImpl *handle() const { return impl; } + +private: + SVGGlyphElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGlyphRefElement.cc b/ksvg/dom/SVGGlyphRefElement.cc new file mode 100644 index 00000000..85c4c39f --- /dev/null +++ b/ksvg/dom/SVGGlyphRefElement.cc @@ -0,0 +1,81 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGGlyphRefElement.h" +#include "SVGGlyphRefElementImpl.h" + +using namespace KSVG; + +SVGGlyphRefElement::SVGGlyphRefElement() : SVGElement(), SVGURIReference(), SVGStylable() +{ + impl = 0; +} + +SVGGlyphRefElement::SVGGlyphRefElement(const SVGGlyphRefElement &other) : SVGElement(other), SVGURIReference(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGGlyphRefElement &SVGGlyphRefElement::operator =(const SVGGlyphRefElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGGlyphRefElement::SVGGlyphRefElement(SVGGlyphRefElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGGlyphRefElement::~SVGGlyphRefElement() +{ + if(impl) + impl->deref(); +} + +DOM::DOMString SVGGlyphRefElement::format() +{ + if(!impl) return DOM::DOMString(); + return impl->format(); +} + +DOM::DOMString SVGGlyphRefElement::glyphRef() +{ + if(!impl) return DOM::DOMString(); + return impl->glyphRef(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGlyphRefElement.h b/ksvg/dom/SVGGlyphRefElement.h new file mode 100644 index 00000000..29e91e57 --- /dev/null +++ b/ksvg/dom/SVGGlyphRefElement.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGGlyphRefElement_H +#define SVGGlyphRefElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGGlyphRefElementImpl; +class SVGGlyphRefElement : public SVGElement, + public SVGURIReference, + public SVGStylable +{ +public: + SVGGlyphRefElement(); + SVGGlyphRefElement(const SVGGlyphRefElement &other); + SVGGlyphRefElement &operator=(const SVGGlyphRefElement &other); + SVGGlyphRefElement(SVGGlyphRefElementImpl *other); + virtual ~SVGGlyphRefElement(); + + DOM::DOMString glyphRef(); + DOM::DOMString format(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGGlyphRefElementImpl *handle() const { return impl; } + +private: + SVGGlyphRefElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGradientElement.cc b/ksvg/dom/SVGGradientElement.cc new file mode 100644 index 00000000..2afb305e --- /dev/null +++ b/ksvg/dom/SVGGradientElement.cc @@ -0,0 +1,80 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGGradientElement.h" +#include "SVGGradientElementImpl.h" +#include "SVGAnimatedTransformList.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGGradientElement::SVGGradientElement() : SVGElement(), SVGURIReference(), SVGExternalResourcesRequired(), SVGStylable(), SVGUnitTypes() +{ + impl = 0; +} + +SVGGradientElement::SVGGradientElement(const SVGGradientElement &other) : SVGElement(other), SVGURIReference(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGUnitTypes(other), impl(0) +{ + (*this) = other; +} + +SVGGradientElement &SVGGradientElement::operator =(const SVGGradientElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGGradientElement::SVGGradientElement(SVGGradientElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGUnitTypes() +{ + impl = other; +} + +SVGGradientElement::~SVGGradientElement() +{ +} + +SVGAnimatedEnumeration SVGGradientElement::gradientUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->gradientUnits()); +} + +SVGAnimatedTransformList SVGGradientElement::gradientTransform() const +{ + if(!impl) return SVGAnimatedTransformList(0); + return SVGAnimatedTransformList(impl->gradientTransform()); +} + +SVGAnimatedEnumeration SVGGradientElement::spreadMethod() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->spreadMethod()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGGradientElement.h b/ksvg/dom/SVGGradientElement.h new file mode 100644 index 00000000..cff47ad8 --- /dev/null +++ b/ksvg/dom/SVGGradientElement.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGGradientElement_H +#define SVGGradientElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGUnitTypes.h" + +namespace KSVG +{ + +enum +{ + SVG_SPREADMETHOD_UNKNOWN = 0, + SVG_SPREADMETHOD_PAD = 1, + SVG_SPREADMETHOD_REFLECT = 2, + SVG_SPREADMETHOD_REPEAT = 3 +}; + +class SVGAnimatedEnumeration; +class SVGAnimatedTransformList; +class SVGGradientElementImpl; +class SVGGradientElement : public SVGElement, + public SVGURIReference, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGUnitTypes +{ +public: + SVGGradientElement(const SVGGradientElement &other); + SVGGradientElement &operator=(const SVGGradientElement &other); + SVGGradientElement(SVGGradientElementImpl *other); + virtual ~SVGGradientElement(); + + SVGAnimatedEnumeration gradientUnits() const; + SVGAnimatedTransformList gradientTransform() const; + SVGAnimatedEnumeration spreadMethod() const; + +protected: + SVGGradientElement(); + +private: + SVGGradientElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGHKernElement.cc b/ksvg/dom/SVGHKernElement.cc new file mode 100644 index 00000000..db46aa63 --- /dev/null +++ b/ksvg/dom/SVGHKernElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGHKernElement.h" +#include "SVGHKernElementImpl.h" + +using namespace KSVG; + +SVGHKernElement::SVGHKernElement() : SVGElement() +{ + impl = 0; +} + +SVGHKernElement::SVGHKernElement(const SVGHKernElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGHKernElement &SVGHKernElement::operator =(const SVGHKernElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGHKernElement::SVGHKernElement(SVGHKernElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGHKernElement::~SVGHKernElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGHKernElement.h b/ksvg/dom/SVGHKernElement.h new file mode 100644 index 00000000..42890727 --- /dev/null +++ b/ksvg/dom/SVGHKernElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGHKernElement_H +#define SVGHKernElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGHKernElementImpl; +class SVGHKernElement : public SVGElement +{ +public: + SVGHKernElement(); + SVGHKernElement(const SVGHKernElement &other); + SVGHKernElement &operator=(const SVGHKernElement &other); + SVGHKernElement(SVGHKernElementImpl *other); + virtual ~SVGHKernElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGHKernElementImpl *handle() const { return impl; } + +private: + SVGHKernElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGICCColor.cc b/ksvg/dom/SVGICCColor.cc new file mode 100644 index 00000000..6b21f3fb --- /dev/null +++ b/ksvg/dom/SVGICCColor.cc @@ -0,0 +1,85 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGICCColor.h" +#include "SVGICCColorImpl.h" +#include "SVGNumberList.h" + +using namespace KSVG; + +SVGICCColor::SVGICCColor() +{ + impl = new SVGICCColorImpl(); + impl->ref(); +} + +SVGICCColor::SVGICCColor(const SVGICCColor &other) : impl(0) +{ + (*this) = other; +} + +SVGICCColor &SVGICCColor::operator =(const SVGICCColor &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGICCColor::SVGICCColor(SVGICCColorImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGICCColor::~SVGICCColor() +{ + if(impl) + impl->deref(); +} + +void SVGICCColor::setColorProfile(const DOM::DOMString &colorProfile) +{ + if(impl) + impl->setColorProfile(colorProfile); +} + +DOM::DOMString SVGICCColor::colorProfile() const +{ + if(!impl) return DOM::DOMString(); + return DOM::DOMString(impl->colorProfile()); +} + +SVGNumberList SVGICCColor::colors() const +{ + if(!impl) return SVGNumberList(0); + return SVGNumberList(impl->colors()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGICCColor.h b/ksvg/dom/SVGICCColor.h new file mode 100644 index 00000000..628feda9 --- /dev/null +++ b/ksvg/dom/SVGICCColor.h @@ -0,0 +1,56 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGICCColor_H +#define SVGICCColor_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGNumberList; +class SVGICCColorImpl; +class SVGICCColor +{ +public: + SVGICCColor(); + SVGICCColor(const SVGICCColor &other); + SVGICCColor &operator=(const SVGICCColor &other); + SVGICCColor(SVGICCColorImpl *other); + ~SVGICCColor(); + + void setColorProfile(const DOM::DOMString &colorProfile); + DOM::DOMString colorProfile() const; + + SVGNumberList colors() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGICCColorImpl *handle() const { return impl; } + +private: + SVGICCColorImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGImageElement.cc b/ksvg/dom/SVGImageElement.cc new file mode 100644 index 00000000..9d9374fa --- /dev/null +++ b/ksvg/dom/SVGImageElement.cc @@ -0,0 +1,106 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGImageElement.h" +#include "SVGImageElementImpl.h" +#include "SVGAnimatedLength.h" +#include "SVGAnimatedPreserveAspectRatio.h" + +using namespace KSVG; + +SVGImageElement::SVGImageElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGURIReference() +{ + impl = 0; +} + +SVGImageElement::SVGImageElement(const SVGImageElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGImageElement &SVGImageElement::operator=(const SVGImageElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGImageElement::SVGImageElement(SVGImageElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGImageElement::~SVGImageElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGImageElement::x() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGImageElement::y() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGImageElement::width() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGImageElement::height() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +SVGAnimatedPreserveAspectRatio SVGImageElement::preserveAspectRatio() const +{ + if(!impl) return SVGAnimatedPreserveAspectRatio(0); + return SVGAnimatedPreserveAspectRatio(impl->preserveAspectRatio()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGImageElement.h b/ksvg/dom/SVGImageElement.h new file mode 100644 index 00000000..c6487fed --- /dev/null +++ b/ksvg/dom/SVGImageElement.h @@ -0,0 +1,70 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGImageElement_H +#define SVGImageElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGURIReference.h" + +namespace KSVG +{ + +class SVGAnimatedPreserveAspectRatio; +class SVGAnimatedLength; +class SVGImageElementImpl; +class SVGImageElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGURIReference +{ +public: + SVGImageElement(); + SVGImageElement(const SVGImageElement &); + SVGImageElement &operator=(const SVGImageElement &other); + SVGImageElement(SVGImageElementImpl *); + ~SVGImageElement(); + + SVGAnimatedLength x(); + SVGAnimatedLength y(); + SVGAnimatedLength width(); + SVGAnimatedLength height(); + SVGAnimatedPreserveAspectRatio preserveAspectRatio() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGImageElementImpl *handle() const { return impl; } + +private: + SVGImageElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLangSpace.cc b/ksvg/dom/SVGLangSpace.cc new file mode 100644 index 00000000..2373e648 --- /dev/null +++ b/ksvg/dom/SVGLangSpace.cc @@ -0,0 +1,82 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGLangSpace.h" +#include "SVGLangSpaceImpl.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGLangSpace::SVGLangSpace() +{ + impl = 0; +} + +SVGLangSpace::SVGLangSpace(const SVGLangSpace &other) : impl(0) +{ + (*this) = other; +} + +SVGLangSpace &SVGLangSpace::operator=(const SVGLangSpace &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGLangSpace::SVGLangSpace(SVGLangSpaceImpl *other) +{ + impl = other; +} + +SVGLangSpace::~SVGLangSpace() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +void SVGLangSpace::setXmllang(const DOM::DOMString &xmllang) +{ + if(impl) + impl->setXmllang(xmllang); +} + +DOM::DOMString SVGLangSpace::xmllang() const +{ + if(!impl) return DOM::DOMString(); + return impl->xmllang(); +} + +void SVGLangSpace::setXmlspace(const DOM::DOMString &xmlspace) +{ + if(impl) + impl->setXmlspace(xmlspace); +} + +DOM::DOMString SVGLangSpace::xmlspace() const +{ + if(!impl) return DOM::DOMString(); + return impl->xmlspace(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLangSpace.h b/ksvg/dom/SVGLangSpace.h new file mode 100644 index 00000000..391e625d --- /dev/null +++ b/ksvg/dom/SVGLangSpace.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGLangSpace_H +#define SVGLangSpace_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGLangSpaceImpl; +class SVGLangSpace +{ +public: + SVGLangSpace(const SVGLangSpace &other); + SVGLangSpace &operator=(const SVGLangSpace &other); + SVGLangSpace(SVGLangSpaceImpl *other); + ~SVGLangSpace(); + + void setXmllang(const DOM::DOMString &xmllang); + DOM::DOMString xmllang() const; + + void setXmlspace(const DOM::DOMString &xmlspace); + DOM::DOMString xmlspace() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGLangSpaceImpl *handle() const { return impl; } + +protected: + SVGLangSpace(); + +private: + SVGLangSpaceImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLength.cc b/ksvg/dom/SVGLength.cc new file mode 100644 index 00000000..bb2db73f --- /dev/null +++ b/ksvg/dom/SVGLength.cc @@ -0,0 +1,135 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <dom/dom_string.h> +#include "SVGLength.h" +#include "SVGShapeImpl.h" +#include "SVGLengthImpl.h" + +using namespace KSVG; + +SVGLength::SVGLength() +{ + impl = new SVGLengthImpl(); + impl->ref(); +} + +SVGLength::SVGLength(const SVGLength &other) : impl(0) +{ + (*this) = other; +} + +SVGLength &SVGLength::operator =(const SVGLength &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGLength::SVGLength(SVGLengthImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGLength::~SVGLength() +{ + if(impl) + impl->deref(); +} + +unsigned short SVGLength::unitType() const +{ + if(!impl) return SVG_LENGTHTYPE_UNKNOWN; + return impl->unitType(); +} + +void SVGLength::setValue(float value) +{ + if(impl) + { + impl->setValue(value); + + // Automatic updating of the shape if any value is changed, imagine: + // SVGCircleElement c; [...] c.r().baseVal().setValue(150); + if(impl->context() && dynamic_cast<SVGShapeImpl *>(impl->context())) + dynamic_cast<SVGShapeImpl *>(impl->context())->update(UPDATE_TRANSFORM, 0, 0); + } +} + +float SVGLength::value() const +{ + if(!impl) return -1; + return impl->value(); +} + +void SVGLength::setValueInSpecifiedUnits(float valueInSpecifiedUnits) +{ + if(impl) + impl->setValueInSpecifiedUnits(valueInSpecifiedUnits); +} + +float SVGLength::valueInSpecifiedUnits() const +{ + if(!impl) return -1; + return impl->valueInSpecifiedUnits(); +} + +void SVGLength::setValueAsString(const DOM::DOMString &valueAsString) +{ + if(impl) + impl->setValueAsString(valueAsString); +} + +DOM::DOMString SVGLength::valueAsString() const +{ + if(!impl) return DOM::DOMString(); + return impl->valueAsString(); +} + +void SVGLength::newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits) +{ + if(impl) + impl->newValueSpecifiedUnits(unitType, valueInSpecifiedUnits); +} + +void SVGLength::convertToSpecifiedUnits(unsigned short unitType) +{ + if(impl) + impl->convertToSpecifiedUnits(unitType); +} + +SVGLength::operator float() +{ + if(!impl) return -1; + return impl->valueInSpecifiedUnits(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLength.h b/ksvg/dom/SVGLength.h new file mode 100644 index 00000000..1f0bbdae --- /dev/null +++ b/ksvg/dom/SVGLength.h @@ -0,0 +1,81 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGLength_H +#define SVGLength_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +enum +{ + SVG_LENGTHTYPE_UNKNOWN, + SVG_LENGTHTYPE_NUMBER, + SVG_LENGTHTYPE_PERCENTAGE, + SVG_LENGTHTYPE_EMS, + SVG_LENGTHTYPE_EXS, + SVG_LENGTHTYPE_PX, + SVG_LENGTHTYPE_CM, + SVG_LENGTHTYPE_MM, + SVG_LENGTHTYPE_IN, + SVG_LENGTHTYPE_PT, + SVG_LENGTHTYPE_PC +}; + +class SVGLengthImpl; +class SVGLength +{ +public: + SVGLength(); + SVGLength(const SVGLength &); + SVGLength(SVGLengthImpl *); + SVGLength &operator=(const SVGLength &); + ~SVGLength(); + + unsigned short unitType() const; + + void setValue(float value); + float value() const; + + void setValueInSpecifiedUnits(float valueInSpecifiedUnits); + float valueInSpecifiedUnits() const; + + void setValueAsString(const DOM::DOMString &); + DOM::DOMString valueAsString() const; + + void newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits); + void convertToSpecifiedUnits(unsigned short unitType); + + operator float(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGLengthImpl *handle() const { return impl; } + +private: + SVGLengthImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLengthList.cc b/ksvg/dom/SVGLengthList.cc new file mode 100644 index 00000000..c308019b --- /dev/null +++ b/ksvg/dom/SVGLengthList.cc @@ -0,0 +1,115 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGLengthList.h" +#include "SVGLengthListImpl.h" +#include "SVGLength.h" + +using namespace KSVG; + +SVGLengthList::SVGLengthList() +{ + impl = new SVGLengthListImpl(); + impl->ref(); +} + +SVGLengthList::SVGLengthList(const SVGLengthList &other) : impl(0) +{ + (*this) = other; +} + +SVGLengthList &SVGLengthList::operator=(const SVGLengthList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGLengthList::SVGLengthList(SVGLengthListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGLengthList::~SVGLengthList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGLengthList::numberOfItems() const +{ + if(!impl) return 0; + return impl->numberOfItems(); +} + +void SVGLengthList::clear() +{ + if(impl) + impl->clear(); +} + +SVGLength *SVGLengthList::initialize(SVGLength *newItem) +{ + if(!impl) return new SVGLength(0); + return new SVGLength(impl->initialize(newItem->handle())); +} + +SVGLength *SVGLengthList::getItem(unsigned long index) +{ + if(!impl) return new SVGLength(0); + return new SVGLength(impl->getItem(index)); +} + +SVGLength *SVGLengthList::insertItemBefore(SVGLength *newItem, unsigned long index) +{ + if(!impl) return new SVGLength(0); + return new SVGLength(impl->insertItemBefore(newItem->handle(), index)); +} + +SVGLength *SVGLengthList::replaceItem(SVGLength *newItem, unsigned long index) +{ + if(!impl) return new SVGLength(0); + return new SVGLength(impl->replaceItem(newItem->handle(), index)); +} + +SVGLength *SVGLengthList::removeItem(unsigned long index) +{ + if(!impl) return new SVGLength(0); + return new SVGLength(impl->removeItem(index)); +} + +SVGLength *SVGLengthList::appendItem(SVGLength *newItem) +{ + if(!impl) return new SVGLength(0); + return new SVGLength(impl->appendItem(newItem->handle())); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLengthList.h b/ksvg/dom/SVGLengthList.h new file mode 100644 index 00000000..bf4ab633 --- /dev/null +++ b/ksvg/dom/SVGLengthList.h @@ -0,0 +1,59 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGLengthList_H +#define SVGLengthList_H + +namespace KSVG +{ + +class SVGLength; +class SVGLengthListImpl; +class SVGLengthList +{ +public: + SVGLengthList(); + SVGLengthList(const SVGLengthList &); + SVGLengthList &operator=(const SVGLengthList &); + SVGLengthList(SVGLengthListImpl *); + ~SVGLengthList(); + + unsigned long numberOfItems() const; + void clear(); + + SVGLength *initialize(SVGLength *newItem); + SVGLength *getItem(unsigned long index); + SVGLength *insertItemBefore(SVGLength *newItem, unsigned long index); + SVGLength *replaceItem(SVGLength *newItem, unsigned long index); + SVGLength *removeItem(unsigned long index); + SVGLength *appendItem(SVGLength *newItem); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGLengthListImpl *handle() const { return impl; } + +private: + SVGLengthListImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLineElement.cc b/ksvg/dom/SVGLineElement.cc new file mode 100644 index 00000000..583c3fe3 --- /dev/null +++ b/ksvg/dom/SVGLineElement.cc @@ -0,0 +1,98 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGLineElement.h" +#include "SVGLineElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGLineElement::SVGLineElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGLineElement::SVGLineElement(const SVGLineElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGLineElement &SVGLineElement::operator=(const SVGLineElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGLineElement::SVGLineElement(SVGLineElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGLineElement::~SVGLineElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGLineElement::x1() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x1()); +} + +SVGAnimatedLength SVGLineElement::y1() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y1()); +} + +SVGAnimatedLength SVGLineElement::x2() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x2()); +} + +SVGAnimatedLength SVGLineElement::y2() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y2()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLineElement.h b/ksvg/dom/SVGLineElement.h new file mode 100644 index 00000000..b08a78ba --- /dev/null +++ b/ksvg/dom/SVGLineElement.h @@ -0,0 +1,126 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + +#ifndef SVGLineElement_H +#define SVGLineElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGLineElementImpl; + +/** + * The <code>line</code> element defines a line segment that starts at + * one point and ends at another. + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/shapes.html#CircleElement">9.5 The + * 'line' element</a>. + */ +class SVGLineElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGLineElement(); + SVGLineElement(const SVGLineElement &); + SVGLineElement &operator=(const SVGLineElement &other); + SVGLineElement(SVGLineElementImpl *); + ~SVGLineElement(); + + /** + * The x-axis coordinate of the start of the line. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the start of the line. + */ + SVGAnimatedLength x1(); + + /** + * The y-axis coordinate of the start of the line. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the start of the line. + */ + SVGAnimatedLength y1(); + + /** + * The x-axis coordinate of the end of the line. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the end of the line. + */ + SVGAnimatedLength x2(); + + /** + * The y-axis coordinate of the end of the line. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the end of the line. + */ + SVGAnimatedLength y2(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGLineElementImpl *handle() const { return impl; } + +private: + SVGLineElementImpl *impl; +}; + +} + +#endif + +//vim:ts=4:noet diff --git a/ksvg/dom/SVGLinearGradientElement.cc b/ksvg/dom/SVGLinearGradientElement.cc new file mode 100644 index 00000000..b3936dc4 --- /dev/null +++ b/ksvg/dom/SVGLinearGradientElement.cc @@ -0,0 +1,92 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGLinearGradientElement.h" +#include "SVGLinearGradientElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGLinearGradientElement::SVGLinearGradientElement() : SVGGradientElement() +{ + impl = 0; +} + +SVGLinearGradientElement::SVGLinearGradientElement(const SVGLinearGradientElement &other) : SVGGradientElement(other), impl(0) +{ + (*this) = other; +} + +SVGLinearGradientElement &SVGLinearGradientElement::operator =(const SVGLinearGradientElement &other) +{ + SVGGradientElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGLinearGradientElement::SVGLinearGradientElement(SVGLinearGradientElementImpl *other) : SVGGradientElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGLinearGradientElement::~SVGLinearGradientElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGLinearGradientElement::x1() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x1()); +} + +SVGAnimatedLength SVGLinearGradientElement::y1() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y1()); +} + +SVGAnimatedLength SVGLinearGradientElement::x2() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x2()); +} + +SVGAnimatedLength SVGLinearGradientElement::y2() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y2()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLinearGradientElement.h b/ksvg/dom/SVGLinearGradientElement.h new file mode 100644 index 00000000..fe60df89 --- /dev/null +++ b/ksvg/dom/SVGLinearGradientElement.h @@ -0,0 +1,141 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGLinearGradientElement_H +#define SVGLinearGradientElement_H + +#include "SVGGradientElement.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGLinearGradientElementImpl; + +/** + * <code>linearGradient</code> elements are never rendered directly; their + * only usage is as something that can be referenced using the + * <code>fill</code> and <code>stroke</code> properties. + * The <code>display</code> property does not apply to the + * <code>linearGradient</code> element; thus, + * <code>linearGradient</code> elements are not directly rendered even if the + * <code>display</code> property is set to a value other than none, and + * <code>linearGradient</code> elements are available for referencing even when + * the <code>display</code> property on the <code>linearGradient</code> element + * or any of its ancestors is set to none. + * + * For more information : + * <a href="http://www.w3.org/TR/SVG/pservers.html#LinearGradients"> + * 13.2.2 Linear gradients</a> + * + */ + +class SVGLinearGradientElement : public SVGGradientElement +{ +public: + SVGLinearGradientElement(); + SVGLinearGradientElement(const SVGLinearGradientElement &other); + SVGLinearGradientElement &operator=(const SVGLinearGradientElement &other); + SVGLinearGradientElement(SVGLinearGradientElementImpl *other); + virtual ~SVGLinearGradientElement(); + + /** + * x1, y1, x2, y2 define a gradient vector for the linear gradient. + * This gradient vector provides starting and ending points onto which the + * @ref SVGGradientElement (gradient stops) are mapped. The values of x1, + * y1, x2, y2 can be either numbers or percentages. + * + * If the attribute is not specified, the effect is as if a value of "0%" + * were specified. + * + * This attribute is animatable. + * + * @return The x1 value + */ + SVGAnimatedLength x1() const; + + /** + * x1, y1, x2, y2 define a gradient vector for the linear gradient. + * This gradient vector provides starting and ending points onto which the + * @ref SVGGradientElement (gradient stops) are mapped. The values of x1, + * y1, x2, y2 can be either numbers or percentages. + * + * If the attribute is not specified, the effect is as if a value of "0%" + * were specified. + * + * This attribute is animatable. + * + * @return The y1 value + */ + SVGAnimatedLength y1() const; + + /** + * x1, y1, x2, y2 define a gradient vector for the linear gradient. + * This gradient vector provides starting and ending points onto which the + * @ref SVGGradientElement (gradient stops) are mapped. The values of x1, + * y1, x2, y2 can be either numbers or percentages. + * + * If the attribute is not specified, the effect is as if a value of "100%" + * were specified. + * + * This attribute is animatable. + * + * @return The x2 value + */ + SVGAnimatedLength x2() const; + + /** + * x1, y1, x2, y2 define a gradient vector for the linear gradient. + * This gradient vector provides starting and ending points onto which the + * @ref SVGGradientElement (gradient stops) are mapped. The values of x1, + * y1, x2, y2 can be either numbers or percentages. + * + * If the attribute is not specified, the effect is as if a value of "0%" + * were specified. + * + * This attribute is animatable. + * + * @return The y2 value + */ + SVGAnimatedLength y2() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGLinearGradientElementImpl *handle() const { return impl; } + +private: + SVGLinearGradientElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet + diff --git a/ksvg/dom/SVGLocatable.cc b/ksvg/dom/SVGLocatable.cc new file mode 100644 index 00000000..62a89e2e --- /dev/null +++ b/ksvg/dom/SVGLocatable.cc @@ -0,0 +1,97 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGLocatable.h" +#include "SVGLocatableImpl.h" +#include "SVGElement.h" +#include "SVGRect.h" +#include "SVGMatrix.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGLocatable::SVGLocatable() +{ + impl = 0; +} + +SVGLocatable::SVGLocatable(const SVGLocatable &other) +{ + (*this) = other; +} + +SVGLocatable &SVGLocatable::operator=(const SVGLocatable &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGLocatable::SVGLocatable(SVGLocatableImpl *other) +{ + impl = other; +} + +SVGLocatable::~SVGLocatable() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +SVGElement SVGLocatable::nearestViewportElement() const +{ + if(!impl) return SVGElement(0); + return impl->nearestViewportElement(); +} + +SVGElement SVGLocatable::farthestViewportElement() const +{ + if(!impl) return SVGElement(0); + return impl->farthestViewportElement(); +} + +SVGRect SVGLocatable::getBBox() +{ + if(!impl) return SVGRect(0); + return SVGRect(impl->getBBox()); // TODO: Check correctness +} + +SVGMatrix SVGLocatable::getCTM() +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->getCTM()); +} + +SVGMatrix SVGLocatable::getScreenCTM() +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->getScreenCTM()); +} + +SVGMatrix SVGLocatable::getTransformToElement(const SVGElement &element) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->getTransformToElement(element.handle())); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGLocatable.h b/ksvg/dom/SVGLocatable.h new file mode 100644 index 00000000..ecb93adc --- /dev/null +++ b/ksvg/dom/SVGLocatable.h @@ -0,0 +1,122 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGLocatable_H +#define SVGLocatable_H + +namespace KSVG +{ + +class SVGElement; +class SVGMatrix; +class SVGRect; +class SVGLocatableImpl; + +/** + * Interface SVGLocatable is for all elements which either have a <code>transform</code> + * attribute or don't have a <code>transform</code> attribute but whose content can have + * a bounding box in current user space. + */ +class SVGLocatable +{ +public: + SVGLocatable(const SVGLocatable &other); + SVGLocatable &operator=(const SVGLocatable &other); + SVGLocatable(SVGLocatableImpl *other); + virtual ~SVGLocatable(); + + /** + * The element which established the current viewport. Often, the nearest + * ancestor 'svg' element. Null if the current element is the outermost 'svg' element. + */ + SVGElement nearestViewportElement() const; + + /** + * The farthest ancestor 'svg' element. Null if the current element is + * the outermost 'svg' element. + */ + SVGElement farthestViewportElement() const; + + /** + * Returns the tight bounding box in current user space (i.e., after application of + * the <code>transform</code> attribute, if any) on the geometry of all contained graphics + * elements, exclusive of stroke-width and filter effects). + * + * @return An SVGRect object that defines the bounding box. + */ + SVGRect getBBox(); + + /** + * Returns the transformation matrix from current user units (i.e., after application of + * the <code>transform</code> attribute, if any) to the viewport coordinate system for + * the nearestViewportElement. + * + * @return An SVGMatrix object that defines the CTM. + */ + SVGMatrix getCTM(); + + /** + * Returns the transformation matrix from current user units (i.e., after application of + * the <code>transform</code> attribute, if any) to the parent user agent's notice of a "pixel". + * For display devices, ideally this represents a physical screen pixel. For other devices or + * environments where physical pixel sizes are not known, then an algorithm similar to the + * CSS2 definition of a "pixel" can be used instead. + * + * @return An SVGMatrix object that defines the given transformation matrix. + */ + SVGMatrix getScreenCTM(); + + /** + * Returns the transformation matrix from the user coordinate system on the current + * element (after application of the <code>transform</code> attribute, if any) to the + * user coordinate system on parameter element (after application of its + * <code>transform</code> attribute, if any). + * + * @param element The target element. + * + * @return An SVGMatrix object that defines the transformation. + */ + SVGMatrix getTransformToElement(const SVGElement &element); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGLocatableImpl *handle() const { return impl; } + +protected: + SVGLocatable(); + +private: + SVGLocatableImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMPathElement.cc b/ksvg/dom/SVGMPathElement.cc new file mode 100644 index 00000000..6d7a36e4 --- /dev/null +++ b/ksvg/dom/SVGMPathElement.cc @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGMPathElement.h" +#include "SVGMPathElementImpl.h" + +using namespace KSVG; + +SVGMPathElement::SVGMPathElement() : SVGElement(), SVGURIReference(), SVGExternalResourcesRequired() +{ + impl = 0; +} + +SVGMPathElement::SVGMPathElement(const SVGMPathElement &other) : SVGElement(other), SVGURIReference(other), SVGExternalResourcesRequired(other), impl(0) +{ + (*this) = other; +} + +SVGMPathElement &SVGMPathElement::operator =(const SVGMPathElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGExternalResourcesRequired::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGMPathElement::SVGMPathElement(SVGMPathElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGExternalResourcesRequired(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGMPathElement::~SVGMPathElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMPathElement.h b/ksvg/dom/SVGMPathElement.h new file mode 100644 index 00000000..e972e7ca --- /dev/null +++ b/ksvg/dom/SVGMPathElement.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGMPathElement_H +#define SVGMPathElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGExternalResourcesRequired.h" + +namespace KSVG +{ + +class SVGMPathElementImpl; +class SVGMPathElement : public SVGElement, + public SVGURIReference, + public SVGExternalResourcesRequired +{ +public: + SVGMPathElement(); + SVGMPathElement(const SVGMPathElement &other); + SVGMPathElement &operator=(const SVGMPathElement &other); + SVGMPathElement(SVGMPathElementImpl *other); + virtual ~SVGMPathElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGMPathElementImpl *handle() const { return impl; } + +private: + SVGMPathElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMarkerElement.cc b/ksvg/dom/SVGMarkerElement.cc new file mode 100644 index 00000000..7d7551da --- /dev/null +++ b/ksvg/dom/SVGMarkerElement.cc @@ -0,0 +1,129 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGMarkerElement.h" +#include "SVGMarkerElementImpl.h" +#include "SVGAnimatedLength.h" +#include "SVGAnimatedAngle.h" +#include "SVGAngle.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGMarkerElement::SVGMarkerElement() : SVGElement(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGFitToViewBox() +{ + impl = 0; +} + +SVGMarkerElement::SVGMarkerElement(const SVGMarkerElement &other) : SVGElement(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFitToViewBox(other), impl(0) +{ + (*this) = other; +} + +SVGMarkerElement &SVGMarkerElement::operator =(const SVGMarkerElement &other) +{ + SVGElement::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGFitToViewBox::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGMarkerElement::SVGMarkerElement(SVGMarkerElementImpl *other) : SVGElement(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFitToViewBox(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGMarkerElement::~SVGMarkerElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGMarkerElement::refX() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->refX()); +} + +SVGAnimatedLength SVGMarkerElement::refY() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->refY()); +} + +SVGAnimatedEnumeration SVGMarkerElement::markerUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->markerUnits()); +} + +SVGAnimatedLength SVGMarkerElement::markerWidth() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->markerWidth()); +} + +SVGAnimatedLength SVGMarkerElement::markerHeight() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->markerHeight()); +} + +SVGAnimatedEnumeration SVGMarkerElement::orientType() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->orientType()); +} + +SVGAnimatedAngle SVGMarkerElement::orientAngle() const +{ + if(!impl) return SVGAnimatedAngle(0); + return SVGAnimatedAngle(impl->orientAngle()); +} + +void SVGMarkerElement::setOrientToAuto() +{ + if(impl) + impl->setOrientToAuto(); +} + +void SVGMarkerElement::setOrientToAngle(const SVGAngle &angle) +{ + if(impl) + impl->setOrientToAngle(angle.handle()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMarkerElement.h b/ksvg/dom/SVGMarkerElement.h new file mode 100644 index 00000000..d2f54904 --- /dev/null +++ b/ksvg/dom/SVGMarkerElement.h @@ -0,0 +1,87 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGMarkerElement_H +#define SVGMarkerElement_H + +#include "SVGElement.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGFitToViewBox.h" + +namespace KSVG +{ + +enum +{ + SVG_MARKERUNITS_UNKNOWN = 0, + SVG_MARKERUNITS_USERSPACEONUSE = 1, + SVG_MARKERUNITS_STROKEWIDTH = 2 +}; + +enum +{ + SVG_MARKER_ORIENT_UNKNOWN = 0, + SVG_MARKER_ORIENT_AUTO = 1, + SVG_MARKER_ORIENT_ANGLE = 2 +}; + +class SVGAnimatedLength; +class SVGAnimatedAngle; +class SVGAngle; +class SVGAnimatedEnumeration; +class SVGMarkerElementImpl; +class SVGMarkerElement : public SVGElement, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGFitToViewBox +{ +public: + SVGMarkerElement(); + SVGMarkerElement(const SVGMarkerElement &other); + SVGMarkerElement &operator=(const SVGMarkerElement &other); + SVGMarkerElement(SVGMarkerElementImpl *other); + virtual ~SVGMarkerElement(); + + SVGAnimatedLength refX() const; + SVGAnimatedLength refY() const; + SVGAnimatedEnumeration markerUnits() const; + SVGAnimatedLength markerWidth() const; + SVGAnimatedLength markerHeight() const; + SVGAnimatedEnumeration orientType() const; + SVGAnimatedAngle orientAngle() const; + + void setOrientToAuto(); + void setOrientToAngle(const SVGAngle &angle); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGMarkerElementImpl *handle() const { return impl; } + +private: + SVGMarkerElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMaskElement.cc b/ksvg/dom/SVGMaskElement.cc new file mode 100644 index 00000000..c4513adc --- /dev/null +++ b/ksvg/dom/SVGMaskElement.cc @@ -0,0 +1,109 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGMaskElement.h" +#include "SVGMaskElementImpl.h" +#include "SVGAnimatedLength.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGMaskElement::SVGMaskElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGUnitTypes() +{ + impl = 0; +} + +SVGMaskElement::SVGMaskElement(const SVGMaskElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGUnitTypes(), impl(0) +{ + (*this) = other; +} + +SVGMaskElement &SVGMaskElement::operator =(const SVGMaskElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGMaskElement::SVGMaskElement(SVGMaskElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGUnitTypes() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGMaskElement::~SVGMaskElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedEnumeration SVGMaskElement::maskUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->maskUnits()); +} + +SVGAnimatedEnumeration SVGMaskElement::maskContentUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->maskContentUnits()); +} + +SVGAnimatedLength SVGMaskElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGMaskElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGMaskElement::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGMaskElement::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMaskElement.h b/ksvg/dom/SVGMaskElement.h new file mode 100644 index 00000000..6a8e26a4 --- /dev/null +++ b/ksvg/dom/SVGMaskElement.h @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGMaskElement_H +#define SVGMaskElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGUnitTypes.h" + +namespace KSVG +{ + +class SVGAnimatedEnumeration; +class SVGAnimatedLength; +class SVGMaskElementImpl; +class SVGMaskElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGUnitTypes +{ +public: + SVGMaskElement(); + SVGMaskElement(const SVGMaskElement &other); + SVGMaskElement &operator=(const SVGMaskElement &other); + SVGMaskElement(SVGMaskElementImpl *other); + virtual ~SVGMaskElement(); + + SVGAnimatedEnumeration maskUnits() const; + SVGAnimatedEnumeration maskContentUnits() const; + SVGAnimatedLength x() const; + SVGAnimatedLength y() const; + SVGAnimatedLength width() const; + SVGAnimatedLength height() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGMaskElementImpl *handle() const { return impl; } + +private: + SVGMaskElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMatrix.cc b/ksvg/dom/SVGMatrix.cc new file mode 100644 index 00000000..30eeda56 --- /dev/null +++ b/ksvg/dom/SVGMatrix.cc @@ -0,0 +1,210 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGMatrixImpl.h" +#include "SVGMatrix.h" + +using namespace KSVG; + +SVGMatrix::SVGMatrix() +{ + impl = new SVGMatrixImpl(); + impl->ref(); +} + +SVGMatrix::SVGMatrix(double a, double b, double c, double d, double e, double f) +{ + impl = new SVGMatrixImpl(a, b, c, d, e, f); + impl->ref(); +} + +SVGMatrix::SVGMatrix(const SVGMatrix &other) : impl(0) +{ + (*this) = other; +} + +SVGMatrix &SVGMatrix::operator=(const SVGMatrix &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGMatrix::SVGMatrix(SVGMatrixImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGMatrix::~SVGMatrix() +{ + if(impl) + impl->deref(); +} + +void SVGMatrix::setA(const double &a) +{ + if(impl) + impl->setA(a); +} + +double SVGMatrix::a() const +{ + if(!impl) return -1; + return impl->a(); +} + +void SVGMatrix::setB(const double &b) +{ + if(impl) + impl->setB(b); +} + +double SVGMatrix::b() const +{ + if(!impl) return -1; + return impl->b(); +} + +void SVGMatrix::setC(const double &c) +{ + if(impl) + impl->setC(c); +} + +double SVGMatrix::c() const +{ + if(!impl) return -1; + return impl->c(); +} + +void SVGMatrix::setD(const double &d) +{ + if(impl) + impl->setD(d); +} + +double SVGMatrix::d() const +{ + if(!impl) return -1; + return impl->d(); +} + +void SVGMatrix::setE(const double &e) +{ + if(impl) + impl->setE(e); +} + +double SVGMatrix::e() const +{ + if(!impl) return -1; + return impl->e(); +} + +void SVGMatrix::setF(const double &f) +{ + if(impl) + impl->setF(f); +} + +double SVGMatrix::f() const +{ + if(!impl) return -1; + return impl->f(); +} + +SVGMatrix SVGMatrix::multiply(SVGMatrix &secondMatrix) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->multiply(secondMatrix.handle())); +} + +SVGMatrix SVGMatrix::inverse() +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->inverse()); +} + +SVGMatrix SVGMatrix::translate(const double &x, const double &y) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->translate(x, y)); +} + +SVGMatrix SVGMatrix::scale(const double &scaleFactor) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->scale(scaleFactor)); +} + +SVGMatrix SVGMatrix::scaleNonUniform(const double &scaleFactorX, const double &scaleFactorY) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->scaleNonUniform(scaleFactorX, scaleFactorY)); +} + +SVGMatrix SVGMatrix::rotate(const double &angle) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->rotate(angle)); +} + +SVGMatrix SVGMatrix::rotateFromVector(const double &x, const double &y) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->rotateFromVector(x, y)); +} + +SVGMatrix SVGMatrix::flipX() +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->flipX()); +} + +SVGMatrix SVGMatrix::flipY() +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->flipY()); +} + +SVGMatrix SVGMatrix::skewX(const double &angle) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->skewX(angle)); +} + +SVGMatrix SVGMatrix::skewY(const double &angle) +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->skewY(angle)); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMatrix.h b/ksvg/dom/SVGMatrix.h new file mode 100644 index 00000000..caf2b9a8 --- /dev/null +++ b/ksvg/dom/SVGMatrix.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGMatrix_H +#define SVGMatrix_H + +namespace KSVG +{ + +class SVGMatrixImpl; +class SVGMatrix +{ +public: + SVGMatrix(); + SVGMatrix(double, double, double, double, double, double); + SVGMatrix(const SVGMatrix &); + SVGMatrix &operator=(const SVGMatrix &); + SVGMatrix(SVGMatrixImpl *); + ~SVGMatrix(); + + void setA(const double &); + double a() const; + + void setB(const double &); + double b() const; + + void setC(const double &); + double c() const; + + void setD(const double &); + double d() const; + + void setE(const double &); + double e() const; + + void setF(const double &); + double f() const; + + SVGMatrix multiply(SVGMatrix &secondMatrix); + SVGMatrix inverse(); + SVGMatrix translate(const double &x, const double &y); + SVGMatrix scale(const double &scaleFactor); + SVGMatrix scaleNonUniform(const double &scaleFactorX, const double &scaleFactorY); + SVGMatrix rotate(const double &angle); + SVGMatrix rotateFromVector(const double &x, const double &y); + SVGMatrix flipX(); + SVGMatrix flipY(); + SVGMatrix skewX(const double &angle); + SVGMatrix skewY(const double &angle); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGMatrixImpl *handle() const { return impl; } + +private: + SVGMatrixImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMetadataElement.cc b/ksvg/dom/SVGMetadataElement.cc new file mode 100644 index 00000000..e874e95c --- /dev/null +++ b/ksvg/dom/SVGMetadataElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGMetadataElement.h" +#include "SVGMetadataElementImpl.h" + +using namespace KSVG; + +SVGMetadataElement::SVGMetadataElement() : SVGElement() +{ + impl = 0; +} + +SVGMetadataElement::SVGMetadataElement(const SVGMetadataElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGMetadataElement &SVGMetadataElement::operator =(const SVGMetadataElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGMetadataElement::SVGMetadataElement(SVGMetadataElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGMetadataElement::~SVGMetadataElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMetadataElement.h b/ksvg/dom/SVGMetadataElement.h new file mode 100644 index 00000000..703e48a6 --- /dev/null +++ b/ksvg/dom/SVGMetadataElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGMetadataElement_H +#define SVGMetadataElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGMetadataElementImpl; +class SVGMetadataElement : public SVGElement +{ +public: + SVGMetadataElement(); + SVGMetadataElement(const SVGMetadataElement &other); + SVGMetadataElement &operator=(const SVGMetadataElement &other); + SVGMetadataElement(SVGMetadataElementImpl *other); + virtual ~SVGMetadataElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGMetadataElementImpl *handle() const { return impl; } + +private: + SVGMetadataElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMissingGlyphElement.cc b/ksvg/dom/SVGMissingGlyphElement.cc new file mode 100644 index 00000000..d9bff554 --- /dev/null +++ b/ksvg/dom/SVGMissingGlyphElement.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGMissingGlyphElement.h" +#include "SVGMissingGlyphElementImpl.h" + +using namespace KSVG; + +SVGMissingGlyphElement::SVGMissingGlyphElement() : SVGElement(), SVGStylable() +{ + impl = 0; +} + +SVGMissingGlyphElement::SVGMissingGlyphElement(const SVGMissingGlyphElement &other) : SVGElement(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGMissingGlyphElement &SVGMissingGlyphElement::operator =(const SVGMissingGlyphElement &other) +{ + SVGElement::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGMissingGlyphElement::SVGMissingGlyphElement(SVGMissingGlyphElementImpl *other) : SVGElement(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGMissingGlyphElement::~SVGMissingGlyphElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGMissingGlyphElement.h b/ksvg/dom/SVGMissingGlyphElement.h new file mode 100644 index 00000000..5b7e6f62 --- /dev/null +++ b/ksvg/dom/SVGMissingGlyphElement.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGMissingGlyphElement_H +#define SVGMissingGlyphElement_H + +#include "SVGElement.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGMissingGlyphElementImpl; +class SVGMissingGlyphElement : public SVGElement, + public SVGStylable +{ +public: + SVGMissingGlyphElement(); + SVGMissingGlyphElement(const SVGMissingGlyphElement &other); + SVGMissingGlyphElement &operator=(const SVGMissingGlyphElement &other); + SVGMissingGlyphElement(SVGMissingGlyphElementImpl *other); + virtual ~SVGMissingGlyphElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGMissingGlyphElementImpl *handle() const { return impl; } + +private: + SVGMissingGlyphElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGNumber.cc b/ksvg/dom/SVGNumber.cc new file mode 100644 index 00000000..81208987 --- /dev/null +++ b/ksvg/dom/SVGNumber.cc @@ -0,0 +1,78 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGNumber.h" +#include "SVGNumberImpl.h" + +using namespace KSVG; + +SVGNumber::SVGNumber() +{ + impl = new SVGNumberImpl(); + impl->ref(); +} + +SVGNumber::SVGNumber(const SVGNumber &other) : impl(0) +{ + (*this) = other; +} + +SVGNumber &SVGNumber::operator=(const SVGNumber &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGNumber::SVGNumber(SVGNumberImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGNumber::~SVGNumber() +{ + if(impl) + impl->deref(); +} + +void SVGNumber::setValue(float value) +{ + if(impl) + impl->setValue(value); +} + +float SVGNumber::value() const +{ + if(!impl) return -1; + return impl->value(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGNumber.h b/ksvg/dom/SVGNumber.h new file mode 100644 index 00000000..d3efbe42 --- /dev/null +++ b/ksvg/dom/SVGNumber.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGNumber_H +#define SVGNumber_H + +namespace KSVG +{ + +class SVGNumberImpl; +class SVGNumber +{ +public: + SVGNumber(); + SVGNumber(const SVGNumber &); + SVGNumber &operator=(const SVGNumber &); + SVGNumber(SVGNumberImpl *); + ~SVGNumber(); + + void setValue(float value); + float value() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGNumberImpl *handle() const { return impl; } + +private: + SVGNumberImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGNumberList.cc b/ksvg/dom/SVGNumberList.cc new file mode 100644 index 00000000..92adec50 --- /dev/null +++ b/ksvg/dom/SVGNumberList.cc @@ -0,0 +1,115 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGNumberList.h" +#include "SVGNumberListImpl.h" +#include "SVGNumber.h" + +using namespace KSVG; + +SVGNumberList::SVGNumberList() +{ + impl = new SVGNumberListImpl(); + impl->ref(); +} + +SVGNumberList::SVGNumberList(const SVGNumberList &other) : impl(0) +{ + (*this) = other; +} + +SVGNumberList &SVGNumberList::operator=(const SVGNumberList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGNumberList::SVGNumberList(SVGNumberListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGNumberList::~SVGNumberList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGNumberList::numberOfItems() const +{ + if(!impl) return 0; + return impl->numberOfItems(); +} + +void SVGNumberList::clear() +{ + if(impl) + impl->clear(); +} + +SVGNumber *SVGNumberList::initialize(SVGNumber *newItem) +{ + if(!impl) return new SVGNumber(0); + return new SVGNumber(impl->initialize(newItem->handle())); +} + +SVGNumber *SVGNumberList::getItem(unsigned long index) +{ + if(!impl) return new SVGNumber(0); + return new SVGNumber(impl->getItem(index)); +} + +SVGNumber *SVGNumberList::insertItemBefore(SVGNumber *newItem, unsigned long index) +{ + if(!impl) return new SVGNumber(0); + return new SVGNumber(impl->insertItemBefore(newItem->handle(), index)); +} + +SVGNumber *SVGNumberList::replaceItem(SVGNumber *newItem, unsigned long index) +{ + if(!impl) return new SVGNumber(0); + return new SVGNumber(impl->replaceItem(newItem->handle(), index)); +} + +SVGNumber *SVGNumberList::removeItem(unsigned long index) +{ + if(!impl) return new SVGNumber(0); + return new SVGNumber(impl->removeItem(index)); +} + +SVGNumber *SVGNumberList::appendItem(SVGNumber *newItem) +{ + if(!impl) return new SVGNumber(0); + return new SVGNumber(impl->appendItem(newItem->handle())); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGNumberList.h b/ksvg/dom/SVGNumberList.h new file mode 100644 index 00000000..920574d7 --- /dev/null +++ b/ksvg/dom/SVGNumberList.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGNumberList_H +#define SVGNumberList_H + +namespace KSVG +{ + +class SVGNumber; +class SVGNumberListImpl; +class SVGNumberList +{ +public: + SVGNumberList(); + SVGNumberList(const SVGNumberList &); + SVGNumberList &operator=(const SVGNumberList &); + SVGNumberList(SVGNumberListImpl *); + ~SVGNumberList(); + + unsigned long numberOfItems() const; + void clear(); + SVGNumber *initialize(SVGNumber *newItem); + SVGNumber *getItem(unsigned long index); + SVGNumber *insertItemBefore(SVGNumber *newItem, unsigned long index); + SVGNumber *replaceItem(SVGNumber *newItem, unsigned long index); + SVGNumber *removeItem(unsigned long index); + SVGNumber *appendItem(SVGNumber *newItem); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGNumberListImpl *handle() const { return impl; } + +private: + SVGNumberListImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPaint.cc b/ksvg/dom/SVGPaint.cc new file mode 100644 index 00000000..7e7051d5 --- /dev/null +++ b/ksvg/dom/SVGPaint.cc @@ -0,0 +1,93 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPaint.h" +#include "SVGPaintImpl.h" + +using namespace KSVG; + +SVGPaint::SVGPaint() : SVGColor() +{ + // FIXME: no icc color support... + impl = new SVGPaintImpl(0); + impl->ref(); +} + +SVGPaint::SVGPaint(const SVGPaint &other) : SVGColor(other), impl(0) +{ + (*this) = other; +} + +SVGPaint &SVGPaint::operator =(const SVGPaint &other) +{ + SVGColor::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPaint::SVGPaint(SVGPaintImpl *other) : SVGColor(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPaint::~SVGPaint() +{ + if(impl) + impl->deref(); +} + +unsigned short SVGPaint::paintType() const +{ + if(!impl) return SVG_PAINTTYPE_UNKNOWN; + return impl->paintType(); +} + +DOM::DOMString SVGPaint::uri() const +{ + if(!impl) return DOM::DOMString(); + return impl->uri(); +} + +void SVGPaint::setUri(const DOM::DOMString &uri) +{ + if(impl) + impl->setUri(uri); +} + +void SVGPaint::setPaint(unsigned short paintType, const DOM::DOMString &uri, const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor) +{ + if(impl) + impl->setPaint(paintType, uri, rgbColor, iccColor); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPaint.h b/ksvg/dom/SVGPaint.h new file mode 100644 index 00000000..84f331fb --- /dev/null +++ b/ksvg/dom/SVGPaint.h @@ -0,0 +1,70 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPaint_H +#define SVGPaint_H + +#include "SVGColor.h" +#include <dom/dom_string.h> + +namespace KSVG +{ + +enum +{ + SVG_PAINTTYPE_UNKNOWN = 0, + SVG_PAINTTYPE_RGBCOLOR = 1, + SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2, + SVG_PAINTTYPE_NONE = 101, + SVG_PAINTTYPE_CURRENTCOLOR = 102, + SVG_PAINTTYPE_URI_NONE = 103, + SVG_PAINTTYPE_URI_CURRENTCOLOR = 104, + SVG_PAINTTYPE_URI_RGBCOLOR = 105, + SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106, + SVG_PAINTTYPE_URI = 107 +}; + +class SVGPaintImpl; +class SVGPaint : public SVGColor +{ +public: + SVGPaint(); + SVGPaint(const SVGPaint &other); + SVGPaint &operator=(const SVGPaint &other); + SVGPaint(SVGPaintImpl *other); + virtual ~SVGPaint(); + + unsigned short paintType() const; + DOM::DOMString uri() const; + void setUri(const DOM::DOMString &uri); + void setPaint(unsigned short paintType, const DOM::DOMString &uri, const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPaintImpl *handle() const { return impl; } + +private: + SVGPaintImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathElement.cc b/ksvg/dom/SVGPathElement.cc new file mode 100644 index 00000000..1153cf65 --- /dev/null +++ b/ksvg/dom/SVGPathElement.cc @@ -0,0 +1,200 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathElement.h" +#include "SVGPathElementImpl.h" +#include "SVGPoint.h" +#include "SVGPathSegClosePath.h" +#include "SVGPathSegLineto.h" +#include "SVGPathSegLinetoHorizontal.h" +#include "SVGPathSegLinetoVertical.h" +#include "SVGPathSegMoveto.h" +#include "SVGPathSegArc.h" +#include "SVGPathSegCurvetoCubic.h" +#include "SVGPathSegCurvetoCubicSmooth.h" +#include "SVGPathSegCurvetoQuadratic.h" +#include "SVGPathSegCurvetoQuadraticSmooth.h" + +using namespace KSVG; + +SVGPathElement::SVGPathElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGAnimatedPathData() +{ + impl = 0; +} + +SVGPathElement::SVGPathElement(const SVGPathElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPathData(other), impl(0) +{ + (*this) = other; +} + +SVGPathElement &SVGPathElement::operator=(const SVGPathElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPathElement::SVGPathElement(SVGPathElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPathData(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPathElement::~SVGPathElement() +{ + if(impl) + impl->deref(); +} + +/* +SVGAnimatedNumber SVGPathElement::pathLength() const +{ + return m_pathLength; +} +*/ + +float SVGPathElement::getTotalLength() +{ + return impl->getTotalLength(); +} + +SVGPoint SVGPathElement::getPointAtLength(float distance) +{ + return SVGPoint(impl->getPointAtLength(distance)); +} + +unsigned long SVGPathElement::getPathSegAtLength(float distance) +{ + return impl->getPathSegAtLength(distance); +} + +SVGPathSegClosePath SVGPathElement::createSVGPathSegClosePath() +{ + return impl->createSVGPathSegClosePath(); +} + +SVGPathSegMovetoAbs SVGPathElement::createSVGPathSegMovetoAbs(float x,float y) +{ + return impl->createSVGPathSegMovetoAbs(x, y);; +} + +SVGPathSegMovetoRel SVGPathElement::createSVGPathSegMovetoRel(float x,float y) +{ + return impl->createSVGPathSegMovetoRel(x, y); +} + +SVGPathSegLinetoAbs SVGPathElement::createSVGPathSegLinetoAbs(float x,float y) +{ + return impl->createSVGPathSegLinetoAbs(x, y); +} + +SVGPathSegLinetoRel SVGPathElement::createSVGPathSegLinetoRel(float x,float y) +{ + return impl->createSVGPathSegLinetoRel(x, y); +} + +SVGPathSegCurvetoCubicAbs SVGPathElement::createSVGPathSegCurvetoCubicAbs(float x,float y,float x1,float y1,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2); +} + +SVGPathSegCurvetoCubicRel SVGPathElement::createSVGPathSegCurvetoCubicRel(float x,float y,float x1,float y1,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2); +} + +SVGPathSegCurvetoQuadraticAbs SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(float x,float y,float x1,float y1) +{ + return impl->createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1); +} + +SVGPathSegCurvetoQuadraticRel SVGPathElement::createSVGPathSegCurvetoQuadraticRel(float x,float y,float x1,float y1) +{ + return impl->createSVGPathSegCurvetoQuadraticRel(x, y, x1, y1); +} + +SVGPathSegArcAbs SVGPathElement::createSVGPathSegArcAbs(float x,float y,float r1,float r2,float angle,bool largeArcFlag,bool sweepFlag) +{ + return impl->createSVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag); +} + +SVGPathSegArcRel SVGPathElement::createSVGPathSegArcRel(float x,float y,float r1,float r2,float angle,bool largeArcFlag,bool sweepFlag) +{ + return impl->createSVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag); +} + +SVGPathSegLinetoHorizontalAbs SVGPathElement::createSVGPathSegLinetoHorizontalAbs(float x) +{ + return impl->createSVGPathSegLinetoHorizontalAbs(x); +} + +SVGPathSegLinetoHorizontalRel SVGPathElement::createSVGPathSegLinetoHorizontalRel(float x) +{ + return impl->createSVGPathSegLinetoHorizontalRel(x); +} + +SVGPathSegLinetoVerticalAbs SVGPathElement::createSVGPathSegLinetoVerticalAbs(float y) +{ + return impl->createSVGPathSegLinetoVerticalAbs(y); +} + +SVGPathSegLinetoVerticalRel SVGPathElement::createSVGPathSegLinetoVerticalRel(float y) +{ + return impl->createSVGPathSegLinetoVerticalRel(y); +} + +SVGPathSegCurvetoCubicSmoothAbs SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(float x,float y,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2);; +} + +SVGPathSegCurvetoCubicSmoothRel SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(float x,float y,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicSmoothRel(x, y, x2, y2); +} + +SVGPathSegCurvetoQuadraticSmoothAbs SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(float x,float y) +{ + return impl->createSVGPathSegCurvetoQuadraticSmoothAbs(x, y); +} + +SVGPathSegCurvetoQuadraticSmoothRel SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(float x,float y) +{ + return impl->createSVGPathSegCurvetoQuadraticSmoothRel(x, y); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathElement.h b/ksvg/dom/SVGPathElement.h new file mode 100644 index 00000000..fa4cb379 --- /dev/null +++ b/ksvg/dom/SVGPathElement.h @@ -0,0 +1,107 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathElement_H +#define SVGPathElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGAnimatedPathData.h" + +namespace KSVG +{ + +class SVGPoint; +class SVGPathSegClosePath; +class SVGPathSegLinetoAbs; +class SVGPathSegLinetoRel; +class SVGPathSegLinetoHorizontalAbs; +class SVGPathSegLinetoHorizontalRel; +class SVGPathSegLinetoVerticalAbs; +class SVGPathSegLinetoVerticalRel; +class SVGPathSegMovetoAbs; +class SVGPathSegMovetoRel; +class SVGPathSegArcAbs; +class SVGPathSegArcRel; +class SVGPathSegCurvetoCubicAbs; +class SVGPathSegCurvetoCubicRel; +class SVGPathSegCurvetoCubicSmoothAbs; +class SVGPathSegCurvetoCubicSmoothRel; +class SVGPathSegCurvetoQuadraticAbs; +class SVGPathSegCurvetoQuadraticRel; +class SVGPathSegCurvetoQuadraticSmoothAbs; +class SVGPathSegCurvetoQuadraticSmoothRel; +class SVGPathElementImpl; +class SVGPathElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGAnimatedPathData +{ +public: + SVGPathElement(); + SVGPathElement(const SVGPathElement &); + SVGPathElement &operator=(const SVGPathElement &other); + SVGPathElement(SVGPathElementImpl *); + ~SVGPathElement(); + + //SVGAnimatedNumber pathLength() const; + float getTotalLength(); + SVGPoint getPointAtLength(float distance); + unsigned long getPathSegAtLength(float distance); + + SVGPathSegClosePath createSVGPathSegClosePath(); + SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x,float y); + SVGPathSegMovetoRel createSVGPathSegMovetoRel(float x,float y); + SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x,float y); + SVGPathSegLinetoRel createSVGPathSegLinetoRel(float x,float y); + SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(float x,float y,float x1,float y1,float x2,float y2); + SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(float x,float y,float x1,float y1,float x2,float y2); + SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(float x,float y,float x1,float y1); + SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(float x,float y,float x1,float y1); + SVGPathSegArcAbs createSVGPathSegArcAbs(float x,float y,float r1,float r2,float angle,bool largeArcFlag,bool sweepFlag); + SVGPathSegArcRel createSVGPathSegArcRel(float x,float y,float r1,float r2,float angle,bool largeArcFlag,bool sweepFlag); + SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x); + SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x); + SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y); + SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y); + SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(float x,float y,float x2,float y2); + SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(float x,float y,float x2,float y2); + SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x,float y); + SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x,float y); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathElementImpl *handle() const { return impl; } + +private: + SVGPathElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSeg.cc b/ksvg/dom/SVGPathSeg.cc new file mode 100644 index 00000000..3fc31148 --- /dev/null +++ b/ksvg/dom/SVGPathSeg.cc @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSeg.h" +#include "SVGPathSegImpl.h" + +using namespace KSVG; + +SVGPathSeg::SVGPathSeg() +{ + impl = new SVGPathSegImpl(); +} + +SVGPathSeg::SVGPathSeg(const SVGPathSeg &other) +{ + impl = other.impl; +} + +SVGPathSeg &SVGPathSeg::operator=(const SVGPathSeg &other) +{ + if(impl == other.impl) + return *this; + + delete impl; + impl = other.impl; + + return *this; +} + +SVGPathSeg::SVGPathSeg(SVGPathSegImpl *other) +{ + impl = other; +} + +SVGPathSeg::~SVGPathSeg() +{ + delete impl; +} + +unsigned short SVGPathSeg::pathSegType() const +{ + if(!impl) return PATHSEG_UNKNOWN; + return impl->pathSegType(); +} + +DOM::DOMString SVGPathSeg::pathSegTypeAsLetter() const +{ + if(!impl) return DOM::DOMString(""); + return impl->pathSegTypeAsLetter(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSeg.h b/ksvg/dom/SVGPathSeg.h new file mode 100644 index 00000000..f82e3c80 --- /dev/null +++ b/ksvg/dom/SVGPathSeg.h @@ -0,0 +1,76 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef SVGPathSeg_H +#define SVGPathSeg_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +enum +{ + PATHSEG_UNKNOWN = 0, + PATHSEG_CLOSEPATH = 1, + PATHSEG_MOVETO_ABS = 2, + PATHSEG_MOVETO_REL = 3, + PATHSEG_LINETO_ABS = 4, + PATHSEG_LINETO_REL = 5, + PATHSEG_CURVETO_CUBIC_ABS = 6, + PATHSEG_CURVETO_CUBIC_REL = 7, + PATHSEG_CURVETO_QUADRATIC_ABS = 8, + PATHSEG_CURVETO_QUADRATIC_REL = 9, + PATHSEG_ARC_ABS = 10, + PATHSEG_ARC_REL = 11, + PATHSEG_LINETO_HORIZONTAL_ABS = 12, + PATHSEG_LINETO_HORIZONTAL_REL = 13, + PATHSEG_LINETO_VERTICAL_ABS = 14, + PATHSEG_LINETO_VERTICAL_REL = 15, + PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16, + PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17, + PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18, + PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19 +}; + +class SVGPathSegImpl; +class SVGPathSeg +{ +public: + SVGPathSeg(); + SVGPathSeg(const SVGPathSeg &); + SVGPathSeg &operator=(const SVGPathSeg &other); + SVGPathSeg(SVGPathSegImpl *); + ~SVGPathSeg(); + + unsigned short pathSegType() const; + DOM::DOMString pathSegTypeAsLetter() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegImpl *handle() const { return impl; } + +private: + SVGPathSegImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegArc.cc b/ksvg/dom/SVGPathSegArc.cc new file mode 100644 index 00000000..078137ab --- /dev/null +++ b/ksvg/dom/SVGPathSegArc.cc @@ -0,0 +1,238 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegArc.h" +#include "SVGPathSegArcImpl.h" + +using namespace KSVG; + +SVGPathSegArcAbs::SVGPathSegArcAbs() : SVGPathSeg() +{ + impl = new SVGPathSegArcAbsImpl(); +} + +SVGPathSegArcAbs::SVGPathSegArcAbs(const SVGPathSegArcAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegArcAbs::SVGPathSegArcAbs(SVGPathSegArcAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegArcAbs::~SVGPathSegArcAbs() +{ + delete impl; +} + +void SVGPathSegArcAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegArcAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegArcAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegArcAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegArcAbs::setR1(const float &r1) +{ + if(impl) + impl->setR1(r1); +} + +float SVGPathSegArcAbs::r1() const +{ + if(!impl) return -1; + return impl->r1(); +} + +void SVGPathSegArcAbs::setR2(const float &r2) +{ + if(impl) + impl->setR2(r2); +} + +float SVGPathSegArcAbs::r2() const +{ + if(!impl) return -1; + return impl->r2(); +} + +void SVGPathSegArcAbs::setAngle(const float &angle) +{ + if(impl) + impl->setAngle(angle); +} + +float SVGPathSegArcAbs::angle() const +{ + if(!impl) return -1; + return impl->angle(); +} + +void SVGPathSegArcAbs::setLargeArcFlag(bool largeArcFlag) +{ + if(impl) + impl->setLargeArcFlag(largeArcFlag); +} + +bool SVGPathSegArcAbs::largeArcFlag() const +{ + if(!impl) return false; + return impl->largeArcFlag(); +} + +void SVGPathSegArcAbs::setSweepFlag(bool sweepFlag) +{ + if(impl) + impl->setSweepFlag(sweepFlag); +} + +bool SVGPathSegArcAbs::sweepFlag() const +{ + if(!impl) return false; + return impl->sweepFlag(); +} + + + + + +SVGPathSegArcRel::SVGPathSegArcRel() : SVGPathSeg() +{ + impl = new SVGPathSegArcRelImpl(); +} + +SVGPathSegArcRel::SVGPathSegArcRel(const SVGPathSegArcRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegArcRel::SVGPathSegArcRel(SVGPathSegArcRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegArcRel::~SVGPathSegArcRel() +{ + delete impl; +} + +void SVGPathSegArcRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegArcRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegArcRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegArcRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegArcRel::setR1(const float &r1) +{ + if(impl) + impl->setR1(r1); +} + +float SVGPathSegArcRel::r1() const +{ + if(!impl) return -1; + return impl->r1(); +} + +void SVGPathSegArcRel::setR2(const float &r2) +{ + if(impl) + impl->setR2(r2); +} + +float SVGPathSegArcRel::r2() const +{ + if(!impl) return -1; + return impl->r2(); +} + +void SVGPathSegArcRel::setAngle(const float &angle) +{ + if(impl) + impl->setAngle(angle); +} + +float SVGPathSegArcRel::angle() const +{ + if(!impl) return -1; + return impl->angle(); +} + +void SVGPathSegArcRel::setLargeArcFlag(bool largeArcFlag) +{ + if(impl) + impl->setLargeArcFlag(largeArcFlag); +} + +bool SVGPathSegArcRel::largeArcFlag() const +{ + if(!impl) return false; + return impl->largeArcFlag(); +} + +void SVGPathSegArcRel::setSweepFlag(bool sweepFlag) +{ + if(impl) + impl->setSweepFlag(sweepFlag); +} + +bool SVGPathSegArcRel::sweepFlag() const +{ + if(!impl) return false; + return impl->sweepFlag(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegArc.h b/ksvg/dom/SVGPathSegArc.h new file mode 100644 index 00000000..e9b83786 --- /dev/null +++ b/ksvg/dom/SVGPathSegArc.h @@ -0,0 +1,109 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegArc_H +#define SVGPathSegArc_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegArcAbsImpl; +class SVGPathSegArcAbs : public SVGPathSeg +{ +public: + SVGPathSegArcAbs(); + SVGPathSegArcAbs(const SVGPathSegArcAbs &); + SVGPathSegArcAbs &operator=(const SVGPathSegArcAbs &other); + SVGPathSegArcAbs(SVGPathSegArcAbsImpl *); + ~SVGPathSegArcAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setR1(const float &); + float r1() const; + + void setR2(const float &); + float r2() const; + + void setAngle(const float &); + float angle() const; + + void setLargeArcFlag(bool); + bool largeArcFlag() const; + + void setSweepFlag(bool); + bool sweepFlag() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegArcAbsImpl *handle() const { return impl; } + +private: + SVGPathSegArcAbsImpl *impl; +}; + +class SVGPathSegArcRelImpl; +class SVGPathSegArcRel : public SVGPathSeg +{ +public: + SVGPathSegArcRel(); + SVGPathSegArcRel(const SVGPathSegArcRel &); + SVGPathSegArcRel &operator=(const SVGPathSegArcRel &other); + SVGPathSegArcRel(SVGPathSegArcRelImpl *); + ~SVGPathSegArcRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setR1(const float &); + float r1() const; + + void setR2(const float &); + float r2() const; + + void setAngle(const float &); + float angle() const; + + void setLargeArcFlag(bool); + bool largeArcFlag() const; + + void setSweepFlag(bool); + bool sweepFlag() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegArcRelImpl *handle() const { return impl; } + +private: + SVGPathSegArcRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegClosePath.cc b/ksvg/dom/SVGPathSegClosePath.cc new file mode 100644 index 00000000..d9f33877 --- /dev/null +++ b/ksvg/dom/SVGPathSegClosePath.cc @@ -0,0 +1,46 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegClosePath.h" +#include "SVGPathSegClosePathImpl.h" + +using namespace KSVG; + +SVGPathSegClosePath::SVGPathSegClosePath() : SVGPathSeg() +{ + impl = new SVGPathSegClosePathImpl(); +} + +SVGPathSegClosePath::SVGPathSegClosePath(const SVGPathSegClosePath &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegClosePath::SVGPathSegClosePath(SVGPathSegClosePathImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegClosePath::~SVGPathSegClosePath() +{ + delete impl; +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegClosePath.h b/ksvg/dom/SVGPathSegClosePath.h new file mode 100644 index 00000000..a7f32021 --- /dev/null +++ b/ksvg/dom/SVGPathSegClosePath.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegClosePath_H +#define SVGPathSegClosePath_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegClosePathImpl; +class SVGPathSegClosePath : public SVGPathSeg +{ +public: + SVGPathSegClosePath(); + SVGPathSegClosePath(const SVGPathSegClosePath &); + SVGPathSegClosePath &operator=(const SVGPathSegClosePath &other); + SVGPathSegClosePath(SVGPathSegClosePathImpl *); + ~SVGPathSegClosePath(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegClosePathImpl *handle() const { return impl; } + +private: + SVGPathSegClosePathImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoCubic.cc b/ksvg/dom/SVGPathSegCurvetoCubic.cc new file mode 100644 index 00000000..bee9ce00 --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoCubic.cc @@ -0,0 +1,214 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegCurvetoCubic.h" +#include "SVGPathSegCurvetoCubicImpl.h" + +using namespace KSVG; + +SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoCubicAbsImpl(); +} + +SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs(SVGPathSegCurvetoCubicAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoCubicAbs::~SVGPathSegCurvetoCubicAbs() +{ + delete impl; +} + +void SVGPathSegCurvetoCubicAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoCubicAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoCubicAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoCubicAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegCurvetoCubicAbs::setX1(const float &x1) +{ + if(impl) + impl->setX1(x1); +} + +float SVGPathSegCurvetoCubicAbs::x1() const +{ + if(!impl) return -1; + return impl->x1(); +} + +void SVGPathSegCurvetoCubicAbs::setY1(const float &y1) +{ + if(impl) + impl->setY1(y1); +} + +float SVGPathSegCurvetoCubicAbs::y1() const +{ + if(!impl) return -1; + return impl->y1(); +} + +void SVGPathSegCurvetoCubicAbs::setX2(const float &x2) +{ + if(impl) + impl->setX2(x2); +} + +float SVGPathSegCurvetoCubicAbs::x2() const +{ + if(!impl) return -1; + return impl->x2(); +} + +void SVGPathSegCurvetoCubicAbs::setY2(const float &y2) +{ + if(impl) + impl->setY2(y2); +} + +float SVGPathSegCurvetoCubicAbs::y2() const +{ + if(!impl) return -1; + return impl->y2(); +} + + + + + +SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoCubicRelImpl(); +} + +SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel(SVGPathSegCurvetoCubicRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoCubicRel::~SVGPathSegCurvetoCubicRel() +{ + delete impl; +} + +void SVGPathSegCurvetoCubicRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoCubicRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoCubicRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoCubicRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegCurvetoCubicRel::setX1(const float &x1) +{ + if(impl) + impl->setX1(x1); +} + +float SVGPathSegCurvetoCubicRel::x1() const +{ + if(!impl) return -1; + return impl->x1(); +} + +void SVGPathSegCurvetoCubicRel::setY1(const float &y1) +{ + if(impl) + impl->setY1(y1); +} + +float SVGPathSegCurvetoCubicRel::y1() const +{ + if(!impl) return -1; + return impl->y1(); +} + +void SVGPathSegCurvetoCubicRel::setX2(const float &x2) +{ + if(impl) + impl->setX2(x2); +} + +float SVGPathSegCurvetoCubicRel::x2() const +{ + if(!impl) return -1; + return impl->x2(); +} + +void SVGPathSegCurvetoCubicRel::setY2(const float &y2) +{ + if(impl) + impl->setY2(y2); +} + +float SVGPathSegCurvetoCubicRel::y2() const +{ + if(!impl) return -1; + return impl->y2(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoCubic.h b/ksvg/dom/SVGPathSegCurvetoCubic.h new file mode 100644 index 00000000..99fde23e --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoCubic.h @@ -0,0 +1,103 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegCurvetoCubic_H +#define SVGPathSegCurvetoCubic_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegCurvetoCubicAbsImpl; +class SVGPathSegCurvetoCubicAbs : public SVGPathSeg +{ +public: + SVGPathSegCurvetoCubicAbs(); + SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &); + SVGPathSegCurvetoCubicAbs &operator=(const SVGPathSegCurvetoCubicAbs &other); + SVGPathSegCurvetoCubicAbs(SVGPathSegCurvetoCubicAbsImpl *); + ~SVGPathSegCurvetoCubicAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setX1(const float &); + float x1() const; + + void setY1(const float &); + float y1() const; + + void setX2(const float &); + float x2() const; + + void setY2(const float &); + float y2() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoCubicAbsImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoCubicAbsImpl *impl; +}; + +class SVGPathSegCurvetoCubicRelImpl; +class SVGPathSegCurvetoCubicRel : public SVGPathSeg +{ +public: + SVGPathSegCurvetoCubicRel(); + SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &); + SVGPathSegCurvetoCubicRel &operator=(const SVGPathSegCurvetoCubicRel &other); + SVGPathSegCurvetoCubicRel(SVGPathSegCurvetoCubicRelImpl *); + ~SVGPathSegCurvetoCubicRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setX1(const float &); + float x1() const; + + void setY1(const float &); + float y1() const; + + void setX2(const float &); + float x2() const; + + void setY2(const float &); + float y2() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoCubicRelImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoCubicRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoCubicSmooth.cc b/ksvg/dom/SVGPathSegCurvetoCubicSmooth.cc new file mode 100644 index 00000000..5bb9df25 --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoCubicSmooth.cc @@ -0,0 +1,166 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegCurvetoCubicSmooth.h" +#include "SVGPathSegCurvetoCubicSmoothImpl.h" + +using namespace KSVG; + +SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoCubicSmoothAbsImpl(); +} + +SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs(SVGPathSegCurvetoCubicSmoothAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoCubicSmoothAbs::~SVGPathSegCurvetoCubicSmoothAbs() +{ + delete impl; +} + +void SVGPathSegCurvetoCubicSmoothAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoCubicSmoothAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoCubicSmoothAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoCubicSmoothAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegCurvetoCubicSmoothAbs::setX2(const float &x2) +{ + if(impl) + impl->setX2(x2); +} + +float SVGPathSegCurvetoCubicSmoothAbs::x2() const +{ + if(!impl) return -1; + return impl->x2(); +} + +void SVGPathSegCurvetoCubicSmoothAbs::setY2(const float &y2) +{ + if(impl) + impl->setY2(y2); +} + +float SVGPathSegCurvetoCubicSmoothAbs::y2() const +{ + if(!impl) return -1; + return impl->y2(); +} + + + + + +SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoCubicSmoothRelImpl(); +} + +SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel(SVGPathSegCurvetoCubicSmoothRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoCubicSmoothRel::~SVGPathSegCurvetoCubicSmoothRel() +{ + delete impl; +} + +void SVGPathSegCurvetoCubicSmoothRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoCubicSmoothRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoCubicSmoothRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoCubicSmoothRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegCurvetoCubicSmoothRel::setX2(const float &x2) +{ + if(impl) + impl->setX2(x2); +} + +float SVGPathSegCurvetoCubicSmoothRel::x2() const +{ + if(!impl) return -1; + return impl->x2(); +} + +void SVGPathSegCurvetoCubicSmoothRel::setY2(const float &y2) +{ + if(impl) + impl->setY2(y2); +} + +float SVGPathSegCurvetoCubicSmoothRel::y2() const +{ + if(!impl) return -1; + return impl->y2(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoCubicSmooth.h b/ksvg/dom/SVGPathSegCurvetoCubicSmooth.h new file mode 100644 index 00000000..444e54f0 --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoCubicSmooth.h @@ -0,0 +1,91 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegCurvetoCubicSmooth_H +#define SVGPathSegCurvetoCubicSmooth_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegCurvetoCubicSmoothAbsImpl; +class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSeg +{ +public: + SVGPathSegCurvetoCubicSmoothAbs(); + SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &); + SVGPathSegCurvetoCubicSmoothAbs &operator=(const SVGPathSegCurvetoCubicSmoothAbs &other); + SVGPathSegCurvetoCubicSmoothAbs(SVGPathSegCurvetoCubicSmoothAbsImpl *); + ~SVGPathSegCurvetoCubicSmoothAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setX2(const float &); + float x2() const; + + void setY2(const float &); + float y2() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoCubicSmoothAbsImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoCubicSmoothAbsImpl *impl; +}; + +class SVGPathSegCurvetoCubicSmoothRelImpl; +class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSeg +{ +public: + SVGPathSegCurvetoCubicSmoothRel(); + SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &); + SVGPathSegCurvetoCubicSmoothRel &operator=(const SVGPathSegCurvetoCubicSmoothRel &other); + SVGPathSegCurvetoCubicSmoothRel(SVGPathSegCurvetoCubicSmoothRelImpl *); + ~SVGPathSegCurvetoCubicSmoothRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setX2(const float &); + float x2() const; + + void setY2(const float &); + float y2() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoCubicSmoothRelImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoCubicSmoothRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoQuadratic.cc b/ksvg/dom/SVGPathSegCurvetoQuadratic.cc new file mode 100644 index 00000000..7792db31 --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoQuadratic.cc @@ -0,0 +1,166 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegCurvetoQuadratic.h" +#include "SVGPathSegCurvetoQuadraticImpl.h" + +using namespace KSVG; + +SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoQuadraticAbsImpl(); +} + +SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs(SVGPathSegCurvetoQuadraticAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoQuadraticAbs::~SVGPathSegCurvetoQuadraticAbs() +{ + delete impl; +} + +void SVGPathSegCurvetoQuadraticAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoQuadraticAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoQuadraticAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoQuadraticAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegCurvetoQuadraticAbs::setX1(const float &x1) +{ + if(impl) + impl->setX1(x1); +} + +float SVGPathSegCurvetoQuadraticAbs::x1() const +{ + if(!impl) return -1; + return impl->x1(); +} + +void SVGPathSegCurvetoQuadraticAbs::setY1(const float &y1) +{ + if(impl) + impl->setY1(y1); +} + +float SVGPathSegCurvetoQuadraticAbs::y1() const +{ + if(!impl) return -1; + return impl->y1(); +} + + + + + +SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoQuadraticRelImpl(); +} + +SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel(SVGPathSegCurvetoQuadraticRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoQuadraticRel::~SVGPathSegCurvetoQuadraticRel() +{ + delete impl; +} + +void SVGPathSegCurvetoQuadraticRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoQuadraticRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoQuadraticRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoQuadraticRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGPathSegCurvetoQuadraticRel::setX1(const float &x1) +{ + if(impl) + impl->setX1(x1); +} + +float SVGPathSegCurvetoQuadraticRel::x1() const +{ + if(!impl) return -1; + return impl->x1(); +} + +void SVGPathSegCurvetoQuadraticRel::setY1(const float &y1) +{ + if(impl) + impl->setY1(y1); +} + +float SVGPathSegCurvetoQuadraticRel::y1() const +{ + if(!impl) return -1; + return impl->y1(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoQuadratic.h b/ksvg/dom/SVGPathSegCurvetoQuadratic.h new file mode 100644 index 00000000..68bb3364 --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoQuadratic.h @@ -0,0 +1,91 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegCurvetoQuadratic_H +#define SVGPathSegCurvetoQuadratic_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegCurvetoQuadraticAbsImpl; +class SVGPathSegCurvetoQuadraticAbs : public SVGPathSeg +{ +public: + SVGPathSegCurvetoQuadraticAbs(); + SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &); + SVGPathSegCurvetoQuadraticAbs &operator=(const SVGPathSegCurvetoQuadraticAbs &other); + SVGPathSegCurvetoQuadraticAbs(SVGPathSegCurvetoQuadraticAbsImpl *); + ~SVGPathSegCurvetoQuadraticAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setX1(const float &); + float x1() const; + + void setY1(const float &); + float y1() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoQuadraticAbsImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoQuadraticAbsImpl *impl; +}; + +class SVGPathSegCurvetoQuadraticRelImpl; +class SVGPathSegCurvetoQuadraticRel : public SVGPathSeg +{ +public: + SVGPathSegCurvetoQuadraticRel(); + SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &); + SVGPathSegCurvetoQuadraticRel &operator=(const SVGPathSegCurvetoQuadraticRel &other); + SVGPathSegCurvetoQuadraticRel(SVGPathSegCurvetoQuadraticRelImpl *); + ~SVGPathSegCurvetoQuadraticRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + void setX1(const float &); + float x1() const; + + void setY1(const float &); + float y1() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoQuadraticRelImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoQuadraticRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoQuadraticSmooth.cc b/ksvg/dom/SVGPathSegCurvetoQuadraticSmooth.cc new file mode 100644 index 00000000..35a841c8 --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoQuadraticSmooth.cc @@ -0,0 +1,118 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegCurvetoQuadraticSmooth.h" +#include "SVGPathSegCurvetoQuadraticSmoothImpl.h" + +using namespace KSVG; + +SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoQuadraticSmoothAbsImpl(); +} + +SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs(SVGPathSegCurvetoQuadraticSmoothAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoQuadraticSmoothAbs::~SVGPathSegCurvetoQuadraticSmoothAbs() +{ + delete impl; +} + +void SVGPathSegCurvetoQuadraticSmoothAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoQuadraticSmoothAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoQuadraticSmoothAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoQuadraticSmoothAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + + + + + +SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel() : SVGPathSeg() +{ + impl = new SVGPathSegCurvetoQuadraticSmoothRelImpl(); +} + +SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel(SVGPathSegCurvetoQuadraticSmoothRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegCurvetoQuadraticSmoothRel::~SVGPathSegCurvetoQuadraticSmoothRel() +{ + delete impl; +} + +void SVGPathSegCurvetoQuadraticSmoothRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegCurvetoQuadraticSmoothRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegCurvetoQuadraticSmoothRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegCurvetoQuadraticSmoothRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegCurvetoQuadraticSmooth.h b/ksvg/dom/SVGPathSegCurvetoQuadraticSmooth.h new file mode 100644 index 00000000..e5a2782f --- /dev/null +++ b/ksvg/dom/SVGPathSegCurvetoQuadraticSmooth.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegCurvetoQuadraticSmooth_H +#define SVGPathSegCurvetoQuadraticSmooth_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegCurvetoQuadraticSmoothAbsImpl; +class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSeg +{ +public: + SVGPathSegCurvetoQuadraticSmoothAbs(); + SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &); + SVGPathSegCurvetoQuadraticSmoothAbs &operator=(const SVGPathSegCurvetoQuadraticSmoothAbs &other); + SVGPathSegCurvetoQuadraticSmoothAbs(SVGPathSegCurvetoQuadraticSmoothAbsImpl *); + ~SVGPathSegCurvetoQuadraticSmoothAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoQuadraticSmoothAbsImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoQuadraticSmoothAbsImpl *impl; +}; + +class SVGPathSegCurvetoQuadraticSmoothRelImpl; +class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSeg +{ +public: + SVGPathSegCurvetoQuadraticSmoothRel(); + SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &); + SVGPathSegCurvetoQuadraticSmoothRel &operator=(const SVGPathSegCurvetoQuadraticSmoothRel &other); + SVGPathSegCurvetoQuadraticSmoothRel(SVGPathSegCurvetoQuadraticSmoothRelImpl *); + ~SVGPathSegCurvetoQuadraticSmoothRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegCurvetoQuadraticSmoothRelImpl *handle() const { return impl; } + +private: + SVGPathSegCurvetoQuadraticSmoothRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegLineto.cc b/ksvg/dom/SVGPathSegLineto.cc new file mode 100644 index 00000000..faabb04e --- /dev/null +++ b/ksvg/dom/SVGPathSegLineto.cc @@ -0,0 +1,118 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegLineto.h" +#include "SVGPathSegLinetoImpl.h" + +using namespace KSVG; + +SVGPathSegLinetoAbs::SVGPathSegLinetoAbs() : SVGPathSeg() +{ + impl = new SVGPathSegLinetoAbsImpl(); +} + +SVGPathSegLinetoAbs::SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegLinetoAbs::SVGPathSegLinetoAbs(SVGPathSegLinetoAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegLinetoAbs::~SVGPathSegLinetoAbs() +{ + delete impl; +} + +void SVGPathSegLinetoAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegLinetoAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegLinetoAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegLinetoAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + + + + + +SVGPathSegLinetoRel::SVGPathSegLinetoRel() : SVGPathSeg() +{ + impl = new SVGPathSegLinetoRelImpl(); +} + +SVGPathSegLinetoRel::SVGPathSegLinetoRel(const SVGPathSegLinetoRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegLinetoRel::SVGPathSegLinetoRel(SVGPathSegLinetoRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegLinetoRel::~SVGPathSegLinetoRel() +{ + delete impl; +} + +void SVGPathSegLinetoRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegLinetoRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegLinetoRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegLinetoRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegLineto.h b/ksvg/dom/SVGPathSegLineto.h new file mode 100644 index 00000000..df1b9862 --- /dev/null +++ b/ksvg/dom/SVGPathSegLineto.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegLineto_H +#define SVGPathSegLineto_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegLinetoAbsImpl; +class SVGPathSegLinetoAbs : public SVGPathSeg +{ +public: + SVGPathSegLinetoAbs(); + SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &); + SVGPathSegLinetoAbs &operator=(const SVGPathSegLinetoAbs &other); + SVGPathSegLinetoAbs(SVGPathSegLinetoAbsImpl *); + ~SVGPathSegLinetoAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegLinetoAbsImpl *handle() const { return impl; } + +private: + SVGPathSegLinetoAbsImpl *impl; +}; + +class SVGPathSegLinetoRelImpl; +class SVGPathSegLinetoRel : public SVGPathSeg +{ +public: + SVGPathSegLinetoRel(); + SVGPathSegLinetoRel(const SVGPathSegLinetoRel &); + SVGPathSegLinetoRel &operator=(const SVGPathSegLinetoRel &other); + SVGPathSegLinetoRel(SVGPathSegLinetoRelImpl *); + ~SVGPathSegLinetoRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegLinetoRelImpl *handle() const { return impl; } + +private: + SVGPathSegLinetoRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegLinetoHorizontal.cc b/ksvg/dom/SVGPathSegLinetoHorizontal.cc new file mode 100644 index 00000000..22af4e40 --- /dev/null +++ b/ksvg/dom/SVGPathSegLinetoHorizontal.cc @@ -0,0 +1,94 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegLinetoHorizontal.h" +#include "SVGPathSegLinetoHorizontalImpl.h" + +using namespace KSVG; + +SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs() : SVGPathSeg() +{ + impl = new SVGPathSegLinetoHorizontalAbsImpl(); +} + +SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs(SVGPathSegLinetoHorizontalAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegLinetoHorizontalAbs::~SVGPathSegLinetoHorizontalAbs() +{ + delete impl; +} + +void SVGPathSegLinetoHorizontalAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegLinetoHorizontalAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + + + + + +SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel() : SVGPathSeg() +{ + impl = new SVGPathSegLinetoHorizontalRelImpl(); +} + +SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel(SVGPathSegLinetoHorizontalRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegLinetoHorizontalRel::~SVGPathSegLinetoHorizontalRel() +{ + delete impl; +} + +void SVGPathSegLinetoHorizontalRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegLinetoHorizontalRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegLinetoHorizontal.h b/ksvg/dom/SVGPathSegLinetoHorizontal.h new file mode 100644 index 00000000..51edd6ff --- /dev/null +++ b/ksvg/dom/SVGPathSegLinetoHorizontal.h @@ -0,0 +1,73 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegLinetoHorizontal_H +#define SVGPathSegLinetoHorizontal_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegLinetoHorizontalAbsImpl; +class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg +{ +public: + SVGPathSegLinetoHorizontalAbs(); + SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &); + SVGPathSegLinetoHorizontalAbs &operator=(const SVGPathSegLinetoHorizontalAbs &other); + SVGPathSegLinetoHorizontalAbs(SVGPathSegLinetoHorizontalAbsImpl *); + ~SVGPathSegLinetoHorizontalAbs(); + + void setX(const float &); + float x() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegLinetoHorizontalAbsImpl *handle() const { return impl; } + +private: + SVGPathSegLinetoHorizontalAbsImpl *impl; +}; + +class SVGPathSegLinetoHorizontalRelImpl; +class SVGPathSegLinetoHorizontalRel : public SVGPathSeg +{ +public: + SVGPathSegLinetoHorizontalRel(); + SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &); + SVGPathSegLinetoHorizontalRel &operator=(const SVGPathSegLinetoHorizontalRel &other); + SVGPathSegLinetoHorizontalRel(SVGPathSegLinetoHorizontalRelImpl *); + ~SVGPathSegLinetoHorizontalRel(); + + void setX(const float &); + float x() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegLinetoHorizontalRelImpl *handle() const { return impl; } + +private: + SVGPathSegLinetoHorizontalRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegLinetoVertical.cc b/ksvg/dom/SVGPathSegLinetoVertical.cc new file mode 100644 index 00000000..86e0c33e --- /dev/null +++ b/ksvg/dom/SVGPathSegLinetoVertical.cc @@ -0,0 +1,94 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegLinetoVertical.h" +#include "SVGPathSegLinetoVerticalImpl.h" + +using namespace KSVG; + +SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs() : SVGPathSeg() +{ + impl = new SVGPathSegLinetoVerticalAbsImpl(); +} + +SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs(SVGPathSegLinetoVerticalAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegLinetoVerticalAbs::~SVGPathSegLinetoVerticalAbs() +{ + delete impl; +} + +void SVGPathSegLinetoVerticalAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegLinetoVerticalAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + + + + + +SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel() : SVGPathSeg() +{ + impl = new SVGPathSegLinetoVerticalRelImpl(); +} + +SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel(SVGPathSegLinetoVerticalRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegLinetoVerticalRel::~SVGPathSegLinetoVerticalRel() +{ + delete impl; +} + +void SVGPathSegLinetoVerticalRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegLinetoVerticalRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegLinetoVertical.h b/ksvg/dom/SVGPathSegLinetoVertical.h new file mode 100644 index 00000000..05e516a7 --- /dev/null +++ b/ksvg/dom/SVGPathSegLinetoVertical.h @@ -0,0 +1,73 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegLinetoVertical_H +#define SVGPathSegLinetoVertical_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegLinetoVerticalAbsImpl; +class SVGPathSegLinetoVerticalAbs : public SVGPathSeg +{ +public: + SVGPathSegLinetoVerticalAbs(); + SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &); + SVGPathSegLinetoVerticalAbs &operator=(const SVGPathSegLinetoVerticalAbs &other); + SVGPathSegLinetoVerticalAbs(SVGPathSegLinetoVerticalAbsImpl *); + ~SVGPathSegLinetoVerticalAbs(); + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegLinetoVerticalAbsImpl *handle() const { return impl; } + +private: + SVGPathSegLinetoVerticalAbsImpl *impl; +}; + +class SVGPathSegLinetoVerticalRelImpl; +class SVGPathSegLinetoVerticalRel : public SVGPathSeg +{ +public: + SVGPathSegLinetoVerticalRel(); + SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &); + SVGPathSegLinetoVerticalRel &operator=(const SVGPathSegLinetoVerticalRel &other); + SVGPathSegLinetoVerticalRel(SVGPathSegLinetoVerticalRelImpl *); + ~SVGPathSegLinetoVerticalRel(); + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegLinetoVerticalRelImpl *handle() const { return impl; } + +private: + SVGPathSegLinetoVerticalRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegList.cc b/ksvg/dom/SVGPathSegList.cc new file mode 100644 index 00000000..e653adc6 --- /dev/null +++ b/ksvg/dom/SVGPathSegList.cc @@ -0,0 +1,114 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegList.h" +#include "SVGPathSegListImpl.h" + +using namespace KSVG; + +SVGPathSegList::SVGPathSegList() +{ + impl = new SVGPathSegListImpl(); + impl->ref(); +} + +SVGPathSegList::SVGPathSegList(const SVGPathSegList &other) +{ + (*this) = other; +} + +SVGPathSegList &SVGPathSegList::operator=(const SVGPathSegList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPathSegList::SVGPathSegList(SVGPathSegListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPathSegList::~SVGPathSegList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGPathSegList::numberOfItems() const +{ + if(!impl) return 0; + return impl->numberOfItems(); +} + +void SVGPathSegList::clear() +{ + if(impl) + impl->clear(); +} + +SVGPathSeg *SVGPathSegList::initialize(SVGPathSeg *newItem) +{ + if(!impl) return new SVGPathSeg(0); + return new SVGPathSeg(impl->initialize(newItem->handle())); +} + +SVGPathSeg *SVGPathSegList::getItem(unsigned long index) +{ + if(!impl) return new SVGPathSeg(0); + return new SVGPathSeg(impl->getItem(index)); +} + +SVGPathSeg *SVGPathSegList::insertItemBefore(SVGPathSeg *newItem, unsigned long index) +{ + if(!impl) return new SVGPathSeg(0); + return new SVGPathSeg(impl->insertItemBefore(newItem->handle(), index)); +} + +SVGPathSeg *SVGPathSegList::replaceItem(SVGPathSeg *newItem, unsigned long index) +{ + if(!impl) return new SVGPathSeg(0); + return new SVGPathSeg(impl->replaceItem(newItem->handle(), index)); +} + +SVGPathSeg *SVGPathSegList::removeItem(unsigned long index) +{ + if(!impl) return new SVGPathSeg(0); + return new SVGPathSeg(impl->removeItem(index)); +} + +SVGPathSeg *SVGPathSegList::appendItem(SVGPathSeg *newItem) +{ + if(!impl) return new SVGPathSeg(0); + return new SVGPathSeg(impl->appendItem(newItem->handle())); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegList.h b/ksvg/dom/SVGPathSegList.h new file mode 100644 index 00000000..b9feca72 --- /dev/null +++ b/ksvg/dom/SVGPathSegList.h @@ -0,0 +1,59 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegList_H +#define SVGPathSegList_H + +namespace KSVG +{ + +class SVGPathSeg; +class SVGPathSegListImpl; +class SVGPathSegList +{ +public: + SVGPathSegList(); + SVGPathSegList(const SVGPathSegList &); + SVGPathSegList &operator=(const SVGPathSegList &other); + SVGPathSegList(SVGPathSegListImpl *); + ~SVGPathSegList(); + + unsigned long numberOfItems() const; + void clear(); + + SVGPathSeg *initialize(SVGPathSeg *newItem); + SVGPathSeg *getItem(unsigned long index); + SVGPathSeg *insertItemBefore(SVGPathSeg *newItem, unsigned long index); + SVGPathSeg *replaceItem(SVGPathSeg *newItem, unsigned long index); + SVGPathSeg *removeItem(unsigned long index); + SVGPathSeg *appendItem(SVGPathSeg *newItem); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegListImpl *handle() const { return impl; } + +private: + SVGPathSegListImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegMoveto.cc b/ksvg/dom/SVGPathSegMoveto.cc new file mode 100644 index 00000000..c5a1dac0 --- /dev/null +++ b/ksvg/dom/SVGPathSegMoveto.cc @@ -0,0 +1,118 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathSegMoveto.h" +#include "SVGPathSegMovetoImpl.h" + +using namespace KSVG; + +SVGPathSegMovetoAbs::SVGPathSegMovetoAbs() : SVGPathSeg() +{ + impl = new SVGPathSegMovetoAbsImpl(); +} + +SVGPathSegMovetoAbs::SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegMovetoAbs::SVGPathSegMovetoAbs(SVGPathSegMovetoAbsImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegMovetoAbs::~SVGPathSegMovetoAbs() +{ + delete impl; +} + +void SVGPathSegMovetoAbs::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegMovetoAbs::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegMovetoAbs::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegMovetoAbs::y() const +{ + if(!impl) return -1; + return impl->y(); +} + + + + + +SVGPathSegMovetoRel::SVGPathSegMovetoRel() : SVGPathSeg() +{ + impl = new SVGPathSegMovetoRelImpl(); +} + +SVGPathSegMovetoRel::SVGPathSegMovetoRel(const SVGPathSegMovetoRel &other) : SVGPathSeg(other) +{ + impl = other.impl; +} + +SVGPathSegMovetoRel::SVGPathSegMovetoRel(SVGPathSegMovetoRelImpl *other) : SVGPathSeg(other) +{ + impl = other; +} + +SVGPathSegMovetoRel::~SVGPathSegMovetoRel() +{ + delete impl; +} + +void SVGPathSegMovetoRel::setX(const float &x) +{ + if(impl) + impl->setX(x); +} + +float SVGPathSegMovetoRel::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPathSegMovetoRel::setY(const float &y) +{ + if(impl) + impl->setY(y); +} + +float SVGPathSegMovetoRel::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPathSegMoveto.h b/ksvg/dom/SVGPathSegMoveto.h new file mode 100644 index 00000000..874443c3 --- /dev/null +++ b/ksvg/dom/SVGPathSegMoveto.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPathSegMoveto_H +#define SVGPathSegMoveto_H + +#include "SVGPathSeg.h" + +namespace KSVG +{ + +class SVGPathSegMovetoAbsImpl; +class SVGPathSegMovetoAbs : public SVGPathSeg +{ +public: + SVGPathSegMovetoAbs(); + SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &); + SVGPathSegMovetoAbs &operator=(const SVGPathSegMovetoAbs &other); + SVGPathSegMovetoAbs(SVGPathSegMovetoAbsImpl *); + ~SVGPathSegMovetoAbs(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegMovetoAbsImpl *handle() const { return impl; } + +private: + SVGPathSegMovetoAbsImpl *impl; +}; + +class SVGPathSegMovetoRelImpl; +class SVGPathSegMovetoRel : public SVGPathSeg +{ +public: + SVGPathSegMovetoRel(); + SVGPathSegMovetoRel(const SVGPathSegMovetoRel &); + SVGPathSegMovetoRel &operator=(const SVGPathSegMovetoRel &other); + SVGPathSegMovetoRel(SVGPathSegMovetoRelImpl *); + ~SVGPathSegMovetoRel(); + + void setX(const float &); + float x() const; + + void setY(const float &); + float y() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPathSegMovetoRelImpl *handle() const { return impl; } + +private: + SVGPathSegMovetoRelImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPatternElement.cc b/ksvg/dom/SVGPatternElement.cc new file mode 100644 index 00000000..fc387a97 --- /dev/null +++ b/ksvg/dom/SVGPatternElement.cc @@ -0,0 +1,117 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPatternElement.h" +#include "SVGPatternElementImpl.h" +#include "SVGAnimatedTransformList.h" +#include "SVGAnimatedLength.h" +#include "SVGAnimatedEnumeration.h" + +using namespace KSVG; + +SVGPatternElement::SVGPatternElement() : SVGElement(), SVGURIReference(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGFitToViewBox(), SVGUnitTypes() +{ + impl = 0; +} + +SVGPatternElement::SVGPatternElement(const SVGPatternElement &other) : SVGElement(other), SVGURIReference(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFitToViewBox(other), SVGUnitTypes(), impl(0) +{ + (*this) = other; +} + +SVGPatternElement &SVGPatternElement::operator =(const SVGPatternElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGFitToViewBox::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPatternElement::SVGPatternElement(SVGPatternElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFitToViewBox(other), SVGUnitTypes() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPatternElement::~SVGPatternElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedEnumeration SVGPatternElement::patternUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->patternUnits()); +} + +SVGAnimatedEnumeration SVGPatternElement::patternContentUnits() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->patternContentUnits()); +} + +SVGAnimatedTransformList SVGPatternElement::patternTransform() const +{ + if(!impl) return SVGAnimatedTransformList(0); + return SVGAnimatedTransformList(impl->patternTransform()); +} + +SVGAnimatedLength SVGPatternElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGPatternElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGPatternElement::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGPatternElement::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPatternElement.h b/ksvg/dom/SVGPatternElement.h new file mode 100644 index 00000000..9caf5c14 --- /dev/null +++ b/ksvg/dom/SVGPatternElement.h @@ -0,0 +1,188 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGPatternElement_H +#define SVGPatternElement_H + +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGFitToViewBox.h" +#include "SVGUnitTypes.h" + +namespace KSVG +{ + +class SVGAnimatedEnumeration; +class SVGAnimatedTransformList; +class SVGAnimatedLength; +class SVGPatternElementImpl; + +/** + * A pattern is used to fill or stroke an object using a pre-defined graphic object which can be + * replicated ("tiled") at fixed intervals in x and y to cover the areas to be painted. + * + * Patterns are defined using a 'pattern' element and then referenced by properties 'fill' and 'stroke' + * on a given graphics element to indicate that the given element shall be filled or stroked with the + * referenced pattern. + */ +class SVGPatternElement : public SVGElement, + public SVGURIReference, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGFitToViewBox, + public SVGUnitTypes +{ +public: + SVGPatternElement(); + SVGPatternElement(const SVGPatternElement &other); + SVGPatternElement &operator=(const SVGPatternElement &other); + SVGPatternElement(SVGPatternElementImpl *other); + virtual ~SVGPatternElement(); + + /** + * Defines the coordinate system for attributes <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code>. + * If patternUnits="userSpaceOnUse", <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code> represent + * values in the coordinate system that results from taking the current user coordinate system in place at the time when + * the 'pattern' element is referenced (i.e., the user coordinate system for the element referencing the 'pattern' element + * via a 'fill' or 'stroke' property) and then applying the transform specified by attribute patternTransform. + * If patternUnits="objectBoundingBox", the user coordinate system for attributes <code>x</code>, <code>y</code>, <code>width</code>, + * <code>height</code> is established using the bounding box of the element to which the pattern is applied and then applying + * the transform specified by attribute <code>patternTransform</code>. + * If attribute <code>patternUnits</code> is not specified, then the effect is as if a value of objectBoundingBox were specified. + * + * This attribute is animatable. + * + * @return The current target coordinate system mode. + */ + SVGAnimatedEnumeration patternUnits() const; + + /** + * Defines the coordinate system for the contents of the 'pattern'. Note that this attribute has no effect + * if attribute <code>viewBox</code> is specified. + * If patternContentUnits="userSpaceOnUse", the user coordinate system for the contents of the 'pattern' element + * is the coordinate system that results from taking the current user coordinate system in place at the time + * when the 'pattern' element is referenced (i.e., the user coordinate system for the element referencing the + * 'pattern' element via a 'fill' or 'stroke' property) and then applying the transform specified by attribute + * <code>patternTransform</code>. + * If patternContentUnits="objectBoundingBox", the user coordinate system for the contents of the 'pattern' element + * is established using the bounding box of the element to which the pattern is applied and then applying the + * transform specified by attribute <code>patternTransform</code>. + * If attribute <code>patternContentUnits</code> is not specified, then the effect is as if a value of + * userSpaceOnUse were specified. + * + * This attribute is animatable. + * + * @return The current content coordinate system mode. + */ + SVGAnimatedEnumeration patternContentUnits() const; + + /** + * Contains the definition of an optional additional transformation from the pattern coordinate + * system onto the target coordinate system (i.e., userSpaceOnUse or objectBoundingBox). + * This allows for things such as skewing the pattern tiles. This additional transformation + * matrix is post-multiplied to (i.e., inserted to the right of) any previously defined + * transformations, including the implicit transformation necessary to convert from object + * bounding box units to user space. + * If attribute <code>patternTransform</code> is not specified, then the effect is as if an identity transform + * were specified. + * + * This attribute is animatable. + * + * @return The transformation list that is applied to the pattern tile. + */ + SVGAnimatedTransformList patternTransform() const; + + /** + * The attributes <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code> + * indicate how the pattern tiles are placed and spaced. + * These attributes represent coordinates and values in the coordinate space specified by + * the combination of attributes <code>patternUnits</code> and <code>patternTransform</code>. + * If the attribute is not specified, the effect is as if a value of zero were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the pattern tile. + */ + SVGAnimatedLength x() const; + + /** + * @see x + * If the attribute is not specified, the effect is as if a value of zero were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the pattern tile. + */ + SVGAnimatedLength y() const; + + /** + * @see x + * A negative value is an error. A value of zero disables rendering of + * the element (i.e., no paint is applied). + * + * If the attribute is not specified, the effect is as if a value of zero were specified. + * + * This attribute is animatable. + * + * @return The width of the pattern tile. + */ + SVGAnimatedLength width() const; + + /** + * @see x + * A negative value is an error. A value of zero disables rendering of + * the element (i.e., no paint is applied). + * + * If the attribute is not specified, the effect is as if a value of zero were specified. + * + * This attribute is animatable. + * + * @return The height coordinate of the pattern tile. + */ + SVGAnimatedLength height() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPatternElementImpl *handle() const { return impl; } + +private: + SVGPatternElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPoint.cc b/ksvg/dom/SVGPoint.cc new file mode 100644 index 00000000..ac194e7e --- /dev/null +++ b/ksvg/dom/SVGPoint.cc @@ -0,0 +1,97 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPoint.h" +#include "SVGMatrix.h" +#include "SVGPointImpl.h" + +using namespace KSVG; + +SVGPoint::SVGPoint() +{ + impl = new SVGPointImpl(); + impl->ref(); +} + +SVGPoint::SVGPoint(const SVGPoint &other) : impl(0) +{ + (*this) = other; +} + +SVGPoint &SVGPoint::operator=(const SVGPoint &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPoint::SVGPoint(SVGPointImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPoint::~SVGPoint() +{ + if(impl) + impl->deref(); +} + +void SVGPoint::setX(float x) +{ + if(impl) + impl->setX(x); +} + +float SVGPoint::x() +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGPoint::setY(float y) +{ + if(impl) + impl->setY(y); +} + +float SVGPoint::y() +{ + if(!impl) return -1; + return impl->y(); +} + +SVGPoint SVGPoint::matrixTransform(SVGMatrix &matrix) +{ + if(!impl) return SVGPoint(0); + return SVGPoint(impl->matrixTransform(*matrix.handle())); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPoint.h b/ksvg/dom/SVGPoint.h new file mode 100644 index 00000000..84b38e86 --- /dev/null +++ b/ksvg/dom/SVGPoint.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPoint_H +#define SVGPoint_H + +namespace KSVG +{ + +class SVGMatrix; +class SVGPointImpl; +class SVGPoint +{ +public: + SVGPoint(); + SVGPoint(const SVGPoint &); + SVGPoint &operator=(const SVGPoint &); + SVGPoint(SVGPointImpl *); + ~SVGPoint(); + + void setX(float x); + float x(); + + void setY(float y); + float y(); + + SVGPoint matrixTransform(SVGMatrix &matrix); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPointImpl *handle() const { return impl; } + +private: + SVGPointImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPointList.cc b/ksvg/dom/SVGPointList.cc new file mode 100644 index 00000000..963b1c60 --- /dev/null +++ b/ksvg/dom/SVGPointList.cc @@ -0,0 +1,114 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPoint.h" +#include "SVGPointImpl.h" +#include "SVGPointList.h" +#include "SVGPointListImpl.h" + +using namespace KSVG; + +SVGPointList::SVGPointList() +{ + impl = new SVGPointListImpl(); + impl->ref(); +} + +SVGPointList::SVGPointList(const SVGPointList &other) : impl(0) +{ + (*this) = other; +} + +SVGPointList &SVGPointList::operator=(const SVGPointList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPointList::SVGPointList(SVGPointListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPointList::~SVGPointList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGPointList::numberOfItems() const +{ + if(!impl) return 0; + return impl->numberOfItems(); +} + +void SVGPointList::clear() +{ + if(impl) + impl->clear(); +} + +SVGPoint *SVGPointList::initialize(SVGPoint *newItem) +{ + if(!impl) return new SVGPoint(0); + return new SVGPoint(impl->initialize(newItem->handle())); +} + +SVGPoint *SVGPointList::getItem(unsigned long index) +{ + if(!impl) return new SVGPoint(0); + return new SVGPoint(impl->getItem(index)); +} + +SVGPoint *SVGPointList::insertItemBefore(SVGPoint *newItem, unsigned long index) +{ + if(!impl) return new SVGPoint(0); + return new SVGPoint(impl->insertItemBefore(newItem->handle(), index)); +} + +SVGPoint *SVGPointList::replaceItem(SVGPoint *newItem, unsigned long index) +{ + if(!impl) return new SVGPoint(0); + return new SVGPoint(impl->replaceItem(newItem->handle(), index)); +} + +SVGPoint *SVGPointList::removeItem(unsigned long index) +{ + if(!impl) return new SVGPoint(0); + return new SVGPoint(impl->removeItem(index)); +} + +SVGPoint *SVGPointList::appendItem(SVGPoint *newItem) +{ + if(!impl) return new SVGPoint(0); + return new SVGPoint(impl->appendItem(newItem->handle())); +} diff --git a/ksvg/dom/SVGPointList.h b/ksvg/dom/SVGPointList.h new file mode 100644 index 00000000..cfdec4c5 --- /dev/null +++ b/ksvg/dom/SVGPointList.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPointList_H +#define SVGPointList_H + +namespace KSVG +{ + +class SVGPoint; +class SVGPointListImpl; +class SVGPointList +{ +public: + SVGPointList(); + SVGPointList(const SVGPointList &); + SVGPointList &operator=(const SVGPointList &); + SVGPointList(SVGPointListImpl *); + ~SVGPointList(); + + unsigned long numberOfItems() const; + void clear(); + + SVGPoint *initialize(SVGPoint *newItem); + SVGPoint *getItem(unsigned long index); + SVGPoint *insertItemBefore(SVGPoint *newItem, unsigned long index); + SVGPoint *replaceItem(SVGPoint *newItem, unsigned long index); + SVGPoint *removeItem(unsigned long index); + SVGPoint *appendItem(SVGPoint *newItem); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPointListImpl *handle() const { return impl; } + +private: + SVGPointListImpl *impl; +}; + +} + +#endif diff --git a/ksvg/dom/SVGPolygonElement.cc b/ksvg/dom/SVGPolygonElement.cc new file mode 100644 index 00000000..043c19df --- /dev/null +++ b/ksvg/dom/SVGPolygonElement.cc @@ -0,0 +1,84 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGPolygonElement.h" +#include "SVGPolygonElementImpl.h" +#include "SVGPointList.h" + +using namespace KSVG; + +SVGPolygonElement::SVGPolygonElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGAnimatedPoints() +{ + impl = 0; +} + +SVGPolygonElement::SVGPolygonElement(const SVGPolygonElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPoints(other), impl(0) +{ + (*this) = other; +} + +SVGPolygonElement &SVGPolygonElement::operator=(const SVGPolygonElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + SVGAnimatedPoints::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + return *this; +} + +SVGPolygonElement::SVGPolygonElement(SVGPolygonElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPoints(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPolygonElement::~SVGPolygonElement() +{ + if(impl) + impl->deref(); +} + +SVGPointList SVGPolygonElement::points() +{ + if(!impl) return SVGPointList(0); + return SVGPointList(impl->points()); +} + +SVGPointList SVGPolygonElement::animatedPoints() +{ + if(!impl) return SVGPointList(0); + return SVGPointList(impl->animatedPoints()); +} diff --git a/ksvg/dom/SVGPolygonElement.h b/ksvg/dom/SVGPolygonElement.h new file mode 100644 index 00000000..526e9815 --- /dev/null +++ b/ksvg/dom/SVGPolygonElement.h @@ -0,0 +1,106 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + +#ifndef SVGPolygonElement_H +#define SVGPolygonElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGAnimatedPoints.h" + +namespace KSVG +{ + +class SVGPointList; +class SVGPolygonElementImpl; + +/** + * The <code>polygon</code> element defines a closed shape consisting + * of connected straight line segments. + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/shapes.html#PolylineElement">9.7 The + * 'polygon' element</a>. + */ +class SVGPolygonElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGAnimatedPoints +{ +public: + SVGPolygonElement(); + SVGPolygonElement(const SVGPolygonElement &); + SVGPolygonElement &operator=(const SVGPolygonElement &); + SVGPolygonElement(SVGPolygonElementImpl *); + ~SVGPolygonElement(); + + /** + * Provides access to the base (i.e., static) contents of the + * points attribute. + * + * @return A static list of the polygons points + */ + SVGPointList points(); + + /** + * Provides access to the current animated contents of the points + * attribute. + * If the given attribute or property is being animated, contains + * the current animated value of the attribute or property. + * If the given attribute or property is not currently being + * animated, contains the same value as <code>points</code>'. + * + * This attribute is animatable. + * + * @return A list of the polygons points + */ + SVGPointList animatedPoints(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPolygonElementImpl *handle() const { return impl; } + +private: + SVGPolygonElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPolylineElement.cc b/ksvg/dom/SVGPolylineElement.cc new file mode 100644 index 00000000..789c5847 --- /dev/null +++ b/ksvg/dom/SVGPolylineElement.cc @@ -0,0 +1,85 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGPolylineElement.h" +#include "SVGPolylineElementImpl.h" +#include "SVGPointList.h" + +using namespace KSVG; + +SVGPolylineElement::SVGPolylineElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGAnimatedPoints() +{ + impl = 0; +} + +SVGPolylineElement::SVGPolylineElement(const SVGPolylineElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPoints(other), impl(0) +{ + (*this) = other; +} + +SVGPolylineElement &SVGPolylineElement::operator=(const SVGPolylineElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + SVGAnimatedPoints::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPolylineElement::SVGPolylineElement(SVGPolylineElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPoints(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPolylineElement::~SVGPolylineElement() +{ + if(impl) + impl->deref(); +} + +SVGPointList SVGPolylineElement::points() +{ + if(!impl) return SVGPointList(0); + return SVGPointList(impl->points()); +} + +SVGPointList SVGPolylineElement::animatedPoints() +{ + if(!impl) return SVGPointList(0); + return SVGPointList(impl->animatedPoints()); +} diff --git a/ksvg/dom/SVGPolylineElement.h b/ksvg/dom/SVGPolylineElement.h new file mode 100644 index 00000000..35e948f7 --- /dev/null +++ b/ksvg/dom/SVGPolylineElement.h @@ -0,0 +1,106 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + +#ifndef SVGPolylineElement_H +#define SVGPolylineElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGAnimatedPoints.h" + +namespace KSVG +{ + +/** + * The <code>polyline</code> element defines a set of connected + * straight line segments. Typically, <code>polyline</code> elements + * define open shapes. + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/shapes.html#PolylineElement">9.6 The + * 'polyline' element</a>. + */ +class SVGPointList; +class SVGPolylineElementImpl; +class SVGPolylineElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGAnimatedPoints +{ +public: + SVGPolylineElement(); + SVGPolylineElement(const SVGPolylineElement &); + SVGPolylineElement &operator=(const SVGPolylineElement &); + SVGPolylineElement(SVGPolylineElementImpl *); + ~SVGPolylineElement(); + + /** + * Provides access to the base (i.e., static) contents of the + * points attribute. + * + * @return A static list of the polygons points + */ + SVGPointList points(); + + /** + * Provides access to the current animated contents of the points + * attribute. + * If the given attribute or property is being animated, contains + * the current animated value of the attribute or property. + * If the given attribute or property is not currently being + * animated, contains the same value as <code>points</code>'. + * + * This attribute is animatable. + * + * @return A list of the polygons points + */ + SVGPointList animatedPoints(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPolylineElementImpl *handle() const { return impl; } + +private: + SVGPolylineElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPreserveAspectRatio.cc b/ksvg/dom/SVGPreserveAspectRatio.cc new file mode 100644 index 00000000..f86ca1b4 --- /dev/null +++ b/ksvg/dom/SVGPreserveAspectRatio.cc @@ -0,0 +1,81 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPreserveAspectRatio.h" +#include "SVGPreserveAspectRatioImpl.h" + +using namespace KSVG; + +SVGPreserveAspectRatio::SVGPreserveAspectRatio() +{ + impl = new SVGPreserveAspectRatioImpl(); +} + +SVGPreserveAspectRatio::SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other) +{ + impl = other.impl; +} + +SVGPreserveAspectRatio &SVGPreserveAspectRatio::operator=(const SVGPreserveAspectRatio &other) +{ + if(impl == other.impl) + return *this; + + delete impl; + impl = other.impl; + + return *this; +} + +SVGPreserveAspectRatio::SVGPreserveAspectRatio(SVGPreserveAspectRatioImpl *other) +{ + impl = other; +} + +SVGPreserveAspectRatio::~SVGPreserveAspectRatio() +{ + delete impl; +} + +void SVGPreserveAspectRatio::setAlign(unsigned short align) +{ + if(impl) + impl->setAlign(align); +} + +unsigned short SVGPreserveAspectRatio::align() const +{ + if(!impl) return SVG_PRESERVEASPECTRATIO_UNKNOWN; + return impl->align(); +} + +void SVGPreserveAspectRatio::setMeetOrSlice(unsigned short meetOrSlice) +{ + if(impl) + impl->setMeetOrSlice(meetOrSlice); +} + +unsigned short SVGPreserveAspectRatio::meetOrSlice() const +{ + if(!impl) return SVG_MEETORSLICE_UNKNOWN; + return impl->meetOrSlice(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGPreserveAspectRatio.h b/ksvg/dom/SVGPreserveAspectRatio.h new file mode 100644 index 00000000..3c1a4823 --- /dev/null +++ b/ksvg/dom/SVGPreserveAspectRatio.h @@ -0,0 +1,76 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGPreserveAspectRatio_H +#define SVGPreserveAspectRatio_H + +namespace KSVG +{ + +enum +{ + SVG_PRESERVEASPECTRATIO_UNKNOWN = 0, + SVG_PRESERVEASPECTRATIO_NONE = 1, + SVG_PRESERVEASPECTRATIO_XMINYMIN = 2, + SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3, + SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4, + SVG_PRESERVEASPECTRATIO_XMINYMID = 5, + SVG_PRESERVEASPECTRATIO_XMIDYMID = 6, + SVG_PRESERVEASPECTRATIO_XMAXYMID = 7, + SVG_PRESERVEASPECTRATIO_XMINYMAX = 8, + SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9, + SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10 +}; + +enum +{ + SVG_MEETORSLICE_UNKNOWN = 0, + SVG_MEETORSLICE_MEET = 1, + SVG_MEETORSLICE_SLICE = 2 +}; + +class SVGPreserveAspectRatioImpl; +class SVGPreserveAspectRatio +{ +public: + SVGPreserveAspectRatio(); + SVGPreserveAspectRatio(const SVGPreserveAspectRatio &); + SVGPreserveAspectRatio &operator=(const SVGPreserveAspectRatio &other); + SVGPreserveAspectRatio(SVGPreserveAspectRatioImpl *); + ~SVGPreserveAspectRatio(); + + void setAlign(unsigned short); + unsigned short align() const; + + void setMeetOrSlice(unsigned short); + unsigned short meetOrSlice() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGPreserveAspectRatioImpl *handle() const { return impl; } + +protected: + SVGPreserveAspectRatioImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRadialGradientElement.cc b/ksvg/dom/SVGRadialGradientElement.cc new file mode 100644 index 00000000..02f3d5f2 --- /dev/null +++ b/ksvg/dom/SVGRadialGradientElement.cc @@ -0,0 +1,98 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGRadialGradientElement.h" +#include "SVGRadialGradientElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGRadialGradientElement::SVGRadialGradientElement() : SVGGradientElement() +{ + impl = 0; +} + +SVGRadialGradientElement::SVGRadialGradientElement(const SVGRadialGradientElement &other) : SVGGradientElement(other), impl(0) +{ + (*this) = other; +} + +SVGRadialGradientElement &SVGRadialGradientElement::operator =(const SVGRadialGradientElement &other) +{ + SVGGradientElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGRadialGradientElement::SVGRadialGradientElement(SVGRadialGradientElementImpl *other) : SVGGradientElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGRadialGradientElement::~SVGRadialGradientElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGRadialGradientElement::cx() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->cx()); +} + +SVGAnimatedLength SVGRadialGradientElement::cy() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->cy()); +} + +SVGAnimatedLength SVGRadialGradientElement::r() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->r()); +} + +SVGAnimatedLength SVGRadialGradientElement::fx() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->fx()); +} + +SVGAnimatedLength SVGRadialGradientElement::fy() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->fy()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRadialGradientElement.h b/ksvg/dom/SVGRadialGradientElement.h new file mode 100644 index 00000000..c60a00ed --- /dev/null +++ b/ksvg/dom/SVGRadialGradientElement.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGRadialGradientElement_H +#define SVGRadialGradientElement_H + +#include "SVGGradientElement.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGRadialGradientElementImpl; +class SVGRadialGradientElement : public SVGGradientElement +{ +public: + SVGRadialGradientElement(); + SVGRadialGradientElement(const SVGRadialGradientElement &other); + SVGRadialGradientElement &operator=(const SVGRadialGradientElement &other); + SVGRadialGradientElement(SVGRadialGradientElementImpl *other); + virtual ~SVGRadialGradientElement(); + + SVGAnimatedLength cx() const; + SVGAnimatedLength cy() const; + SVGAnimatedLength r() const; + SVGAnimatedLength fx() const; + SVGAnimatedLength fy() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGRadialGradientElementImpl *handle() const { return impl; } + +private: + SVGRadialGradientElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRect.cc b/ksvg/dom/SVGRect.cc new file mode 100644 index 00000000..39ba48a4 --- /dev/null +++ b/ksvg/dom/SVGRect.cc @@ -0,0 +1,114 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGRect.h" +#include "SVGRectImpl.h" + +using namespace KSVG; + +SVGRect::SVGRect() +{ + impl = new SVGRectImpl(); + impl->ref(); +} + +SVGRect::SVGRect(const SVGRect &other) : impl(0) +{ + (*this) = other; +} + +SVGRect &SVGRect::operator=(const SVGRect &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGRect::SVGRect(SVGRectImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGRect::~SVGRect() +{ + if(impl) + impl->deref(); +} + +void SVGRect::setX(float x) +{ + if(impl) + impl->setX(x); +} + +float SVGRect::x() const +{ + if(!impl) return -1; + return impl->x(); +} + +void SVGRect::setY(float y) +{ + if(impl) + impl->setY(y); +} + +float SVGRect::y() const +{ + if(!impl) return -1; + return impl->y(); +} + +void SVGRect::setWidth(float width) +{ + if(impl) + impl->setWidth(width); +} + +float SVGRect::width() const +{ + if(!impl) return -1; + return impl->width(); +} + +void SVGRect::setHeight(float height) +{ + if(impl) + impl->setHeight(height); +} + +float SVGRect::height() const +{ + if(!impl) return -1; + return impl->height(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRect.h b/ksvg/dom/SVGRect.h new file mode 100644 index 00000000..e9be6849 --- /dev/null +++ b/ksvg/dom/SVGRect.h @@ -0,0 +1,87 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGRect_H +#define SVGRect_H + +namespace KSVG +{ + +/** + * Rectangles are defined as consisting of a (x,y) coordinate pair + * identifying a minimum X value, a minimum Y value, and a width and + * height, which are usually constrained to be non-negative. + */ +class SVGRectImpl; +class SVGRect +{ +public: + SVGRect(); + SVGRect(const SVGRect &); + SVGRect &operator=(const SVGRect &); + SVGRect(SVGRectImpl *); + ~SVGRect(); + + /** + * Corresponds to attribute <code>x</code> on the given element. + */ + void setX(float x); + float x() const; + + /** + * Corresponds to attribute <code>y</code> on the given element. + */ + void setY(float y); + float y() const; + + /** + * Corresponds to attribute <code>width</code> on the given element. + */ + void setWidth(float width); + float width() const; + + /** + * Corresponds to attribute <code>height</code> on the given element. + */ + void setHeight(float height); + float height() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGRectImpl *handle() const { return impl; } + +private: + SVGRectImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRectElement.cc b/ksvg/dom/SVGRectElement.cc new file mode 100644 index 00000000..ef4038d4 --- /dev/null +++ b/ksvg/dom/SVGRectElement.cc @@ -0,0 +1,109 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGRectElement.h" +#include "SVGRectElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGRectElement::SVGRectElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGRectElement::SVGRectElement(const SVGRectElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGRectElement &SVGRectElement::operator=(const SVGRectElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGRectElement::SVGRectElement(SVGRectElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGRectElement::~SVGRectElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGRectElement::x() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGRectElement::y() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGRectElement::width() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGRectElement::height() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +SVGAnimatedLength SVGRectElement::rx() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->rx()); +} + +SVGAnimatedLength SVGRectElement::ry() +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->ry()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRectElement.h b/ksvg/dom/SVGRectElement.h new file mode 100644 index 00000000..2a77420d --- /dev/null +++ b/ksvg/dom/SVGRectElement.h @@ -0,0 +1,173 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + +#ifndef SVGRectElement_H +#define SVGRectElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGRectElementImpl; + +/** + * The <code> rect </code> element defines a rectangle which is + * axis-aligned with the current <a href = + * "http://www.w3.org/TR/SVG/intro.html#TermUserCoordinateSystem"> + * user coordinate</a> system. + * Rounded rectangles can be achieved by setting appropriate values + * for attributes <code> x </code> and <code> y</code>. + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/shapes.html#RectElement"> 9.2 The + * 'rect' element</a>. + */ +class SVGRectElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGRectElement(); + SVGRectElement(const SVGRectElement &); + SVGRectElement &operator=(const SVGRectElement &other); + SVGRectElement(SVGRectElementImpl *); + ~SVGRectElement(); + + /** + * The x-axis coordinate of the side of the rectangle which has + * the smaller x-axis coordinate value in the current user + * coordinate system. + * If the attribute is not specified, the effect is as if a value + * of "0" were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the rectangle. + */ + SVGAnimatedLength x(); + + /** + * The y-axis coordinate of the side of the rectangle which has + * the smaller y-axis coordinate value in the current user + * coordinate system. If the attribute is not specified, the + * effect is as if a value of "0" were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the rectangle. + */ + SVGAnimatedLength y(); + + /** + * The width of the rectangle. A negative value is an error (see + * <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> + * Error processing</a>). + * A value of zero disables rendering of the element. + * + * This attribute is animatable. + * + * @return The width of the rectangle. + */ + SVGAnimatedLength width(); + + /** + * The heigth of the rectangle. A negative value is an error (see + * <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> + * Error processing</a>). A value of zero disables rendering of + * the element. + * + * This attribute is animatable. + * + * @return The height of the rectangle + */ + SVGAnimatedLength height(); + + /** + * For rounded rectangles, the x-axis radius of the ellipse used + * to round off the corners of the rectangle. A negative value is + * an error (see <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> Error + * processing</a>). + * + * See <a href="http://www.w3.org/TR/SVG/shapes.html#RectElement"> + * 9.2 The 'rect' element </a> for info about what happens if the + * attribute is not specified. + * + * This attribute is animatable + * + * @return The x-axis radius of the ellipse used to round off the + * corners of the rectangle. + */ + SVGAnimatedLength rx(); + + /** + * For rounded rectangles, the y-axis radius of the ellipse used + * to round off the corners of the rectangle. A negative value is + * an error (see <a href = + * "http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing">Error + * processing</a>). + * + * See <a href="http://www.w3.org/TR/SVG/shapes.html#RectElement"> + * 9.2 The 'rect' element </a> for info about what happens if the + * attribute is not specified. + * + * This attribute is animatable + * + * @return The y-axis radius of the ellipse used to round off the + * corners of the rectangle. + */ + SVGAnimatedLength ry(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGRectElementImpl *handle() const { return impl; } + +private: + SVGRectElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGRenderingIntent.h b/ksvg/dom/SVGRenderingIntent.h new file mode 100644 index 00000000..5293f92b --- /dev/null +++ b/ksvg/dom/SVGRenderingIntent.h @@ -0,0 +1,41 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGRenderingIntent_H +#define SVGRenderingIntent_H + +namespace KSVG +{ + +enum +{ + RENDERING_INTENT_UNKNOWN = 0, + RENDERING_INTENT_AUTO = 1, + RENDERING_INTENT_PERCEPTUAL = 2, + RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3, + RENDERING_INTENT_SATURATION = 4, + RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5 +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSVGElement.cc b/ksvg/dom/SVGSVGElement.cc new file mode 100644 index 00000000..204de90c --- /dev/null +++ b/ksvg/dom/SVGSVGElement.cc @@ -0,0 +1,337 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGRect.h" +#include "SVGSVGElement.h" +#include "SVGSVGElementImpl.h" +#include "SVGAnimatedLength.h" +#include "SVGPoint.h" +#include "SVGNumber.h" +#include "SVGAngle.h" +#include "SVGMatrix.h" +#include "SVGLength.h" +#include "SVGRect.h" +#include "SVGTransform.h" +#include "SVGViewSpec.h" +#include <kdebug.h> + +using namespace KSVG; + +SVGSVGElement::SVGSVGElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGLocatable(), SVGFitToViewBox(), SVGZoomAndPan() +{ + impl = 0; +} + +SVGSVGElement::SVGSVGElement(const SVGSVGElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGLocatable(other), SVGFitToViewBox(other), SVGZoomAndPan(other), impl(0) +{ + (*this) = other; +} + +SVGSVGElement &SVGSVGElement::operator=(const SVGSVGElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGLocatable::operator=(other); + SVGFitToViewBox::operator=(other); + SVGZoomAndPan::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGSVGElement::SVGSVGElement(SVGSVGElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGLocatable(other), SVGFitToViewBox(other), SVGZoomAndPan(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGSVGElement::~SVGSVGElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGSVGElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGSafeCreator<SVGAnimatedLength, SVGAnimatedLengthImpl>::create(impl->x()); +} + +SVGAnimatedLength SVGSVGElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGSafeCreator<SVGAnimatedLength, SVGAnimatedLengthImpl>::create(impl->y()); +} + +SVGAnimatedLength SVGSVGElement::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGSafeCreator<SVGAnimatedLength, SVGAnimatedLengthImpl>::create(impl->width()); +} + +SVGAnimatedLength SVGSVGElement::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGSafeCreator<SVGAnimatedLength, SVGAnimatedLengthImpl>::create(impl->height()); +} + +void SVGSVGElement::setContentScriptType(const DOM::DOMString &contentScriptType) +{ + if(impl) + setContentScriptType(contentScriptType); +} + +DOM::DOMString SVGSVGElement::contentScriptType() const +{ + if(!impl) return DOM::DOMString(); + return impl->contentScriptType(); +} + +void SVGSVGElement::setContentStyleType(const DOM::DOMString &contentStyleType) +{ + if(impl) + setContentStyleType(contentStyleType); +} + +DOM::DOMString SVGSVGElement::contentStyleType() const +{ + if(!impl) return DOM::DOMString(); + return impl->contentStyleType(); +} + +SVGRect SVGSVGElement::viewport() const +{ + if(!impl) return SVGRect(0); + return SVGRect(impl->viewport()); +} + +float SVGSVGElement::pixelUnitToMillimeterX() const +{ + if(!impl) return -1; + return impl->pixelUnitToMillimeterX(); +} + +float SVGSVGElement::pixelUnitToMillimeterY() const +{ + if(!impl) return -1; + return impl->pixelUnitToMillimeterY(); +} + +float SVGSVGElement::screenPixelToMillimeterX() const +{ + if(!impl) return -1; + return impl->screenPixelToMillimeterX(); +} + +float SVGSVGElement::screenPixelToMillimeterY() const +{ + if(!impl) return -1; + return impl->screenPixelToMillimeterY(); +} + +void SVGSVGElement::setUseCurrentView(bool useCurrentView) +{ + if(impl) + impl->setUseCurrentView(useCurrentView); +} + +bool SVGSVGElement::useCurrentView() const +{ + if(!impl) return false; + return impl->useCurrentView(); +} + +SVGViewSpec SVGSVGElement::currentView() const +{ + if(!impl) return SVGViewSpec(0); + return impl->currentView(); +} + +void SVGSVGElement::setCurrentScale(float currentScale) +{ + if(impl) + impl->setCurrentScale(currentScale); +} + +float SVGSVGElement::currentScale() const +{ + if(!impl) return -1; + return impl->currentScale(); +} + +SVGPoint SVGSVGElement::currentTranslate() const +{ + if(!impl) return SVGPoint(0); + return SVGSafeCreator<SVGPoint, SVGPointImpl>::create(impl->currentTranslate()); +} + +unsigned long SVGSVGElement::suspendRedraw(unsigned long time) +{ + if(!impl) return 0; + return impl->suspendRedraw(time); +} + +void SVGSVGElement::unsuspendRedraw(unsigned long id) +{ + if(impl) + impl->unsuspendRedraw(id); +} + +void SVGSVGElement::unsuspendRedrawAll() +{ + if(impl) + impl->unsuspendRedrawAll(); +} + +void SVGSVGElement::forceRedraw() +{ + if(impl) + impl->forceRedraw(); +} + +void SVGSVGElement::pauseAnimations() +{ + if(impl) + impl->pauseAnimations(); +} + +void SVGSVGElement::unpauseAnimations() +{ + if(impl) + impl->unpauseAnimations(); +} + +bool SVGSVGElement::animationsPaused() +{ + if(!impl) return false; + return impl->animationsPaused(); +} + +float SVGSVGElement::getCurrentTime() +{ + if(!impl) return -1; + return impl->getCurrentTime(); +} + +void SVGSVGElement::setCurrentTime(float time) +{ + if(impl) + impl->setCurrentTime(time); +} + +DOM::NodeList SVGSVGElement::getIntersectionList(const SVGRect &rect,const SVGElement &referenceElement) +{ + if(!impl) return DOM::NodeList(); + return impl->getIntersectionList(rect.handle(), referenceElement.handle()); +} + +DOM::NodeList SVGSVGElement::getEnclosureList(const SVGRect &rect,const SVGElement &referenceElement) +{ + if(!impl) return DOM::NodeList(); + return impl->getEnclosureList(rect.handle(), referenceElement.handle()); +} + +bool SVGSVGElement::checkIntersection(const SVGElement &element,const SVGRect &rect) +{ + if(!impl) return false; + return impl->checkIntersection(element.handle(), rect.handle()); +} + +bool SVGSVGElement::checkEnclosure(const SVGElement &element,const SVGRect &rect) +{ + if(!impl) return false; + return impl->checkEnclosure(element.handle(), rect.handle()); +} + +void SVGSVGElement::deSelectAll() +{ + if(impl) + impl->deSelectAll(); +} + +SVGNumber SVGSVGElement::createSVGNumber() +{ + if(!impl) return SVGNumber(0); + return SVGSafeCreator<SVGNumber, SVGNumberImpl>::create(impl->createSVGNumber()); +} + +SVGLength SVGSVGElement::createSVGLength() +{ + if(!impl) return SVGLength(0); + return SVGSafeCreator<SVGLength, SVGLengthImpl>::create(impl->createSVGLength()); +} + +SVGAngle SVGSVGElement::createSVGAngle() +{ + if(!impl) return SVGAngle(0); + return SVGSafeCreator<SVGAngle, SVGAngleImpl>::create(impl->createSVGAngle()); +} + +SVGPoint SVGSVGElement::createSVGPoint() +{ + if(!impl) return SVGPoint(0); + return SVGSafeCreator<SVGPoint, SVGPointImpl>::create(impl->createSVGPoint()); +} + +SVGMatrix SVGSVGElement::createSVGMatrix() +{ + if(!impl) return SVGMatrix(0); + return SVGSafeCreator<SVGMatrix, SVGMatrixImpl>::create(impl->createSVGMatrix()); +} + +SVGRect SVGSVGElement::createSVGRect() +{ + if(!impl) return SVGRect(0); + return SVGSafeCreator<SVGRect, SVGRectImpl>::create(impl->createSVGRect()); +} + +SVGTransform SVGSVGElement::createSVGTransform() +{ + if(!impl) return SVGTransform(0); + return SVGSafeCreator<SVGTransform, SVGTransformImpl>::create(impl->createSVGTransform()); +} + +SVGTransform SVGSVGElement::createSVGTransformFromMatrix(const SVGMatrix &matrix) +{ + if(!impl) return SVGTransform(0); + return SVGSafeCreator<SVGTransform, SVGTransformImpl>::create(impl->createSVGTransformFromMatrix(matrix.handle())); +} + +SVGElement SVGSVGElement::getElementById(const DOM::DOMString &elementId) +{ + if(!impl) return SVGElement(0); + return SVGSafeCreator<SVGElement, SVGElementImpl>::create(impl->getElementById(elementId)); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSVGElement.h b/ksvg/dom/SVGSVGElement.h new file mode 100644 index 00000000..59621e2e --- /dev/null +++ b/ksvg/dom/SVGSVGElement.h @@ -0,0 +1,581 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGSVGElement_H +#define SVGSVGElement_H + +#include <dom/dom_string.h> +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGLocatable.h" +#include "SVGFitToViewBox.h" +#include "SVGZoomAndPan.h" + +namespace KSVG +{ +class SVGAnimatedLength; +class SVGPoint; +class SVGNumber; +class SVGAngle; +class SVGMatrix; +class SVGLength; +class SVGRect; +class SVGTransform; +class SVGViewSpec; +class SVGSVGElementImpl; + +/** + * A key interface definition is the SVGSVGElement interface, which is the + * interface that corresponds to the 'svg' element. This interface contains + * various miscellaneous commonly-used utility methods, such as matrix + * operations and the ability to control the time of redraw on visual + * rendering devices. SVGSVGElement extends ViewCSS and DocumentCSS to provide + * access to the computed values of properties and the override style sheet + * as described in DOM2. + * + * For more information : + * <a href="http://www.w3.org/TR/SVG/struct.html#NewDocument"> + * the 'svg' element</a> + */ +class SVGSVGElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGLocatable, + public SVGFitToViewBox, + public SVGZoomAndPan + //public events::EventTarget, + //public events::DocumentEvent, + //public css::ViewCSS, + //public css::DocumentCSS +{ +public: + SVGSVGElement(); + SVGSVGElement(const SVGSVGElement &); + SVGSVGElement &operator=(const SVGSVGElement &other); + SVGSVGElement(SVGSVGElementImpl *); + virtual ~SVGSVGElement(); + + /** + * (Has no meaning or effect on outermost 'svg' elements.) + * The x-axis coordinate of one corner of the rectangular region into which an + * embedded 'svg' element is placed. If the attribute is not specified, the + * effect is as if a value of "0" were specified. + * + * This attribute is animatable. + * + * @return The x-axis coordinate of the viewport of the 'svg' element. + */ + SVGAnimatedLength x() const; + + /** + * (Has no meaning or effect on outermost 'svg' elements.) + * The x-axis coordinate of one corner of the rectangular region into which an + * embedded 'svg' element is placed. If the attribute is not specified, the + * effect is as if a value of "0" were specified. + * + * This attribute is animatable. + * + * @return The y-axis coordinate of the viewport of the 'svg' element. + */ + SVGAnimatedLength y() const; + + /** + * For outermost 'svg' elements, the intrinsic width of the SVG document + * fragment. For embedded 'svg' elements, the width of the rectangular + * region into which the 'svg' element is placed. + * A negative value is an error (see <a + * href="http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> Error + * processing </a>). + * A value of zero disables rendering of the element. If the attribute is not + * specified, the effect is as if a value of "100%" were specified. + * + * This attribute is animatable. + * + * @return The width of the viewport of the 'svg' element. + */ + SVGAnimatedLength width() const; + + /** + * For outermost 'svg' elements, the intrinsic height of the SVG document + * fragment. For embedded 'svg' elements, the height of the rectangular region + * into which the 'svg' element is placed. + * A negative value is an error (see <a + * href="http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing"> Error + * processing </a>). + * A value of zero disables rendering of the element. If the attribute is not + * specified, the effect is as if a value of "100%" were specified. + * + * This attribute is animatable. + * + * @return The height of the viewport of the 'svg' element. + */ + SVGAnimatedLength height() const; + + /** + * The <code> contentScriptType </code> attribute identifies the default + * scripting language for the given document. This attribute sets the scripting + * language used to process the value strings in event attributes. The value + * content-type specifies a media type, per <a + * href="http://www.ietf.org/rfc/rfc2045.txt"> [RFC2045]</a>. The default value + * is "text/ecmascript". + * + * This attribute is not animatable. + * + * @exception + * NO_MODIFICATION_ALLOWED_ERR: Raised on an attempt to change the value of a + * readonly attribute. + */ + void setContentScriptType(const DOM::DOMString &); + + /** + * @return The value of the <code>contentScript</code> attribute on the given + * 'svg' element. + */ + DOM::DOMString contentScriptType() const; + + /** + * Identifies the default style sheet language for the given document. This + * attribute sets the style sheet language for the style attributes that are + * available on many elements. The value of the attribute consists of a media + * type, per <a href="http://www.ietf.org/rfc/rfc2045.txt">[RFC2045]</a>. + * The default value is "text/css". + */ + void setContentStyleType(const DOM::DOMString &); + + /** + * @return The value of the <code>contentStyle</code> attribute on the given + * 'svg' element. + */ + DOM::DOMString contentStyleType() const; + + /** + * The position and size of the viewport (implicit or explicit) that + * corresponds to this 'svg' element. When the user agent is actually + * rendering the content, then the position and size values represent the + * actual values when rendering. The position and size values are unitless + * values in the coordinate system of the parent element. If no parent element + * exists (i.e., 'svg' element represents the root of the document tree), if + * this SVG document is embedded as part of another document (e.g., via the + * HTML 'object' element), then the position and size are unitless values in + * the coordinate system of the parent document. (If the parent uses CSS or + * XSL layout, then unitless values represent pixel units for the current CSS + * or XSL viewport, as described in the CSS2 specification.) If the parent + * element does not have a coordinate system, then the user agent should + * provide reasonable default values for this attribute. + * + * @return The viewport represented by a <code>SVGRect</rect>. + */ + SVGRect viewport() const; + + /** + * Size of a pixel units (as defined by CSS2) along the x-axis of the viewport, + * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on + * systems that support this, might actually match the characteristics of the + * target medium. On systems where it is impossible to know the size of a + * pixel, a suitable default pixel size is provided. + * + * @return Corresponding size of a pixel unit along the x-axis of the viewport. + */ + float pixelUnitToMillimeterX() const; + + /** + * @return Corresponding size of a pixel unit along the y-axis of the viewport. + */ + float pixelUnitToMillimeterY() const; + + /** + * User interface (UI) events in DOM Level 2 indicate the screen positions at + * which the given UI event occurred. When the user agent actually knows the + * physical size of a "screen unit", this attribute will express that + * information; otherwise, user agents will provide a suitable default value + * such as .28mm. + * + * @return Corresponding size of a screen pixel along the x-axis of the + * viewport. + */ + float screenPixelToMillimeterX() const; + + /** + * @return Corresponding size of a screen pixel along the y-axis of the + * viewport. + */ + float screenPixelToMillimeterY() const; + + /** + * The initial view (i.e., before magnification and panning) of the current + * innermost SVG document fragment can be either the "standard" view (i.e., + * based on attributes on the 'svg' element such as fitBoxToViewport) or to a + * "custom" view (i.e., a hyperlink into a particular 'view' or other element - + * see <a href="http://www.w3.org/TR/SVG/linking.html#LinksIntoSVG"> Linking + * into SVG content: URI fragments and SVG views)</a>. If the initial view + * is the "standard" view, then this attribute is false. If the initial + * view is a "custom" view, then this attribute is true. + * + * @exception DOMException + * NO_MODIFICATION_ALLOWED_ERR: Raised on an attempt to change the value of a + * readonly attribute. + */ + void setUseCurrentView(bool); + + /** + * @return Indicated whether the view is "custom" or not. + */ + bool useCurrentView() const; + + /** + * The definition of the initial view (i.e., before magnification and panning) + * of the current innermost SVG document fragment. The meaning depends on the + * situation: + * + * If the initial view was a "standard" view, then: + * + * the values for <code>viewBox</code>, <code>preserveAspectRatio</code> and + * <code>zoomAndPan</code> within <code>currentView</code> will match the + * values for the corresponding DOM attributes that are on SVGSVGElement + * directly. + * the values for <code>transform</code> and <code>viewTarget</code> within + * <code>currentView</code> will be null. + * + * If the initial view was a link into a 'view' element, then: + * + * the values for <code>viewBox</code>, <code>preserveAspectRatio</code> and + * <code>zoomAndPan</code> within <code>currentView</code> will correspond to + * the corresponding attributes for the given 'view' element. + * the values for <code>transform</code> and <code>viewTarget</code> within + * <code>currentView </code>will be null + * + * If the initial view was a link into another element (i.e., other than a + *'view'), then: + * + * the values for <code>viewBox</code>, <code>preserveAspectRatio</code> and + * <code>zoomAndPan</code> within <code>currentView</code> will match the + * values for the corresponding DOM attributes that are on SVGSVGElement + * directly for the closest ancestor 'svg' element. + * the values for transform within <code>currentView</code> will be null. + * the <code>viewTarget</code> within <code>currentView</code> will represent + * the target of the link. + * + * If the initial view was a link into the SVG document fragment using an SVG + * view specification fragment identifier (i.e., #svgView(...)), then: + * + * the values for <code>viewBox</code>, <code>preserveAspectRatio</code>, + * <code>zoomAndPan</code>, <code>transform</code> and <code>viewTarget</code> + * within <code>currentView</code> will correspond to the values from the SVG + * view specification fragment identifier + * + * The object itself and its contents are both readonly. + */ + SVGViewSpec currentView() const; + + /** + * The currentScale attribute indicates the current scale factor relative to + * the initial view to take into account user magnification and panning + * operations, as described under + * <a href="http://www.w3.org/TR/SVG/interact.html#ZoomAndPanAttribute"> + * Magnification and panning</a>. DOM attributes currentScale and + * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] = + * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. + * If "magnification" is enabled (i.e., zoomAndPan="magnify"), then the effect + * is as if an extra transformation were placed at the outermost level on the + * SVG document fragment (i.e., outside the outermost 'svg' element). + * + * @exception DOMException + * NO_MODIFICATION_ALLOWED_ERR: Raised on an attempt to change the value of a + * readonly attribute. + * + * @param The new value of the currentScale attribute. + */ + void setCurrentScale(float); + + /** + * @return The <code> currentScale </code> attribute value as described above. + */ + float currentScale() const; + + /** + * The corresponding translation factor that takes into account user + * "magnification". + * + * @return The translation factor represented by an <code> SVGPoint </code>. + */ + SVGPoint currentTranslate() const; + + /** + * Takes a time-out value which indicates that redraw shall not occur until: + * + * (a) the corresponding unsuspendRedraw(suspend_handle_id) call has been made + * (b) an unsuspendRedrawAll() call has been made + * (c) its timer has timed out. + * + * In environments that do not support interactivity (e.g., print media), then + * redraw shall not be suspended suspend_handle_id = + * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id) + * must be packaged as balanced pairs. When you want to suspend redraw actions + * as a collection of SVG DOM changes occur, then precede the changes to the + * SVG DOM with a method call similar to suspend_handle_id = + * suspendRedraw(max_wait_milliseconds) and follow the changes with a method + * call similar to unsuspendRedraw(suspend_handle_id). Note that multiple + * suspendRedraw calls can be used at once and that each such method call is + * treated independently of the other suspendRedraw method calls. + * + * @param max_wait_milliseconds The amount of time in milliseconds to hold off + * before redrawing the device.Values greater than 60 seconds will be + * truncated down to 60 seconds. + * + * @return A number which acts as a unique identifier for the given + * suspendRedraw() call. This value must be passed as the parameter to the + * corresponding unsuspendRedraw() method call. + */ + unsigned long suspendRedraw(unsigned long max_wait_milliseconds); + + /** + * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id. + * + * @param suspend_handle_id A number which acts as a unique identifier for the + * desired suspendRedraw() call. The number supplied must be a value returned + * from a previous call to suspendRedraw(). + */ + void unsuspendRedraw(unsigned long suspend_handle_id); + + /** + * Cancels all currently active suspendRedraw() method calls. This method is + * most useful at the very end of a set of SVG DOM calls to ensure that all + * pending suspendRedraw() method calls have been cancelled. + */ + void unsuspendRedrawAll(); + + /** + * In rendering environments supporting interactivity, forces the user agent to + * immediately redraw all regions of the viewport that require updating. + */ + void forceRedraw(); + + /** + * Suspends (i.e., pauses) all currently running animations that are defined + * within the SVG document fragment corresponding to this 'svg' element, + * causing the animation clock corresponding to this document fragment to stand + * still until it is paused. + */ + void pauseAnimations(); + + /** + * Unsuspends (i.e., pauses) currently running animations that are defined + * within the SVG document fragment, causing the animation clock to continue + * from the time it was suspended. + */ + void unpauseAnimations(); + + /** + * Returns true if this SVG Document fragment is in a paused state. + * + * @return Boolean indicating whether this SVG document fragment is in a paused + * state. + */ + bool animationsPaused(); + + /** + * Returns the current time in seconds relative to the start time for the + * current SVG document fragment. + * + * @return The current time in seconds. + */ + float getCurrentTime(); + + /** + * Adjusts the clock for this SVG document fragment, establishing a new current + * time. + * + * @param seconds The new current time in seconds relative to the start time + * for the current SVG document fragment. + */ + void setCurrentTime(float seconds); + + /** + * Returns the list of graphics elements whose rendered content intersects the + * supplied rectangle, honoring the 'pointer-events' property value on each + * candidate graphics element. + * + * @param rect The test rectangle. The values are in the initial coordinate + * system for the current 'svg' element. + * @param referenceElement If not null, then only return elements whose drawing + * order has them below the given reference element. + * + * @return A list of Elements whose content is intersects the supplied + * rectangle. + */ + DOM::NodeList getIntersectionList(const SVGRect &rect, const SVGElement + &referenceElement); + + /** + * Returns the list of graphics elements whose rendered content is entirely + * contained within the supplied rectangle, honoring the 'pointer-events' + * property value on each candidate graphics element. + * + * @param rect The test rectangle. The values are in the initial coordinate + * system for the current 'svg' element. + * @param referenceElement If not null, then only return elements whose drawing + * order has them below the given reference element. + * + * @return A list of Elements whose content is enclosed by the supplied + * rectangle. + */ + DOM::NodeList getEnclosureList(const SVGRect &rect, const SVGElement + &referenceElement); + + /** + * Returns true if the rendered content of the given element intersects the + * supplied rectangle, honoring the 'pointer-events' property value on each + * candidate graphics element. + * + * @param element The element on which to perform the given test. + * @param rect The test rectangle. The values are in the initial coordinate + * system for the current 'svg' element. + * + * @return True or false, depending on whether the given element intersects the + * supplied rectangle. + */ + bool checkIntersection(const SVGElement &element, const SVGRect &rect); + + /** + * Returns true if the rendered content of the given element is entirely + * contained within the supplied rectangle, honoring the 'pointer-events' + * property value on each candidate graphics element. + * + * @param element The element on which to perform the given test. + * @param rect The test rectangle. The values are in the initial coordinate + * system for the current 'svg' element. + * + * @return True or false, depending on whether the given element is enclosed by + * the supplied rectangle. + */ + bool checkEnclosure(const SVGElement &element, const SVGRect &rect); + + /** + * Unselects any selected objects, including any selections of text + * strings and type-in bars. + */ + void deSelectAll(); + + /** + * Creates an <code> SVGNumber </code> object outside of any document trees. + * The object is initialized to a value of zero. + * + * @return An <code> SVGNumber </code> object. + */ + SVGNumber createSVGNumber(); + + /** + * Creates an <code> SVGLength </code> object outside of any document trees. + * The object is initialized to a value of zero user units. + * + * @return An <code> SVGLength </code> object. + */ + SVGLength createSVGLength(); + + /** + * Creates an <code> SVGAngle </code> object outside of any document trees. + * The object is initialized to a value of zero degreesunitless). + * + * @return An <code> SVGAngle </code> object. + */ + SVGAngle createSVGAngle(); + + /** + * Creates an <code> SVGPoint </code> object outside of any document trees. + * The object is initialized to the point (0,0) in the user coordinate system. + * + * @return An <code> SVGPoint </code> object. + */ + SVGPoint createSVGPoint(); + + /** + * Creates an <code> SVGMatrix </code> object outside of any document trees. + * The object is initialized to a value of the identity matrix. + * + * @return An <code> SVGMatrix </code> object. + */ + SVGMatrix createSVGMatrix(); + + /** + * Creates an <code> SVGRect </code> object outside of any document trees. + * The object is initialized such that all values are set to 0 user units. + * + * @return An <code> SVGRect </code> object. + */ + SVGRect createSVGRect(); + + /** + * Creates an <code> SVGTransform </code> object outside of any document trees. + * The object is initialized to an identity matrix transform + * (SVG_TRANSFORM_MATRIX). + * + * @return An <code> SVGTransform </code> object. + */ + SVGTransform createSVGTransform(); + + /** + * Creates an <code> SVGTransform </code> object outside of any document trees. + * The object is initialized to the given matrix transform (i.e., + * SVG_TRANSFORM_MATRIX). + * + * @return An <code> SVGTransform </code> object. + */ + SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix); + + /** + * Searches this SVG document fragment (i.e., the search is restricted to a + * subset of the document tree) for an <code> Element </code> whose id is given + * by elementId. If an <code> Element </code> is found, that <code> Element + * </code> is returned. If no such element exists, returns null. Behavior + * is not defined if more than one element has this id. + * + * @param elementId The unique id value for an element. + * + * @return The matching element. + */ + SVGElement getElementById(const DOM::DOMString &elementId); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGSVGElementImpl *handle() const { return impl; } + +private: + SVGSVGElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGScriptElement.cc b/ksvg/dom/SVGScriptElement.cc new file mode 100644 index 00000000..f599a273 --- /dev/null +++ b/ksvg/dom/SVGScriptElement.cc @@ -0,0 +1,81 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGScriptElement.h" +#include "SVGScriptElementImpl.h" + +using namespace KSVG; + +SVGScriptElement::SVGScriptElement() : SVGElement(), SVGURIReference(), SVGExternalResourcesRequired() +{ + impl = 0; +} + +SVGScriptElement::SVGScriptElement(const SVGScriptElement &other) : SVGElement(other), SVGURIReference(other), SVGExternalResourcesRequired(other), impl(0) +{ + (*this) = other; +} + +SVGScriptElement &SVGScriptElement::operator =(const SVGScriptElement &other) +{ + SVGElement::operator=(other); + SVGURIReference::operator=(other); + SVGExternalResourcesRequired::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGScriptElement::SVGScriptElement(SVGScriptElementImpl *other) : SVGElement(other), SVGURIReference(other), SVGExternalResourcesRequired(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGScriptElement::~SVGScriptElement() +{ + if(impl) + impl->deref(); +} + +void SVGScriptElement::setType(const DOM::DOMString &type) +{ + if(impl) + impl->setType(type); +} + +DOM::DOMString SVGScriptElement::type() const +{ + if(!impl) return DOM::DOMString(); + return impl->type(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGScriptElement.h b/ksvg/dom/SVGScriptElement.h new file mode 100644 index 00000000..aae1d79b --- /dev/null +++ b/ksvg/dom/SVGScriptElement.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGScriptElement_H +#define SVGScriptElement_H + +#include <dom/dom_string.h> +#include "SVGElement.h" +#include "SVGURIReference.h" +#include "SVGExternalResourcesRequired.h" + +namespace KSVG +{ + +class SVGScriptElementImpl; +class SVGScriptElement : public SVGElement, + public SVGURIReference, + public SVGExternalResourcesRequired +{ +public: + SVGScriptElement(); + SVGScriptElement(const SVGScriptElement &other); + SVGScriptElement &operator=(const SVGScriptElement &other); + SVGScriptElement(SVGScriptElementImpl *other); + virtual ~SVGScriptElement(); + + void setType(const DOM::DOMString &type); + DOM::DOMString type() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGScriptElementImpl *handle() const { return impl; } + +private: + SVGScriptElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSetElement.cc b/ksvg/dom/SVGSetElement.cc new file mode 100644 index 00000000..7a47c993 --- /dev/null +++ b/ksvg/dom/SVGSetElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGSetElement.h" +#include "SVGSetElementImpl.h" + +using namespace KSVG; + +SVGSetElement::SVGSetElement() : SVGAnimationElement() +{ + impl = 0; +} + +SVGSetElement::SVGSetElement(const SVGSetElement &other) : SVGAnimationElement(other), impl(0) +{ + (*this) = other; +} + +SVGSetElement &SVGSetElement::operator =(const SVGSetElement &other) +{ + SVGAnimationElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGSetElement::SVGSetElement(SVGSetElementImpl *other) : SVGAnimationElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGSetElement::~SVGSetElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSetElement.h b/ksvg/dom/SVGSetElement.h new file mode 100644 index 00000000..f65a8704 --- /dev/null +++ b/ksvg/dom/SVGSetElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGSetElement_H +#define SVGSetElement_H + +#include "SVGAnimationElement.h" + +namespace KSVG +{ + +class SVGSetElementImpl; +class SVGSetElement : public SVGAnimationElement +{ +public: + SVGSetElement(); + SVGSetElement(const SVGSetElement &other); + SVGSetElement &operator=(const SVGSetElement &other); + SVGSetElement(SVGSetElementImpl *other); + virtual ~SVGSetElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGSetElementImpl *handle() const { return impl; } + +private: + SVGSetElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStopElement.cc b/ksvg/dom/SVGStopElement.cc new file mode 100644 index 00000000..a9db9a56 --- /dev/null +++ b/ksvg/dom/SVGStopElement.cc @@ -0,0 +1,75 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGStopElement.h" +#include "SVGStopElementImpl.h" +#include "SVGAnimatedNumber.h" + +using namespace KSVG; + +SVGStopElement::SVGStopElement() : SVGElement(), SVGStylable() +{ + impl = 0; +} + +SVGStopElement::SVGStopElement(const SVGStopElement &other) : SVGElement(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGStopElement &SVGStopElement::operator =(const SVGStopElement &other) +{ + SVGElement::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGStopElement::SVGStopElement(SVGStopElementImpl *other) : SVGElement(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGStopElement::~SVGStopElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedNumber SVGStopElement::offset() const +{ + if(!impl) return SVGAnimatedNumber(0); + return SVGAnimatedNumber(impl->offset()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStopElement.h b/ksvg/dom/SVGStopElement.h new file mode 100644 index 00000000..3002e0cf --- /dev/null +++ b/ksvg/dom/SVGStopElement.h @@ -0,0 +1,81 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGStopElement_H +#define SVGStopElement_H + +#include "SVGElement.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGAnimatedNumber; +class SVGStopElementImpl; + +/** + * The ramp of colors to use on a gradient is defined by the 'stop' elements that + * are child elements to either the 'linearGradient' element or the 'radialGradient' element. + */ +class SVGStopElement : public SVGElement, + public SVGStylable +{ +public: + SVGStopElement(); + SVGStopElement(const SVGStopElement &other); + SVGStopElement &operator=(const SVGStopElement &other); + SVGStopElement(SVGStopElementImpl *other); + virtual ~SVGStopElement(); + + /** + * The <code>offset</code> attribute is either a <number> (usually ranging from 0 to 1) + * or a <percentage> (usually ranging from 0% to 100%) which indicates where the gradient + * stop is placed. For linear gradients, the offset attribute represents a location along + * the gradient vector. For radial gradients, it represents a percentage distance from + * (fx,fy) to the edge of the outermost/largest circle. + * + * This attribute is animatable. + * + * @return The offset where this gradient stop is placed. + */ + SVGAnimatedNumber offset() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGStopElementImpl *handle() const { return impl; } + +private: + SVGStopElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStringList.cc b/ksvg/dom/SVGStringList.cc new file mode 100644 index 00000000..c7700e06 --- /dev/null +++ b/ksvg/dom/SVGStringList.cc @@ -0,0 +1,115 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <dom/dom_string.h> +#include "SVGStringList.h" +#include "SVGStringListImpl.h" + +using namespace KSVG; + +SVGStringList::SVGStringList() +{ + impl = new SVGStringListImpl(); + impl->ref(); +} + +SVGStringList::SVGStringList(const SVGStringList &other) : impl(0) +{ + (*this) = other; +} + +SVGStringList &SVGStringList::operator=(const SVGStringList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGStringList::SVGStringList(SVGStringListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGStringList::~SVGStringList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGStringList::numberOfItems() const +{ + if(!impl) return 0; + return impl->numberOfItems(); +} + +void SVGStringList::clear() +{ + if(impl) + impl->clear(); +} + +DOM::DOMString *SVGStringList::initialize(DOM::DOMString *newItem) +{ + if(!impl) return new DOM::DOMString(); + return impl->initialize(new SharedString(newItem)); +} + +DOM::DOMString *SVGStringList::getItem(unsigned long index) +{ + if(!impl) return new DOM::DOMString(); + return impl->getItem(index); +} + +DOM::DOMString *SVGStringList::insertItemBefore(DOM::DOMString *newItem, unsigned long index) +{ + if(!impl) return new DOM::DOMString(); + return impl->insertItemBefore(new SharedString(newItem), index); +} + +DOM::DOMString *SVGStringList::replaceItem(DOM::DOMString *newItem, unsigned long index) +{ + if(!impl) return new DOM::DOMString(); + return impl->replaceItem(new SharedString(newItem), index); +} + +DOM::DOMString *SVGStringList::removeItem(unsigned long index) +{ + if(!impl) return new DOM::DOMString(); + return impl->removeItem(index); +} + +DOM::DOMString *SVGStringList::appendItem(DOM::DOMString *newItem) +{ + if(!impl) return new DOM::DOMString(); + return impl->appendItem(new SharedString(newItem)); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStringList.h b/ksvg/dom/SVGStringList.h new file mode 100644 index 00000000..477273a6 --- /dev/null +++ b/ksvg/dom/SVGStringList.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGStringList_H +#define SVGStringList_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGStringListImpl; +class SVGStringList +{ +public: + SVGStringList(); + SVGStringList(const SVGStringList &); + SVGStringList &operator=(const SVGStringList &); + SVGStringList(SVGStringListImpl *); + ~SVGStringList(); + + unsigned long numberOfItems() const; + void clear(); + + DOM::DOMString *initialize(DOM::DOMString *newItem); + DOM::DOMString *getItem(unsigned long index); + DOM::DOMString *insertItemBefore(DOM::DOMString *newItem, unsigned long index); + DOM::DOMString *replaceItem(DOM::DOMString *newItem, unsigned long index); + DOM::DOMString *removeItem(unsigned long index); + DOM::DOMString *appendItem(DOM::DOMString *newItem); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGStringListImpl *handle() const { return impl; } + +private: + SVGStringListImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStylable.cc b/ksvg/dom/SVGStylable.cc new file mode 100644 index 00000000..14136d7d --- /dev/null +++ b/ksvg/dom/SVGStylable.cc @@ -0,0 +1,76 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGStylable.h" +#include "SVGStylableImpl.h" +#include <kdebug.h> + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGStylable::SVGStylable() +{ + impl = 0; +} + +SVGStylable::SVGStylable(const SVGStylable &other) : impl(0) +{ + (*this) = other; +} + +SVGStylable &SVGStylable::operator=(const SVGStylable &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGStylable::SVGStylable(SVGStylableImpl *other) +{ + impl = other; +} + +SVGStylable::~SVGStylable() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +/* +SVGAnimatedString SVGStylable::className() const +{ + return impl->className(); +} + +css::CSSStyleDeclaration SVGStylable::style() const +{ + return impl->style(); +} + +css::CSSValue SVGStylable::getPresentationAttribute(const DOMString &name) +{ + return impl->getPresentationAttribute(name); +} +*/ + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStylable.h b/ksvg/dom/SVGStylable.h new file mode 100644 index 00000000..2fb3cf11 --- /dev/null +++ b/ksvg/dom/SVGStylable.h @@ -0,0 +1,56 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGStylable_H +#define SVGStylable_H + +namespace KSVG +{ + +class SVGStylableImpl; +class SVGStylable +{ +public: + SVGStylable(const SVGStylable &other); + SVGStylable &operator=(const SVGStylable &other); + SVGStylable(SVGStylableImpl *other); + ~SVGStylable(); + + // TODO : stylesheet support + //SVGAnimatedString className() const; + //css::CSSStyleDeclaration style() const; + //css::CSSValue getPresentationAttribute(const DOMString &name); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGStylableImpl *handle() const { return impl; } + +protected: + SVGStylable(); + +private: + SVGStylableImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet + diff --git a/ksvg/dom/SVGStyleElement.cc b/ksvg/dom/SVGStyleElement.cc new file mode 100644 index 00000000..8cf02024 --- /dev/null +++ b/ksvg/dom/SVGStyleElement.cc @@ -0,0 +1,115 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGStyleElement.h" +#include "SVGStyleElementImpl.h" + +using namespace KSVG; + +SVGStyleElement::SVGStyleElement() : SVGElement() +{ + impl = 0; +} + +SVGStyleElement::SVGStyleElement(const SVGStyleElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGStyleElement &SVGStyleElement::operator =(const SVGStyleElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGStyleElement::SVGStyleElement(SVGStyleElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGStyleElement::~SVGStyleElement() +{ + if(impl) + impl->deref(); +} + +void SVGStyleElement::setXmlspace(const DOM::DOMString &xmlspace) +{ + if(impl) + impl->setXmlspace(xmlspace); +} + +DOM::DOMString SVGStyleElement::xmlspace() const +{ + if(!impl) return DOM::DOMString(); + return impl->xmlspace(); +} + +void SVGStyleElement::setType(const DOM::DOMString &type) +{ + if(impl) + impl->setType(type); +} + +DOM::DOMString SVGStyleElement::type() const +{ + if(!impl) return DOM::DOMString(); + return impl->type(); +} + +void SVGStyleElement::setMedia(const DOM::DOMString &media) +{ + if(impl) + impl->setMedia(media); +} + +DOM::DOMString SVGStyleElement::media() const +{ + if(!impl) return DOM::DOMString(); + return impl->media(); +} + +void SVGStyleElement::setTitle(const DOM::DOMString &title) +{ + if(impl) + impl->setTitle(title); +} + +DOM::DOMString SVGStyleElement::title() const +{ + if(!impl) return DOM::DOMString(); + return impl->title(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGStyleElement.h b/ksvg/dom/SVGStyleElement.h new file mode 100644 index 00000000..2a1c63b8 --- /dev/null +++ b/ksvg/dom/SVGStyleElement.h @@ -0,0 +1,63 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGStyleElement_H +#define SVGStyleElement_H + +#include <dom/dom_string.h> +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGStyleElementImpl; +class SVGStyleElement : public SVGElement +{ +public: + SVGStyleElement(); + SVGStyleElement(const SVGStyleElement &other); + SVGStyleElement &operator=(const SVGStyleElement &other); + SVGStyleElement(SVGStyleElementImpl *other); + virtual ~SVGStyleElement(); + + void setXmlspace(const DOM::DOMString &xmlspace); + DOM::DOMString xmlspace() const; + + void setType(const DOM::DOMString &type); + DOM::DOMString type() const; + + void setMedia(const DOM::DOMString &media); + DOM::DOMString media() const; + + void setTitle(const DOM::DOMString &title); + DOM::DOMString title() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGStyleElementImpl *handle() const { return impl; } + +private: + SVGStyleElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSwitchElement.cc b/ksvg/dom/SVGSwitchElement.cc new file mode 100644 index 00000000..2c4a8701 --- /dev/null +++ b/ksvg/dom/SVGSwitchElement.cc @@ -0,0 +1,72 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGSwitchElement.h" +#include "SVGSwitchElementImpl.h" + +using namespace KSVG; + +SVGSwitchElement::SVGSwitchElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable() +{ + impl = 0; +} + +SVGSwitchElement::SVGSwitchElement(const SVGSwitchElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), impl(0) +{ + (*this) = other; +} + +SVGSwitchElement &SVGSwitchElement::operator =(const SVGSwitchElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGSwitchElement::SVGSwitchElement(SVGSwitchElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGSwitchElement::~SVGSwitchElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSwitchElement.h b/ksvg/dom/SVGSwitchElement.h new file mode 100644 index 00000000..a4f8819d --- /dev/null +++ b/ksvg/dom/SVGSwitchElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGSwitchElement_H +#define SVGSwitchElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGSwitchElementImpl; +class SVGSwitchElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable +{ +public: + SVGSwitchElement(); + SVGSwitchElement(const SVGSwitchElement &other); + SVGSwitchElement &operator=(const SVGSwitchElement &other); + SVGSwitchElement(SVGSwitchElementImpl *other); + virtual ~SVGSwitchElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGSwitchElementImpl *handle() const { return impl; } + +private: + SVGSwitchElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSymbolElement.cc b/ksvg/dom/SVGSymbolElement.cc new file mode 100644 index 00000000..d83947a5 --- /dev/null +++ b/ksvg/dom/SVGSymbolElement.cc @@ -0,0 +1,71 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGSymbolElement.h" +#include "SVGSymbolElementImpl.h" + +using namespace KSVG; + +SVGSymbolElement::SVGSymbolElement() : SVGElement(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGFitToViewBox() +{ + impl = 0; +} + +SVGSymbolElement::SVGSymbolElement(const SVGSymbolElement &other) : SVGElement(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFitToViewBox(other), impl(0) +{ + (*this) = other; +} + +SVGSymbolElement &SVGSymbolElement::operator =(const SVGSymbolElement &other) +{ + SVGElement::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGFitToViewBox::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGSymbolElement::SVGSymbolElement(SVGSymbolElementImpl *other) : SVGElement(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGFitToViewBox(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGSymbolElement::~SVGSymbolElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGSymbolElement.h b/ksvg/dom/SVGSymbolElement.h new file mode 100644 index 00000000..8d02987e --- /dev/null +++ b/ksvg/dom/SVGSymbolElement.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGSymbolElement_H +#define SVGSymbolElement_H + +#include "SVGElement.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGFitToViewBox.h" + +namespace KSVG +{ + +class SVGSymbolElementImpl; +class SVGSymbolElement : public SVGElement, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGFitToViewBox +{ +public: + SVGSymbolElement(); + SVGSymbolElement(const SVGSymbolElement &other); + SVGSymbolElement &operator=(const SVGSymbolElement &other); + SVGSymbolElement(SVGSymbolElementImpl *other); + virtual ~SVGSymbolElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGSymbolElementImpl *handle() const { return impl; } + +private: + SVGSymbolElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTRefElement.cc b/ksvg/dom/SVGTRefElement.cc new file mode 100644 index 00000000..4faa18ec --- /dev/null +++ b/ksvg/dom/SVGTRefElement.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTRefElement.h" +#include "SVGTRefElementImpl.h" + +using namespace KSVG; + +SVGTRefElement::SVGTRefElement() : SVGTextPositioningElement(), SVGURIReference() +{ + impl = 0; +} + +SVGTRefElement::SVGTRefElement(const SVGTRefElement &other) : SVGTextPositioningElement(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGTRefElement &SVGTRefElement::operator =(const SVGTRefElement &other) +{ + SVGTextPositioningElement::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTRefElement::SVGTRefElement(SVGTRefElementImpl *other) : SVGTextPositioningElement(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTRefElement::~SVGTRefElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTRefElement.h b/ksvg/dom/SVGTRefElement.h new file mode 100644 index 00000000..5585f1d7 --- /dev/null +++ b/ksvg/dom/SVGTRefElement.h @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTRefElement_H +#define SVGTRefElement_H + +#include "SVGTextPositioningElement.h" +#include "SVGURIReference.h" + +namespace KSVG +{ + +class SVGTRefElementImpl; +class SVGTRefElement : public SVGTextPositioningElement, + public SVGURIReference +{ +public: + SVGTRefElement(); + SVGTRefElement(const SVGTRefElement &other); + SVGTRefElement &operator=(const SVGTRefElement &other); + SVGTRefElement(SVGTRefElementImpl *other); + virtual ~SVGTRefElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTRefElementImpl *handle() const { return impl; } + +private: + SVGTRefElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTSpanElement.cc b/ksvg/dom/SVGTSpanElement.cc new file mode 100644 index 00000000..fc43309c --- /dev/null +++ b/ksvg/dom/SVGTSpanElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTSpanElement.h" +#include "SVGTSpanElementImpl.h" + +using namespace KSVG; + +SVGTSpanElement::SVGTSpanElement() : SVGTextPositioningElement() +{ + impl = 0; +} + +SVGTSpanElement::SVGTSpanElement(const SVGTSpanElement &other) : SVGTextPositioningElement(other), impl(0) +{ + (*this) = other; +} + +SVGTSpanElement &SVGTSpanElement::operator =(const SVGTSpanElement &other) +{ + SVGTextPositioningElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTSpanElement::SVGTSpanElement(SVGTSpanElementImpl *other) : SVGTextPositioningElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTSpanElement::~SVGTSpanElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTSpanElement.h b/ksvg/dom/SVGTSpanElement.h new file mode 100644 index 00000000..8fac655b --- /dev/null +++ b/ksvg/dom/SVGTSpanElement.h @@ -0,0 +1,70 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. +*/ + +#ifndef SVGTSpanElement_H +#define SVGTSpanElement_H + +#include "SVGTextPositioningElement.h" + +namespace KSVG +{ + +class SVGTSpanElementImpl; + +/** + * Within a <code>text</code> element, text and font properties and the current + * text position can be adjusted with absolute or relative coordinate values by + * including a <code>tspan</code> element. + * + * For more information : + * <a href="http://www.w3.org/TR/SVG/text.html#TSpanElement"> + * 10.5 the 'tspan' element</a> + */ +class SVGTSpanElement : public SVGTextPositioningElement +{ +public: + SVGTSpanElement(); + SVGTSpanElement(const SVGTSpanElement &other); + SVGTSpanElement &operator=(const SVGTSpanElement &other); + SVGTSpanElement(SVGTSpanElementImpl *other); + virtual ~SVGTSpanElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTSpanElementImpl *handle() const { return impl; } + +private: + SVGTSpanElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTests.cc b/ksvg/dom/SVGTests.cc new file mode 100644 index 00000000..9c3063b1 --- /dev/null +++ b/ksvg/dom/SVGTests.cc @@ -0,0 +1,83 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTests.h" +#include "SVGTestsImpl.h" +#include "SVGStringList.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGTests::SVGTests() +{ + impl = 0; +} + +SVGTests::SVGTests(const SVGTests &other) : impl(0) +{ + (*this) = other; +} + +SVGTests &SVGTests::operator=(const SVGTests &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGTests::SVGTests(SVGTestsImpl *other) +{ + impl = other; +} + +SVGTests::~SVGTests() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +SVGStringList SVGTests::requiredFeatures() const +{ + if(!impl) return SVGStringList(0); + return SVGStringList(impl->requiredFeatures()); +} + +SVGStringList SVGTests::requiredExtensions() const +{ + if(!impl) return SVGStringList(0); + return SVGStringList(impl->requiredExtensions()); +} + +SVGStringList SVGTests::systemLanguage() const +{ + if(!impl) return SVGStringList(0); + return SVGStringList(impl->systemLanguage()); +} + +bool SVGTests::hasExtension(const DOM::DOMString &extension) +{ + if(!impl) return false; + return impl->hasExtension(extension); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTests.h b/ksvg/dom/SVGTests.h new file mode 100644 index 00000000..729b0efc --- /dev/null +++ b/ksvg/dom/SVGTests.h @@ -0,0 +1,59 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTests_H +#define SVGTests_H + +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGStringList; +class SVGTestsImpl; +class SVGTests +{ +public: + SVGTests(const SVGTests &other); + SVGTests &operator=(const SVGTests &other); + SVGTests(SVGTestsImpl *other); + ~SVGTests(); + + SVGStringList requiredFeatures() const; + SVGStringList requiredExtensions() const; + SVGStringList systemLanguage() const; + + bool hasExtension(const DOM::DOMString &extension); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTestsImpl *handle() const { return impl; } + +protected: + SVGTests(); + +private: + SVGTestsImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTextContentElement.cc b/ksvg/dom/SVGTextContentElement.cc new file mode 100644 index 00000000..f40d23b6 --- /dev/null +++ b/ksvg/dom/SVGTextContentElement.cc @@ -0,0 +1,120 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTextContentElement.h" +#include "SVGTextContentElementImpl.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGTextContentElement::SVGTextContentElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable() +{ + impl = new SVGTextContentElementImpl(0); +} + +SVGTextContentElement::SVGTextContentElement(const SVGTextContentElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other) +{ + impl = other.impl; +} + +SVGTextContentElement &SVGTextContentElement::operator=(const SVGTextContentElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + delete impl; + impl = other.impl; + + return *this; +} + +SVGTextContentElement::SVGTextContentElement(SVGTextContentElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other) +{ + impl = other; +} + +SVGTextContentElement::~SVGTextContentElement() +{ +} + + +SVGAnimatedLength SVGTextContentElement::textLength() const +{ + return impl->textLength(); +} + +SVGAnimatedEnumeration SVGTextContentElement::lengthAdjust() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->lengthAdjust()); +} + +long SVGTextContentElement::getNumberOfChars() +{ + return impl->getNumberOfChars(); +} + +float SVGTextContentElement::getComputedTextLength() +{ + return impl->getComputedTextLength(); +} +/* +float SVGTextContentElement::getSubStringLength(const unsigned long &charnum, const unsigned long &nchars) +{ + return impl->getSubStringLength(charnum, nchars); +} + +SVGPoint SVGTextContentElement::getStartPositionOfChar(const unsigned long &charnum) +{ + return impl->getStartPositionOfChar(charnum); +} + +SVGPoint SVGTextContentElement::getEndPositionOfChar(const unsigned long &charnum) +{ + return impl->getEndPositionOfChar(charnum); +} + +SVGRect SVGTextContentElement::getExtentOfChar(const unsigned long &charnum) +{ + return impl->getExtentOfChar(charnum); +} + +float SVGTextContentElement::getRotationOfChar(const unsigned long &charnum) +{ + return impl->getRotationOfChar(charnum); +} + +long SVGTextContentElement::getCharNumAtPosition(const SVGPoint &point) +{ + return impl->getCharNumAtPosition(point); +} + +void SVGTextContentElement::selectSubString(const unsigned long &charnum, const unsigned long &nchars) +{ + return impl->selectSubString(charnum, nchars); +} +*/ diff --git a/ksvg/dom/SVGTextContentElement.h b/ksvg/dom/SVGTextContentElement.h new file mode 100644 index 00000000..2f943c06 --- /dev/null +++ b/ksvg/dom/SVGTextContentElement.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTextContentElement_H +#define SVGTextContentElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +enum +{ + LENGTHADJUST_UNKNOWN = 0, + LENGTHADJUST_SPACING = 1, + LENGTHADJUST_SPACINGANDGLYPHS = 2 +}; + +class SVGAnimatedLength; +class SVGAnimatedEnumeration; +class SVGTextContentElementImpl; +class SVGTextContentElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable +{ +public: + SVGTextContentElement(const SVGTextContentElement &); + SVGTextContentElement &operator=(const SVGTextContentElement &other); + SVGTextContentElement(SVGTextContentElementImpl *); + ~SVGTextContentElement(); + + SVGAnimatedLength textLength() const; + SVGAnimatedEnumeration lengthAdjust() const; + long getNumberOfChars(); + float getComputedTextLength(); +// float getSubStringLength(const unsigned long &charnum, const unsigned long &nchars); +// SVGPoint getStartPositionOfChar(const unsigned long &charnum); +// SVGPoint getEndPositionOfChar(const unsigned long &charnum); +// SVGRect getExtentOfChar(const unsigned long &charnum); +// float getRotationOfChar(const unsigned long &charnum); +// long getCharNumAtPosition(const SVGPoint &point); +// void selectSubString(const unsigned long &charnum, const unsigned long &nchars); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTextContentElementImpl *handle() const { return impl; } + +protected: + SVGTextContentElement(); + +private: + SVGTextContentElementImpl *impl; +}; + +} + +#endif diff --git a/ksvg/dom/SVGTextElement.cc b/ksvg/dom/SVGTextElement.cc new file mode 100644 index 00000000..b80a148a --- /dev/null +++ b/ksvg/dom/SVGTextElement.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGTextElement.h" +#include "SVGTextElementImpl.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGTextElement::SVGTextElement() : SVGTextPositioningElement(), SVGTransformable() +{ + impl = 0; +} + +SVGTextElement::SVGTextElement(const SVGTextElement &other) : SVGTextPositioningElement(other), SVGTransformable(other) +{ + (*this) = other; +} + +SVGTextElement &SVGTextElement::operator =(const SVGTextElement &other) +{ + SVGTextPositioningElement::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTextElement::SVGTextElement(SVGTextElementImpl *other) : SVGTextPositioningElement(other), SVGTransformable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTextElement::~SVGTextElement() +{ + if(impl) + impl->deref(); +} diff --git a/ksvg/dom/SVGTextElement.h b/ksvg/dom/SVGTextElement.h new file mode 100644 index 00000000..0bf459fe --- /dev/null +++ b/ksvg/dom/SVGTextElement.h @@ -0,0 +1,115 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. + + + This file includes excerpts from the Scalable Vector Graphics + (SVG) 1.0 Specification (Proposed Recommendation) + http://www.w3.org/TR/SVG + + Copyright � 2001 World Wide Web Consortium, (Massachusetts + Institute of Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. + + $Id$ + */ + + +#ifndef SVGTextElement_H +#define SVGTextElement_H + +#include "SVGTextPositioningElement.h" +#include "SVGTransformable.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGTextElementImpl; + +/** + * @short The <code>text</code> element defines a graphics element + * consisting of text. + * + * The XML character data within the <code>text</code> element, along + * with relevant attributes and properties and character-to-glyph + * mapping tables within the font itself, define the glyphs to be + * rendered. (See <a + * href="http://www.w3.org/TR/SVG/text.html#CharactersAndGlyphs"> Characters + * and their corresponding glyphs </a>.) The attributes and properties on the + * 'text' element indicate such things as the writing direction, font + * specification and painting attributes which describe how exactly to render + * the characters. Since <code>text</code> elements are rendered using the + * same rendering methods as other graphics elements, all of the same + * coordinate system transformations, painting, clipping and masking + * features that apply to shapes such as paths and rectangles also + * apply to <code>text</code> elements. + * + * It is possible to apply a gradient, pattern, clipping path, mask or + * filter to text.When one of these facilities is applied to text and + * keyword objectBoundingBox is used to specify a graphical effect + * relative to the "object bounding box", then the object bounding box + * units are computed relative to the entire 'text' element in all + * cases, even when different effects are applied to different 'tspan' + * elements within the same 'text' element. + * + + * The <code>text</code> element renders its first glyph (after <a + * href = "http://www.w3.org/TR/SVG/text.html#RelationshipWithBiDirectionality" + * >bidirectionality</a> reordering) at the initial current text + * position, which is established by the <code>x</code> and + * <code>y</code> attributes on the <code>text</code> element (with + * possible adjustments due to the value of the @ref text-anchor + * property, the presence of a @ref textPath element containing the + * first character, and/or an <code>x</code>, <code>y</code>, + * <code>dx</code> or <code>dy</code> attributes on a @ref tspan, @ref + * tref or @ref altGlyph element which contains the first character). + * After the glyph(s) corresponding to the given character is(are) + * rendered, the current text position is updated for the next + * character. In the simplest case, the new current text position is + * the previous current text position plus the glyphs' advance value + * (horizontal or vertical). + * + * @see SVGShape + * @see SVGTextPositioningElement + * + * For more info look here : <a href = + * "http://www.w3.org/TR/SVG/text.html#TextElement"> 10.4 The + * 'text' element</a>. + */ +class SVGTextElement : public SVGTextPositioningElement, + public SVGTransformable +{ +public: + SVGTextElement(); + SVGTextElement(const SVGTextElement &); + SVGTextElement &operator=(const SVGTextElement &other); + SVGTextElement(SVGTextElementImpl *); + ~SVGTextElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTextElementImpl *handle() const { return impl; } + +private: + SVGTextElementImpl *impl; +}; + +} + +#endif diff --git a/ksvg/dom/SVGTextPathElement.cc b/ksvg/dom/SVGTextPathElement.cc new file mode 100644 index 00000000..1cb6b833 --- /dev/null +++ b/ksvg/dom/SVGTextPathElement.cc @@ -0,0 +1,89 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTextPathElement.h" +#include "SVGTextPathElementImpl.h" +#include "SVGAnimatedEnumeration.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGTextPathElement::SVGTextPathElement() : SVGTextContentElement(), SVGURIReference() +{ + impl = new SVGTextPathElementImpl(0); + impl->ref(); +} + +SVGTextPathElement::SVGTextPathElement(const SVGTextPathElement &other) : SVGTextContentElement(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGTextPathElement &SVGTextPathElement::operator =(const SVGTextPathElement &other) +{ + SVGTextContentElement::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTextPathElement::SVGTextPathElement(SVGTextPathElementImpl *other) : SVGTextContentElement(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTextPathElement::~SVGTextPathElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGTextPathElement::startOffset() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->startOffset()); +} + +SVGAnimatedEnumeration SVGTextPathElement::method() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->method()); +} + +SVGAnimatedEnumeration SVGTextPathElement::spacing() const +{ + if(!impl) return SVGAnimatedEnumeration(0); + return SVGAnimatedEnumeration(impl->spacing()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTextPathElement.h b/ksvg/dom/SVGTextPathElement.h new file mode 100644 index 00000000..69c7fe79 --- /dev/null +++ b/ksvg/dom/SVGTextPathElement.h @@ -0,0 +1,70 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTextPathElement_H +#define SVGTextPathElement_H + +#include "SVGTextContentElement.h" +#include "SVGURIReference.h" + +namespace KSVG +{ + +enum +{ + TEXTPATH_METHODTYPE_UNKNOWN = 0, + TEXTPATH_METHODTYPE_ALIGN = 1, + TEXTPATH_METHODTYPE_STRETCH = 2 +}; + +enum +{ + TEXTPATH_SPACINGTYPE_UNKNOWN = 0, + TEXTPATH_SPACINGTYPE_AUTO = 1, + TEXTPATH_SPACINGTYPE_EXACT = 2 +}; + +class SVGTextPathElementImpl; +class SVGTextPathElement : public SVGTextContentElement, + public SVGURIReference +{ +public: + SVGTextPathElement(); + SVGTextPathElement(const SVGTextPathElement &other); + SVGTextPathElement &operator=(const SVGTextPathElement &other); + SVGTextPathElement(SVGTextPathElementImpl *other); + virtual ~SVGTextPathElement(); + + SVGAnimatedLength startOffset() const; + SVGAnimatedEnumeration method() const; + SVGAnimatedEnumeration spacing() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTextPathElementImpl *handle() const { return impl; } + +private: + SVGTextPathElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTextPositioningElement.cc b/ksvg/dom/SVGTextPositioningElement.cc new file mode 100644 index 00000000..6ce7d346 --- /dev/null +++ b/ksvg/dom/SVGTextPositioningElement.cc @@ -0,0 +1,85 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> +#include "SVGTextPositioningElement.h" +#include "SVGTextPositioningElementImpl.h" +#include "SVGAnimatedNumber.h" +#include "SVGAnimatedNumberList.h" +#include "SVGAnimatedLength.h" +#include "SVGAnimatedLengthList.h" + +using namespace KSVG; + +SVGTextPositioningElement::SVGTextPositioningElement() : SVGTextContentElement() +{ + impl = new SVGTextPositioningElementImpl(0); +} + +SVGTextPositioningElement::SVGTextPositioningElement(const SVGTextPositioningElement &other) : SVGTextContentElement(other) +{ + impl = other.impl; +} + +SVGTextPositioningElement &SVGTextPositioningElement::operator=(const SVGTextPositioningElement &other) +{ + SVGTextContentElement::operator=(other); + + if(impl == other.impl) + return *this; + + delete impl; + impl = other.impl; + + return *this; +} +SVGTextPositioningElement::SVGTextPositioningElement(SVGTextPositioningElementImpl *other) : SVGTextContentElement(other) +{ + impl = other; +} + +SVGTextPositioningElement::~SVGTextPositioningElement() +{ +} + +SVGAnimatedLengthList SVGTextPositioningElement::x() +{ + return SVGAnimatedLengthList(impl->x()); +} + +SVGAnimatedLengthList SVGTextPositioningElement::y() +{ + return SVGAnimatedLengthList(impl->y()); +} + +SVGAnimatedLengthList SVGTextPositioningElement::dx() +{ + return SVGAnimatedLengthList(impl->dx()); +} + +SVGAnimatedLengthList SVGTextPositioningElement::dy() +{ + return SVGAnimatedLengthList(impl->dy()); +} + +SVGAnimatedNumberList SVGTextPositioningElement::rotate() +{ + return SVGAnimatedNumberList(impl->rotate()); +} diff --git a/ksvg/dom/SVGTextPositioningElement.h b/ksvg/dom/SVGTextPositioningElement.h new file mode 100644 index 00000000..f02950ca --- /dev/null +++ b/ksvg/dom/SVGTextPositioningElement.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTextPositioningElement_H +#define SVGTextPositioningElement_H + +#include "SVGTextContentElement.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGAnimatedLengthList; +class SVGAnimatedNumber; +class SVGAnimatedNumberList; +class SVGTextPositioningElementImpl; +class SVGTextPositioningElement : public SVGTextContentElement +{ +public: + SVGTextPositioningElement(const SVGTextPositioningElement &); + SVGTextPositioningElement &operator=(const SVGTextPositioningElement &other); + SVGTextPositioningElement(SVGTextPositioningElementImpl *); + ~SVGTextPositioningElement(); + + SVGAnimatedLengthList x(); + SVGAnimatedLengthList y(); + SVGAnimatedLengthList dx(); + SVGAnimatedLengthList dy(); + SVGAnimatedNumberList rotate(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTextPositioningElementImpl *handle() const { return impl; } + +protected: + SVGTextPositioningElement(); + +private: + SVGTextPositioningElementImpl *impl; +}; + +} + +#endif diff --git a/ksvg/dom/SVGTitleElement.cc b/ksvg/dom/SVGTitleElement.cc new file mode 100644 index 00000000..f319c126 --- /dev/null +++ b/ksvg/dom/SVGTitleElement.cc @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTitleElement.h" +#include "SVGTitleElementImpl.h" + +using namespace KSVG; + +SVGTitleElement::SVGTitleElement() : SVGElement(), SVGLangSpace(), SVGStylable() +{ + impl = 0; +} + +SVGTitleElement::SVGTitleElement(const SVGTitleElement &other) : SVGElement(other), SVGLangSpace(other), SVGStylable(other), impl(0) +{ + (*this) = other; +} + +SVGTitleElement &SVGTitleElement::operator =(const SVGTitleElement &other) +{ + SVGElement::operator=(other); + SVGLangSpace::operator=(other); + SVGStylable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTitleElement::SVGTitleElement(SVGTitleElementImpl *other) : SVGElement(other), SVGLangSpace(other), SVGStylable(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTitleElement::~SVGTitleElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTitleElement.h b/ksvg/dom/SVGTitleElement.h new file mode 100644 index 00000000..95f26272 --- /dev/null +++ b/ksvg/dom/SVGTitleElement.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTitleElement_H +#define SVGTitleElement_H + +#include "SVGElement.h" +#include "SVGLangSpace.h" +#include "SVGStylable.h" + +namespace KSVG +{ + +class SVGTitleElementImpl; +class SVGTitleElement : public SVGElement, + public SVGLangSpace, + public SVGStylable +{ +public: + SVGTitleElement(); + SVGTitleElement(const SVGTitleElement &other); + SVGTitleElement &operator=(const SVGTitleElement &other); + SVGTitleElement(SVGTitleElementImpl *other); + virtual ~SVGTitleElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTitleElementImpl *handle() const { return impl; } + +private: + SVGTitleElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTransform.cc b/ksvg/dom/SVGTransform.cc new file mode 100644 index 00000000..df660678 --- /dev/null +++ b/ksvg/dom/SVGTransform.cc @@ -0,0 +1,119 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTransformImpl.h" +#include "SVGTransform.h" +#include "SVGMatrix.h" + +using namespace KSVG; + +SVGTransform::SVGTransform() +{ + impl = new SVGTransformImpl(); + impl->ref(); +} + +SVGTransform::SVGTransform(const SVGTransform &other) : impl(0) +{ + (*this) = other; +} + +SVGTransform &SVGTransform::operator=(const SVGTransform &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTransform::SVGTransform(SVGTransformImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTransform::~SVGTransform() +{ +} + +unsigned short SVGTransform::type() const +{ + if(!impl) return SVG_TRANSFORM_UNKNOWN; + return impl->type(); +} + +SVGMatrix SVGTransform::matrix() const +{ + if(!impl) return SVGMatrix(0); + return SVGMatrix(impl->matrix()); +} + +double SVGTransform::angle() const +{ + if(!impl) return -1; + return impl->angle(); +} + +void SVGTransform::setMatrix(SVGMatrix matrix) +{ + if(impl) + impl->setMatrix(matrix.handle()); +} + +void SVGTransform::setTranslate(double tx, double ty) +{ + if(impl) + impl->setTranslate(tx, ty); +} + +void SVGTransform::setScale(double sx, double sy) +{ + if(impl) + impl->setScale(sx, sy); +} + +void SVGTransform::setRotate(double angle, double cx, double cy) +{ + if(impl) + impl->setRotate(angle, cx, cy); +} + +void SVGTransform::setSkewX(double angle) +{ + if(impl) + impl->setSkewX(angle); +} + +void SVGTransform::setSkewY(double angle) +{ + if(impl) + impl->setSkewY(angle); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTransform.h b/ksvg/dom/SVGTransform.h new file mode 100644 index 00000000..b7ca927f --- /dev/null +++ b/ksvg/dom/SVGTransform.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTransform_H +#define SVGTransform_H + +namespace KSVG +{ + +enum +{ + SVG_TRANSFORM_UNKNOWN = 0, + SVG_TRANSFORM_MATRIX = 1, + SVG_TRANSFORM_TRANSLATE = 2, + SVG_TRANSFORM_SCALE = 3, + SVG_TRANSFORM_ROTATE = 4, + SVG_TRANSFORM_SKEWX = 5, + SVG_TRANSFORM_SKEWY = 6 +}; + +class SVGMatrix; +class SVGTransformImpl; +class SVGTransform +{ +public: + SVGTransform(); + SVGTransform(const SVGTransform &); + SVGTransform &operator=(const SVGTransform &); + SVGTransform(SVGTransformImpl *); + ~SVGTransform(); + + unsigned short type() const; + SVGMatrix matrix() const; + double angle() const; + + void setMatrix(SVGMatrix); + void setTranslate(double, double); + void setScale(double, double); + void setRotate(double, double, double); + void setSkewX(double); + void setSkewY(double); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTransformImpl *handle() const { return impl; } + +private: + SVGTransformImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTransformList.cc b/ksvg/dom/SVGTransformList.cc new file mode 100644 index 00000000..541db510 --- /dev/null +++ b/ksvg/dom/SVGTransformList.cc @@ -0,0 +1,129 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTransformList.h" +#include "SVGTransformListImpl.h" +#include "SVGSVGElementImpl.h" +#include "SVGMatrix.h" +#include "SVGTransform.h" + +using namespace KSVG; + +SVGTransformList::SVGTransformList() +{ + impl = new SVGTransformListImpl(); + impl->ref(); +} + +SVGTransformList::SVGTransformList(const SVGTransformList &other) +{ + (*this) = other; +} + +SVGTransformList &SVGTransformList::operator=(const SVGTransformList &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGTransformList::SVGTransformList(SVGTransformListImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGTransformList::~SVGTransformList() +{ + if(impl) + impl->deref(); +} + +unsigned long SVGTransformList::numberOfItems() const +{ + if(!impl) return 0; + return impl->numberOfItems(); +} + +void SVGTransformList::clear() +{ + if(impl) + impl->clear(); +} + +SVGTransform *SVGTransformList::initialize(SVGTransform *newItem) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(impl->initialize(newItem->handle())); +} + +SVGTransform *SVGTransformList::getItem(unsigned long index) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(impl->getItem(index)); +} + +SVGTransform *SVGTransformList::insertItemBefore(SVGTransform *newItem, unsigned long index) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(impl->insertItemBefore(newItem->handle(), index)); +} + +SVGTransform *SVGTransformList::replaceItem(SVGTransform *newItem, unsigned long index) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(impl->replaceItem(newItem->handle(), index)); +} + +SVGTransform *SVGTransformList::removeItem(unsigned long index) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(impl->removeItem(index)); +} + +SVGTransform *SVGTransformList::appendItem(SVGTransform *newItem) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(impl->appendItem(newItem->handle())); +} + +SVGTransform *SVGTransformList::createSVGTransformFromMatrix(SVGMatrix &matrix) +{ + if(!impl) return new SVGTransform(0); + return new SVGTransform(SVGSVGElementImpl::createSVGTransformFromMatrix(matrix.handle())); +} + +SVGTransform *SVGTransformList::consolidate() +{ + if(!impl || impl->numberOfItems()==0) return 0; + return new SVGTransform(impl->consolidate()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTransformList.h b/ksvg/dom/SVGTransformList.h new file mode 100644 index 00000000..8d448718 --- /dev/null +++ b/ksvg/dom/SVGTransformList.h @@ -0,0 +1,63 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTransformList_H +#define SVGTransformList_H + +namespace KSVG +{ + +class SVGMatrix; +class SVGTransform; +class SVGTransformListImpl; +class SVGTransformList +{ +public: + SVGTransformList(); + SVGTransformList(const SVGTransformList &); + SVGTransformList &operator=(const SVGTransformList &); + SVGTransformList(SVGTransformListImpl *); + ~SVGTransformList(); + + unsigned long numberOfItems() const; + void clear(); + + SVGTransform *initialize(SVGTransform *newItem); + SVGTransform *getItem(unsigned long index); + SVGTransform *insertItemBefore(SVGTransform *newItem, unsigned long index); + SVGTransform *replaceItem(SVGTransform *newItem, unsigned long index); + SVGTransform *removeItem(unsigned long index); + SVGTransform *appendItem(SVGTransform *newItem); + + SVGTransform *createSVGTransformFromMatrix(SVGMatrix &matrix); + SVGTransform *consolidate(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTransformListImpl *handle() const { return impl; } + +private: + SVGTransformListImpl *impl; +}; + +} + +#endif +// vim:ts=4:noet + diff --git a/ksvg/dom/SVGTransformable.cc b/ksvg/dom/SVGTransformable.cc new file mode 100644 index 00000000..64530d39 --- /dev/null +++ b/ksvg/dom/SVGTransformable.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGTransformable.h" +#include "SVGTransformableImpl.h" +#include "SVGAnimatedTransformList.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGTransformable::SVGTransformable() : SVGLocatable() +{ + impl = 0; +} + +SVGTransformable::SVGTransformable(const SVGTransformable &other) : SVGLocatable(other) +{ + (*this) = other; +} + +SVGTransformable &SVGTransformable::operator=(const SVGTransformable &other) +{ + SVGLocatable::operator=(other); + + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGTransformable::SVGTransformable(SVGTransformableImpl *other) : SVGLocatable(other) +{ + impl = other; +} + +SVGTransformable::~SVGTransformable() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +SVGAnimatedTransformList SVGTransformable::transform() +{ + if(!impl) return SVGAnimatedTransformList(0); + return SVGAnimatedTransformList(impl->transform()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGTransformable.h b/ksvg/dom/SVGTransformable.h new file mode 100644 index 00000000..54bf0a40 --- /dev/null +++ b/ksvg/dom/SVGTransformable.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGTransformable_H +#define SVGTransformable_H + +#include "SVGLocatable.h" + +namespace KSVG +{ + +class SVGAnimatedTransformList; +class SVGTransformableImpl; +class SVGTransformable : public SVGLocatable +{ +public: + SVGTransformable(const SVGTransformable &other); + SVGTransformable &operator=(const SVGTransformable &other); + SVGTransformable(SVGTransformableImpl *other); + virtual ~SVGTransformable(); + + SVGAnimatedTransformList transform(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGTransformableImpl *handle() const { return impl; } + +protected: + SVGTransformable(); + +private: + SVGTransformableImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGURIReference.cc b/ksvg/dom/SVGURIReference.cc new file mode 100644 index 00000000..e872e9d6 --- /dev/null +++ b/ksvg/dom/SVGURIReference.cc @@ -0,0 +1,63 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGURIReference.h" +#include "SVGURIReferenceImpl.h" +#include "SVGAnimatedString.h" + +using namespace KSVG; + +SVGURIReference::SVGURIReference() +{ + impl = new SVGURIReferenceImpl(); +} + +SVGURIReference::SVGURIReference(const SVGURIReference &other) +{ + impl = other.impl; +} + +SVGURIReference &SVGURIReference::operator=(const SVGURIReference &other) +{ + if(impl == other.impl) + return *this; + + delete impl; + impl = other.impl; + + return *this; +} + +SVGURIReference::SVGURIReference(SVGURIReferenceImpl *other) +{ + impl = other; +} + +SVGURIReference::~SVGURIReference() +{ +} + +SVGAnimatedString SVGURIReference::href() const +{ + if(!impl) return SVGAnimatedString(0); + return SVGAnimatedString(impl->href()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGURIReference.h b/ksvg/dom/SVGURIReference.h new file mode 100644 index 00000000..571cd2b2 --- /dev/null +++ b/ksvg/dom/SVGURIReference.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGURIReference_H +#define SVGURIReference_H + +namespace KSVG +{ + +class SVGAnimatedString; +class SVGURIReferenceImpl; +class SVGURIReference +{ +public: + SVGURIReference(const SVGURIReference &other); + SVGURIReference &operator=(const SVGURIReference &other); + SVGURIReference(SVGURIReferenceImpl *other); + virtual ~SVGURIReference(); + + SVGAnimatedString href() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGURIReferenceImpl *handle() const { return impl; } + +protected: + SVGURIReference(); + +private: + SVGURIReferenceImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGUnitTypes.h b/ksvg/dom/SVGUnitTypes.h new file mode 100644 index 00000000..76079af2 --- /dev/null +++ b/ksvg/dom/SVGUnitTypes.h @@ -0,0 +1,41 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGUnitTypes_H +#define SVGUnitTypes_H + +namespace KSVG +{ + +struct SVGUnitTypes +{ + enum + { + SVG_UNIT_TYPE_UNKNOWN = 0, + SVG_UNIT_TYPE_USERSPACEONUSE = 1, + SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2 + }; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGUseElement.cc b/ksvg/dom/SVGUseElement.cc new file mode 100644 index 00000000..8cd8ef26 --- /dev/null +++ b/ksvg/dom/SVGUseElement.cc @@ -0,0 +1,111 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGUseElement.h" +#include "SVGUseElementImpl.h" +#include "SVGElementInstance.h" +#include "SVGAnimatedLength.h" + +using namespace KSVG; + +SVGUseElement::SVGUseElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGURIReference() +{ + impl = 0; +} + +SVGUseElement::SVGUseElement(const SVGUseElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGURIReference(other), impl(0) +{ + (*this) = other; +} + +SVGUseElement &SVGUseElement::operator =(const SVGUseElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + SVGURIReference::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGUseElement::SVGUseElement(SVGUseElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGURIReference(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGUseElement::~SVGUseElement() +{ + if(impl) + impl->deref(); +} + +SVGAnimatedLength SVGUseElement::x() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->x()); +} + +SVGAnimatedLength SVGUseElement::y() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->y()); +} + +SVGAnimatedLength SVGUseElement::width() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->width()); +} + +SVGAnimatedLength SVGUseElement::height() const +{ + if(!impl) return SVGAnimatedLength(0); + return SVGAnimatedLength(impl->height()); +} + +SVGElementInstance SVGUseElement::instanceRoot() const +{ + if(!impl) return SVGElementInstance(0); + return impl->instanceRoot(); +} + +SVGElementInstance SVGUseElement::animatedInstanceRoot() const +{ + if(!impl) return SVGElementInstance(0); + return impl->animatedInstanceRoot(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGUseElement.h b/ksvg/dom/SVGUseElement.h new file mode 100644 index 00000000..fb494abb --- /dev/null +++ b/ksvg/dom/SVGUseElement.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGUseElement_H +#define SVGUseElement_H + +#include "SVGElement.h" +#include "SVGTests.h" +#include "SVGLangSpace.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGStylable.h" +#include "SVGTransformable.h" +#include "SVGURIReference.h" + +namespace KSVG +{ + +class SVGAnimatedLength; +class SVGElementInstance; +class SVGUseElementImpl; +class SVGUseElement : public SVGElement, + public SVGTests, + public SVGLangSpace, + public SVGExternalResourcesRequired, + public SVGStylable, + public SVGTransformable, + public SVGURIReference +{ +public: + SVGUseElement(); + SVGUseElement(const SVGUseElement &other); + SVGUseElement &operator=(const SVGUseElement &other); + SVGUseElement(SVGUseElementImpl *other); + virtual ~SVGUseElement(); + + SVGAnimatedLength x() const; + SVGAnimatedLength y() const; + SVGAnimatedLength width() const; + SVGAnimatedLength height() const; + SVGElementInstance instanceRoot() const; + SVGElementInstance animatedInstanceRoot() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGUseElementImpl *handle() const { return impl; } + +private: + SVGUseElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGVKernElement.cc b/ksvg/dom/SVGVKernElement.cc new file mode 100644 index 00000000..ad6dbee5 --- /dev/null +++ b/ksvg/dom/SVGVKernElement.cc @@ -0,0 +1,67 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGVKernElement.h" +#include "SVGVKernElementImpl.h" + +using namespace KSVG; + +SVGVKernElement::SVGVKernElement() : SVGElement() +{ + impl = 0; +} + +SVGVKernElement::SVGVKernElement(const SVGVKernElement &other) : SVGElement(other), impl(0) +{ + (*this) = other; +} + +SVGVKernElement &SVGVKernElement::operator =(const SVGVKernElement &other) +{ + SVGElement::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGVKernElement::SVGVKernElement(SVGVKernElementImpl *other) : SVGElement(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGVKernElement::~SVGVKernElement() +{ + if(impl) + impl->deref(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGVKernElement.h b/ksvg/dom/SVGVKernElement.h new file mode 100644 index 00000000..6649ab1a --- /dev/null +++ b/ksvg/dom/SVGVKernElement.h @@ -0,0 +1,50 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGVKernElement_H +#define SVGVKernElement_H + +#include "SVGElement.h" + +namespace KSVG +{ + +class SVGVKernElementImpl; +class SVGVKernElement : public SVGElement +{ +public: + SVGVKernElement(); + SVGVKernElement(const SVGVKernElement &other); + SVGVKernElement &operator=(const SVGVKernElement &other); + SVGVKernElement(SVGVKernElementImpl *other); + virtual ~SVGVKernElement(); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGVKernElementImpl *handle() const { return impl; } + +private: + SVGVKernElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGViewElement.cc b/ksvg/dom/SVGViewElement.cc new file mode 100644 index 00000000..040d6966 --- /dev/null +++ b/ksvg/dom/SVGViewElement.cc @@ -0,0 +1,77 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGViewElement.h" +#include "SVGViewElementImpl.h" +#include "SVGStringList.h" + +using namespace KSVG; + +SVGViewElement::SVGViewElement() : SVGElement(), SVGExternalResourcesRequired(), SVGFitToViewBox(), SVGZoomAndPan() +{ + impl = 0; +} + +SVGViewElement::SVGViewElement(const SVGViewElement &other) : SVGElement(other), SVGExternalResourcesRequired(other), SVGFitToViewBox(other), SVGZoomAndPan(other), impl(0) +{ + (*this) = other; +} + +SVGViewElement &SVGViewElement::operator =(const SVGViewElement &other) +{ + SVGElement::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGFitToViewBox::operator=(other); + SVGZoomAndPan::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGViewElement::SVGViewElement(SVGViewElementImpl *other) : SVGElement(other), SVGExternalResourcesRequired(other), SVGFitToViewBox(other), SVGZoomAndPan(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGViewElement::~SVGViewElement() +{ + if(impl) + impl->deref(); +} + +SVGStringList SVGViewElement::viewTarget() const +{ + if(!impl) return SVGStringList(0); + return SVGStringList(impl->viewTarget()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGViewElement.h b/ksvg/dom/SVGViewElement.h new file mode 100644 index 00000000..fccedbc8 --- /dev/null +++ b/ksvg/dom/SVGViewElement.h @@ -0,0 +1,59 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGViewElement_H +#define SVGViewElement_H + +#include "SVGElement.h" +#include "SVGExternalResourcesRequired.h" +#include "SVGFitToViewBox.h" +#include "SVGZoomAndPan.h" + +namespace KSVG +{ + +class SVGStringList; +class SVGViewElementImpl; +class SVGViewElement : public SVGElement, + public SVGExternalResourcesRequired, + public SVGFitToViewBox, + public SVGZoomAndPan +{ +public: + SVGViewElement(); + SVGViewElement(const SVGViewElement &other); + SVGViewElement &operator=(const SVGViewElement &other); + SVGViewElement(SVGViewElementImpl *other); + virtual ~SVGViewElement(); + + SVGStringList viewTarget() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGViewElementImpl *handle() const { return impl; } + +private: + SVGViewElementImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGViewSpec.cc b/ksvg/dom/SVGViewSpec.cc new file mode 100644 index 00000000..a01f7b86 --- /dev/null +++ b/ksvg/dom/SVGViewSpec.cc @@ -0,0 +1,107 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGViewSpec.h" +#include "SVGViewSpecImpl.h" +#include "SVGElement.h" +#include "SVGTransformList.h" + +using namespace KSVG; + +SVGViewSpec::SVGViewSpec() : SVGZoomAndPan(), SVGFitToViewBox() +{ + impl = new SVGViewSpecImpl(); + impl->ref(); +} + +SVGViewSpec::SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other), impl(0) +{ + (*this) = other; +} + +SVGViewSpec &SVGViewSpec::operator =(const SVGViewSpec &other) +{ + SVGZoomAndPan::operator=(other); + SVGFitToViewBox::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGViewSpec::SVGViewSpec(SVGViewSpecImpl *other) : SVGZoomAndPan(other), SVGFitToViewBox(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGViewSpec::~SVGViewSpec() +{ + if(impl) + impl->deref(); +} + +SVGTransformList SVGViewSpec::transform() const +{ + if(!impl) return SVGTransformList(0); + return SVGTransformList(impl->transform()); +} + +SVGElement SVGViewSpec::viewTarget() const +{ + if(!impl) return SVGElement(0); + return SVGElement(impl->viewTarget()); +} + +DOM::DOMString SVGViewSpec::viewBoxString() const +{ + if(!impl) return DOM::DOMString(); + return impl->viewBoxString(); +} + +DOM::DOMString SVGViewSpec::preserveAspectRatioString() const +{ + if(!impl) return DOM::DOMString(); + return impl->preserveAspectRatioString(); +} + +DOM::DOMString SVGViewSpec::transformString() const +{ + if(!impl) return DOM::DOMString(); + return impl->transformString(); +} + +DOM::DOMString SVGViewSpec::viewTargetString() const +{ + if(!impl) return DOM::DOMString(); + return impl->viewTargetString(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGViewSpec.h b/ksvg/dom/SVGViewSpec.h new file mode 100644 index 00000000..c1c7ef8e --- /dev/null +++ b/ksvg/dom/SVGViewSpec.h @@ -0,0 +1,63 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGViewSpec_H +#define SVGViewSpec_H + +#include "SVGZoomAndPan.h" +#include "SVGFitToViewBox.h" +#include <dom/dom_string.h> + +namespace KSVG +{ + +class SVGTransformList; +class SVGElement; +class SVGViewSpecImpl; +class SVGViewSpec : public SVGZoomAndPan, + public SVGFitToViewBox +{ +public: + SVGViewSpec(); + SVGViewSpec(const SVGViewSpec &other); + SVGViewSpec &operator=(const SVGViewSpec &other); + SVGViewSpec(SVGViewSpecImpl *other); + virtual ~SVGViewSpec(); + + SVGTransformList transform() const; + SVGElement viewTarget() const; + + DOM::DOMString viewBoxString() const; + DOM::DOMString preserveAspectRatioString() const; + DOM::DOMString transformString() const; + DOM::DOMString viewTargetString() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGViewSpecImpl *handle() const { return impl; } + +private: + SVGViewSpecImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGWindow.cc b/ksvg/dom/SVGWindow.cc new file mode 100644 index 00000000..9f0fedaf --- /dev/null +++ b/ksvg/dom/SVGWindow.cc @@ -0,0 +1,175 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGWindow.h" +#include "SVGWindowImpl.h" +#include "SVGDocument.h" + +using namespace KSVG; + +SVGWindow::SVGWindow() +{ + impl = new SVGWindowImpl(); + impl->ref(); +} + +SVGWindow::SVGWindow(const SVGWindow &other) : impl(0) +{ + (*this) = other; +} + +SVGWindow &SVGWindow::operator =(const SVGWindow &other) +{ + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGWindow::SVGWindow(SVGWindowImpl *other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGWindow::~SVGWindow() +{ + if(impl) + impl->deref(); +} + +/*StyleSheet SVGWindow::defaultStyleSheet() const +{ + if(!impl) return ; // FIXME + return impl->defaultStyleSheet(); +}*/ + +SVGDocument SVGWindow::document() const +{ + if(!impl) return SVGDocument(0); // FIXME + return impl->document(); +} + +DOM::Event SVGWindow::evt() const +{ + if(!impl) return DOM::Event(); // FIXME + return impl->evt(); +} + +long SVGWindow::innerHeight() const +{ + if(!impl) return 0; // FIXME + return impl->innerHeight(); +} + +long SVGWindow::innerWidth() const +{ + if(!impl) return 0; // FIXME + return impl->innerWidth(); +} + +void SVGWindow::setSrc(const DOM::DOMString &src) +{ + if(impl) + impl->setSrc(src); +} + +DOM::DOMString SVGWindow::src() const +{ + if(!impl) return DOM::DOMString(); // FIXME + return impl->src(); +} + +void SVGWindow::clearInterval(long interval) +{ + if(impl) + impl->clearInterval(interval); +} + +void SVGWindow::clearTimeout(long timeout) +{ + if(impl) + impl->clearTimeout(timeout); +} + +void SVGWindow::getURL(const DOM::DOMString &uri, const DOM::EventListener &callback) +{ + if(impl) + impl->getURL(uri, callback); +} + +/*DocumentFragment SVGWindow::parseXML(const DOM::DOMString &source, const Document &document) +{ + if(!impl) return ; // FIXME + return impl->parseXML(source, document); +}*/ + +void SVGWindow::postURL(const DOM::DOMString &uri, const DOM::DOMString &data, const DOM::EventListener &callback, const DOM::DOMString &mimeType, const DOM::DOMString &contentEncoding) +{ + if(impl) + impl->postURL(uri, data, callback, mimeType, contentEncoding); +} + +DOM::DOMString SVGWindow::printNode(const DOM::Node &node) +{ + if(!impl) return DOM::DOMString(); // FIXME + return impl->printNode(node); +} + +long SVGWindow::setInterval(const DOM::DOMString &code, const long &delay) +{ + if(!impl) return 0; // FIXME + return impl->setInterval(code, delay); +} + +long SVGWindow::setTimeout(const DOM::DOMString &code, const long &delay) +{ + if(!impl) return 0; // FIXME + return impl->setTimeout(code, delay); +} + +void SVGWindow::alert(const DOM::DOMString &message) +{ + if(impl) + impl->alert(message); +} + +bool SVGWindow::confirm(const DOM::DOMString &message) +{ + if(!impl) return false; // FIXME + return impl->confirm(message); +} + +DOM::DOMString SVGWindow::prompt(const DOM::DOMString &message, const DOM::DOMString &_default) +{ + if(!impl) return DOM::DOMString(); // FIXME + return impl->prompt(message, _default); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGWindow.h b/ksvg/dom/SVGWindow.h new file mode 100644 index 00000000..2389286f --- /dev/null +++ b/ksvg/dom/SVGWindow.h @@ -0,0 +1,127 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGWindow_H +#define SVGWindow_H + +#include <dom/dom_string.h> +#include <dom/dom_node.h> +#include <dom/dom2_events.h> + +namespace KSVG +{ + +class SVGDocument; +class SVGWindowImpl; + +class SVGWindow +{ +public: + SVGWindow(); + SVGWindow(const SVGWindow &other); + SVGWindow &operator=(const SVGWindow &other); + SVGWindow(SVGWindowImpl *other); + virtual ~SVGWindow(); + + //StyleSheet defaultStyleSheet() const; + SVGDocument document() const; + DOM::Event evt() const; + + /** + * @return Viewport height in pixels. + */ + long innerHeight() const; + + /** + * @return Viewport width in pixels. + */ + long innerWidth() const; + + void setSrc(const DOM::DOMString &src); + + /** + * @return The URI of the current document. + */ + DOM::DOMString src() const; + + void clearInterval(long interval); + void clearTimeout(long timeout); + + /** + * Get data from the given URL using the HTTP GET method. Notify the callback when done. + * + * @param uri The URI reference for the data to be loaded. + * @param callback The method to be invoked when the data is available. + */ + void getURL(const DOM::DOMString &uri, const DOM::EventListener &callback); + //DOM::DocumentFragment parseXML(const DOM::DOMString &source, const DOM::Document &document); + void postURL(const DOM::DOMString &uri, const DOM::DOMString &data, const DOM::EventListener &callback, const DOM::DOMString &mimeType, const DOM::DOMString &contentEncoding); + + /** + * Converts a Node into a DOMString. The string is an XML representation of the Node. + * + * @param node The Node to be converted. + * @return Converts a Node into a DOMString. The string is an XML representation of the Node. + */ + DOM::DOMString printNode(const DOM::Node &node); + long setInterval(const DOM::DOMString &code, const long &delay); + long setTimeout(const DOM::DOMString &code, const long &delay); + + /** + * Displays a modal synchronous message to the user if possible in the current user environment. + * Commonly, this message takes the form of a pop-up window with a single dispose button. + * + * @param message The message to be displayed. + */ + void alert(const DOM::DOMString &message); + + /** + * Displays a modal synchronous message to the user if possible in the current user environment. + * The user is able to accept or reject the message. Commonly, this message takes the form of + * a pop-up window with either a Yes/No or OK/Cancel button pair. + * + * @param message The message to be displayed. + * @return A boolean indicating the user's response. True for accept, False for reject. + */ + bool confirm(const DOM::DOMString &message); + + /** + * Displays a modal synchronous message to the user if possible in the current user environment. + * The user is able to enter a response to the message. Commonly, this message takes the form of + * a pop-up window with a single text entry field. + * + * @param message The message to be displayed. + * @param _default The default response to suggest to the user. This can be displayed in the text field and be modified by the user. + * @return A boolean indicating the user's response. True for accept, False for reject. + */ + DOM::DOMString prompt(const DOM::DOMString &message, const DOM::DOMString &_default); + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGWindowImpl *handle() const { return impl; } + +private: + SVGWindowImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGZoomAndPan.cc b/ksvg/dom/SVGZoomAndPan.cc new file mode 100644 index 00000000..a65284f1 --- /dev/null +++ b/ksvg/dom/SVGZoomAndPan.cc @@ -0,0 +1,70 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGZoomAndPan.h" +#include "SVGZoomAndPanImpl.h" + +using namespace KSVG; + +// This class can't be constructed seperately. +SVGZoomAndPan::SVGZoomAndPan() +{ + impl = 0; +} + +SVGZoomAndPan::SVGZoomAndPan(const SVGZoomAndPan &other) : impl(0) +{ + (*this) = other; +} + +SVGZoomAndPan &SVGZoomAndPan::operator=(const SVGZoomAndPan &other) +{ + if(impl == other.impl) + return *this; + + impl = other.impl; + + return *this; +} + +SVGZoomAndPan::SVGZoomAndPan(SVGZoomAndPanImpl *other) +{ + impl = other; +} + +SVGZoomAndPan::~SVGZoomAndPan() +{ + // We are not allowed to delete 'impl' as it's not refcounted. + // delete impl; +} + +void SVGZoomAndPan::setZoomAndPan(unsigned short zoomAndPan) +{ + if(impl) + impl->setZoomAndPan(zoomAndPan); +} + +unsigned short SVGZoomAndPan::zoomAndPan() const +{ + if(!impl) return SVG_ZOOMANDPAN_UNKNOWN; + return impl->zoomAndPan(); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGZoomAndPan.h b/ksvg/dom/SVGZoomAndPan.h new file mode 100644 index 00000000..0a1cdf19 --- /dev/null +++ b/ksvg/dom/SVGZoomAndPan.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGZoomAndPan_H +#define SVGZoomAndPan_H + +namespace KSVG +{ + +enum ZoomAndPan +{ + SVG_ZOOMANDPAN_UNKNOWN = 0, + SVG_ZOOMANDPAN_DISABLE = 1, + SVG_ZOOMANDPAN_MAGNIFY = 2 +}; + +class SVGZoomAndPanImpl; +class SVGZoomAndPan +{ +public: + SVGZoomAndPan(const SVGZoomAndPan &other); + SVGZoomAndPan &operator=(const SVGZoomAndPan &other); + SVGZoomAndPan(SVGZoomAndPanImpl *other); + virtual ~SVGZoomAndPan(); + + void setZoomAndPan(unsigned short zoomAndPan); + unsigned short zoomAndPan() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGZoomAndPanImpl *handle() const { return impl; } + +protected: + SVGZoomAndPan(); + +private: + SVGZoomAndPanImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGZoomEvent.cc b/ksvg/dom/SVGZoomEvent.cc new file mode 100644 index 00000000..bc73a438 --- /dev/null +++ b/ksvg/dom/SVGZoomEvent.cc @@ -0,0 +1,99 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGZoomEvent.h" +#include "SVGZoomEventImpl.h" +#include "SVGRect.h" +#include "SVGPoint.h" + +using namespace KSVG; + +SVGZoomEvent::SVGZoomEvent() : DOM::UIEvent() +{ + impl = 0; +} + +SVGZoomEvent::SVGZoomEvent(const SVGZoomEvent &other) : DOM::UIEvent(other), impl(0) +{ + (*this) = other; +} + +SVGZoomEvent &SVGZoomEvent::operator =(const SVGZoomEvent &other) +{ + DOM::UIEvent::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGZoomEvent::SVGZoomEvent(SVGZoomEventImpl *other) : DOM::UIEvent() +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGZoomEvent::~SVGZoomEvent() +{ + if(impl) + impl->deref(); +} + +SVGRect SVGZoomEvent::zoomRectScreen() const +{ + if(!impl) return SVGRect(0); + return SVGRect(impl->zoomRectScreen()); +} + +float SVGZoomEvent::previousScale() const +{ + if(!impl) return -1; + return impl->previousScale(); +} + +SVGPoint SVGZoomEvent::previousTranslate() const +{ + if(!impl) return SVGPoint(0); + return SVGPoint(impl->previousTranslate()); +} + +float SVGZoomEvent::newScale() const +{ + if(!impl) return -1; + return impl->newScale(); +} + +SVGPoint SVGZoomEvent::newTranslate() const +{ + if(!impl) return SVGPoint(0); + return SVGPoint(impl->newTranslate()); +} + +// vim:ts=4:noet diff --git a/ksvg/dom/SVGZoomEvent.h b/ksvg/dom/SVGZoomEvent.h new file mode 100644 index 00000000..f759e9bd --- /dev/null +++ b/ksvg/dom/SVGZoomEvent.h @@ -0,0 +1,58 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef SVGZoomEvent_H +#define SVGZoomEvent_H + +#include <dom/dom2_events.h> + +namespace KSVG +{ + +class SVGRect; +class SVGPoint; +class SVGZoomEventImpl; +class SVGZoomEvent : public DOM::UIEvent +{ +public: + SVGZoomEvent(); + SVGZoomEvent(const SVGZoomEvent &other); + SVGZoomEvent &operator=(const SVGZoomEvent &other); + SVGZoomEvent(SVGZoomEventImpl *other); + virtual ~SVGZoomEvent(); + + SVGRect zoomRectScreen() const; + float previousScale() const; + SVGPoint previousTranslate() const; + float newScale() const; + SVGPoint newTranslate() const; + + // Internal! - NOT PART OF THE SVG SPECIFICATION + SVGZoomEventImpl *handle() const { return impl; } + +private: + SVGZoomEventImpl *impl; +}; + +} + +#endif + +// vim:ts=4:noet |