diff options
Diffstat (limited to 'src/lib/PictSVGGenerator.h')
-rw-r--r-- | src/lib/PictSVGGenerator.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/lib/PictSVGGenerator.h b/src/lib/PictSVGGenerator.h new file mode 100644 index 0000000..3e56914 --- /dev/null +++ b/src/lib/PictSVGGenerator.h @@ -0,0 +1,79 @@ +/* libpict + * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org) + * Copyright (C) 2005 Fridrich Strba (fridrich.strba@bluewin.ch) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02111-1301 USA + * + * For further information visit http://libpict.sourceforge.net + */ + +/* "This product is not manufactured, approved, or supported by + * Corel Corporation or Corel Corporation Limited." + */ + +#ifndef __PictSVGGENERATOR_H__ +#define __PictSVGGENERATOR_H__ + +#include <stdio.h> +#include <iostream> +#include <libwpd/libwpd.h> +#include <libwpg/libwpg.h> +#include "libpict.h" + +namespace libpict +{ + +class PictSVGGenerator : public libwpg::WPGPaintInterface { +public: + PictSVGGenerator(std::ostream & output_sink); + ~PictSVGGenerator(); + + void startGraphics(const ::WPXPropertyList &propList); + void endGraphics(); + void startLayer(const ::WPXPropertyList& propList); + void endLayer(); + void startEmbeddedGraphics(const ::WPXPropertyList & /*propList*/) {} + void endEmbeddedGraphics() {} + + void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient); + + void drawRectangle(const ::WPXPropertyList &propList); + void drawEllipse(const ::WPXPropertyList &propList); + void drawPolyline(const ::WPXPropertyListVector &vertices); + void drawPolygon(const ::WPXPropertyListVector &vertices); + void drawPath(const ::WPXPropertyListVector &path); + void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData); + void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path); + void endTextObject(); + void startTextLine(const ::WPXPropertyList & /* propList */) {} + void endTextLine() {} + void startTextSpan(const ::WPXPropertyList &propList); + void endTextSpan(); + void insertText(const ::WPXString &str); + +private: + ::WPXPropertyListVector m_gradient; + ::WPXPropertyList m_style; + int m_gradientIndex; + void writeStyle(bool isClosed=true); + void drawPolySomething(const ::WPXPropertyListVector& vertices, bool isClosed); + + std::ostream & m_outputSink; +}; + +} // namespace libpict + +#endif // __PictSVGGENERATOR_H__ |