From: Fridrich S. <str...@us...> - 2008-11-24 10:16:27
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12228/src/lib Modified Files: Makefile.am WPG1Parser.cpp WPG2Parser.cpp WPG2Parser.h WPGBitmap.cpp WPGBitmap.h WPGPaintInterface.h WPGSVGGenerator.cpp WPGSVGGenerator.h WPGraphics.cpp WPGraphics.h libwpg.h.in makefile.mk Removed Files: WPGBinaryData.cpp WPGBinaryData.h WPGString.cpp WPGString.h Log Message: first step in the struggle to simplify libwpg api Index: makefile.mk =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/makefile.mk,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- makefile.mk 4 Jul 2007 09:07:18 -0000 1.8 +++ makefile.mk 24 Nov 2008 10:16:19 -0000 1.9 @@ -25,7 +25,6 @@ SLOFILES= \ $(SLO)$/WPG1Parser.obj \ $(SLO)$/WPG2Parser.obj \ - $(SLO)$/WPGBinaryData.obj \ $(SLO)$/WPGBitmap.obj \ $(SLO)$/WPGBrush.obj \ $(SLO)$/WPGColor.obj \ @@ -37,7 +36,6 @@ $(SLO)$/WPGPoint.obj \ $(SLO)$/WPGraphics.obj \ $(SLO)$/WPGRect.obj \ - $(SLO)$/WPGString.obj \ $(SLO)$/WPGSVGGenerator.obj \ $(SLO)$/WPGXParser.obj --- WPGString.cpp DELETED --- Index: WPGBitmap.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGBitmap.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- WPGBitmap.h 11 Dec 2007 14:46:49 -0000 1.8 +++ WPGBitmap.h 24 Nov 2008 10:16:19 -0000 1.9 @@ -29,7 +29,7 @@ #include "WPGRect.h" #include "WPGColor.h" -#include "WPGString.h" +#include <libwpd/WPXString.h> namespace libwpg { @@ -61,9 +61,9 @@ void setPixel(int x, int y, const WPGColor& color); - void generateBase64DIB(WPGString& bmp) const; + void generateBase64DIB(::WPXString& bmp) const; - static void base64Encode(WPGString& base64, const char *data, const int len); + static void base64Encode(::WPXString& base64, const char *data, const int len); private: class Private; Index: WPGSVGGenerator.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- WPGSVGGenerator.h 16 Jul 2008 14:10:59 -0000 1.10 +++ WPGSVGGenerator.h 24 Nov 2008 10:16:19 -0000 1.11 @@ -29,6 +29,7 @@ #include <stdio.h> #include <iostream> +#include <libwpd/libwpd.h> #include "libwpg.h" namespace libwpg @@ -56,7 +57,7 @@ void drawPolygon(const libwpg::WPGPointArray& vertices); void drawPath(const libwpg::WPGPath& path); void drawBitmap(const libwpg::WPGBitmap& bitmap); - void drawImageObject(const libwpg::WPGBinaryData& binaryData); + void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); private: libwpg::WPGPen m_pen; Index: WPG2Parser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- WPG2Parser.h 22 Jul 2008 06:39:27 -0000 1.25 +++ WPG2Parser.h 24 Nov 2008 10:16:19 -0000 1.26 @@ -134,13 +134,13 @@ WPGBitmapContext(): x1(0), y1(0), x2(0), y2(0), hres(100), vres(100) {} }; -class WPGBinaryDataContext +class WPXBinaryDataContext { public: double x1, y1, x2, y2; int numObjects, objectIndex; - std::vector<libwpg::WPGString> mimeTypes; - WPGBinaryDataContext(): x1(0), y1(0), x2(0), y2(0), numObjects(0), objectIndex(0), mimeTypes() {} + std::vector<WPXString> mimeTypes; + WPXBinaryDataContext(): x1(0), y1(0), x2(0), y2(0), numObjects(0), objectIndex(0), mimeTypes() {} }; class WPG2Parser : public WPGXParser @@ -217,7 +217,7 @@ bool m_compoundFramed; bool m_compoundClosed; WPGBitmapContext m_bitmap; - WPGBinaryDataContext m_binaryData; + WPXBinaryDataContext m_binaryData; bool m_hFlipped, m_vFlipped; class ObjectCharacterization; Index: WPGraphics.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGraphics.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- WPGraphics.h 8 Oct 2007 20:47:26 -0000 1.12 +++ WPGraphics.h 24 Nov 2008 10:16:19 -0000 1.13 @@ -26,7 +26,7 @@ #ifndef __WPGRAPHICS_H__ #define __WPGRAPHICS_H__ -#include "WPGString.h" +#include <libwpd/WPXString.h> #include <stdio.h> class WPXInputStream; @@ -46,8 +46,8 @@ static bool parse(WPXInputStream* input, WPGPaintInterface* painter, WPGFileFormat fileFormat = WPG_AUTODETECT); static bool parse(const unsigned char* data, const size_t size, WPGPaintInterface* painter, WPGFileFormat fileFormat = WPG_AUTODETECT); - static bool generateSVG(WPXInputStream* input, WPGString& output, WPGFileFormat fileFormat = WPG_AUTODETECT); - static bool generateSVG(const unsigned char* data, const size_t size, WPGString& output, WPGFileFormat fileFormat = WPG_AUTODETECT); + static bool generateSVG(WPXInputStream* input, WPXString& output, WPGFileFormat fileFormat = WPG_AUTODETECT); + static bool generateSVG(const unsigned char* data, const size_t size, WPXString& output, WPGFileFormat fileFormat = WPG_AUTODETECT); }; } // namespace libwpg Index: WPGraphics.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGraphics.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- WPGraphics.cpp 8 Apr 2008 12:12:43 -0000 1.14 +++ WPGraphics.cpp 24 Nov 2008 10:16:19 -0000 1.15 @@ -168,19 +168,19 @@ \param output The output string whose content is the resulting SVG \return A value that indicates whether the SVG generation was successful. */ -bool libwpg::WPGraphics::generateSVG(::WPXInputStream* input, libwpg::WPGString& output, libwpg::WPGFileFormat fileFormat) +bool libwpg::WPGraphics::generateSVG(::WPXInputStream* input, WPXString& output, libwpg::WPGFileFormat fileFormat) { std::ostringstream tmpOutputStream; libwpg::WPGSVGGenerator generator(tmpOutputStream); bool result = libwpg::WPGraphics::parse(input, &generator, fileFormat); if (result) - output = WPGString(tmpOutputStream.str().c_str()); + output = WPXString(tmpOutputStream.str().c_str()); else - output = WPGString(""); + output = WPXString(""); return result; } -bool libwpg::WPGraphics::generateSVG(const unsigned char* data, const size_t size, libwpg::WPGString& output, libwpg::WPGFileFormat fileFormat) +bool libwpg::WPGraphics::generateSVG(const unsigned char* data, const size_t size, WPXString& output, libwpg::WPGFileFormat fileFormat) { WPGInternalInputStream tmpStream(data, size); return libwpg::WPGraphics::generateSVG(&tmpStream, output, fileFormat); --- WPGBinaryData.cpp DELETED --- --- WPGBinaryData.h DELETED --- Index: libwpg.h.in =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/libwpg.h.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- libwpg.h.in 4 Jul 2007 09:13:36 -0000 1.6 +++ libwpg.h.in 24 Nov 2008 10:16:19 -0000 1.7 @@ -43,6 +43,5 @@ #include "WPGPoint.h" #include "WPGRect.h" #include "WPGBitmap.h" -#include "WPGBinaryData.h" #endif Index: WPGPaintInterface.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGPaintInterface.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- WPGPaintInterface.h 16 Jul 2008 14:10:59 -0000 1.10 +++ WPGPaintInterface.h 24 Nov 2008 10:16:19 -0000 1.11 @@ -28,7 +28,7 @@ #define __WPGPAINTINTERFACE_H__ #include "WPGBitmap.h" -#include "WPGBinaryData.h" +#include <libwpd/libwpd.h> #include "WPGBrush.h" #include "WPGPath.h" #include "WPGPen.h" @@ -72,7 +72,7 @@ virtual void drawBitmap(const WPGBitmap& bitmap) = 0; - virtual void drawImageObject(const WPGBinaryData& binaryData) = 0; + virtual void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) = 0; // none of the other callback functions will be called after this function is called virtual void endGraphics() = 0; Index: Makefile.am =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/Makefile.am,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Makefile.am 8 Oct 2007 20:47:26 -0000 1.27 +++ Makefile.am 24 Nov 2008 10:16:19 -0000 1.28 @@ -30,9 +30,7 @@ WPGPoint.h \ WPGRect.h \ WPGPath.h \ - WPGString.h \ WPGBitmap.h \ - WPGBinaryData.h \ WPGPaintInterface.h AM_CXXFLAGS = $(LIBWPG_CXXFLAGS) $(DEBUG_CXXFLAGS) @@ -55,9 +53,7 @@ WPG1Parser.cpp \ WPG2Parser.cpp \ WPGBitmap.cpp \ - WPGBinaryData.cpp \ WPGInternalStream.cpp \ - WPGString.cpp \ libwpg.h \ libwpg_utils.h \ WPGColor.h \ Index: WPGBitmap.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGBitmap.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- WPGBitmap.cpp 23 Jul 2008 14:42:47 -0000 1.21 +++ WPGBitmap.cpp 24 Nov 2008 10:16:19 -0000 1.22 @@ -118,7 +118,7 @@ d->pixels[y*d->width + x] = color; } -void libwpg::WPGBitmap::generateBase64DIB(libwpg::WPGString& bmp) const +void libwpg::WPGBitmap::generateBase64DIB(::WPXString& bmp) const { if (d->height <= 0 || d->width <= 0) return; @@ -247,7 +247,7 @@ buffer[position++] = (char)(value & 0xFF); } -void libwpg::WPGBitmap::base64Encode(WPGString& base64, const char *data, const int len) +void libwpg::WPGBitmap::base64Encode(::WPXString& base64, const char *data, const int len) { static const char* base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.82 retrieving revision 1.83 diff -u -d -r1.82 -r1.83 --- WPG2Parser.cpp 21 Aug 2008 08:56:45 -0000 1.82 +++ WPG2Parser.cpp 24 Nov 2008 10:16:19 -0000 1.83 @@ -1832,7 +1832,7 @@ { unsigned char description = readU8(); if (description < 0x27) - m_binaryData.mimeTypes.push_back(libwpg::WPGString(mimeTypesMap[description])); + m_binaryData.mimeTypes.push_back(WPXString(mimeTypesMap[description])); m_input->seek(7, WPX_SEEK_CUR); } @@ -1853,15 +1853,17 @@ return; unsigned accessoryDataLength = readU16(); m_input->seek(accessoryDataLength, WPX_SEEK_CUR); - libwpg::WPGBinaryData binaryData; - binaryData.rect.x1 = m_binaryData.x1; - binaryData.rect.y1 = m_binaryData.y1; - binaryData.rect.x2 = m_binaryData.x2; - binaryData.rect.y2 = m_binaryData.y2; - binaryData.mimeType = m_binaryData.mimeTypes[m_binaryData.objectIndex]; + + ::WPXPropertyList propList; + propList.insert("svg:x", (float)m_binaryData.x1); + propList.insert("svg:y", (float)m_binaryData.y1); + propList.insert("svg:width", (float)(m_binaryData.x2 - m_binaryData.x1)); + propList.insert("svg:height", (float)(m_binaryData.y2 - m_binaryData.y1)); + propList.insert("libwpg:mime-type", m_binaryData.mimeTypes[m_binaryData.objectIndex]); WPG_DEBUG_MSG(("Image Object Mime Type : %s\n", binaryData.mimeType.cstr())); + ::WPXBinaryData binaryData; while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) binaryData.append((char)readU8()); WPG_DEBUG_MSG((" Image Object Size : %li\n", (unsigned long)binaryData.size())); @@ -1882,7 +1884,7 @@ #endif - m_painter->drawImageObject(binaryData); + m_painter->drawImageObject(propList, binaryData); m_binaryData.objectIndex++; } Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- WPG1Parser.cpp 13 Aug 2008 07:45:43 -0000 1.47 +++ WPG1Parser.cpp 24 Nov 2008 10:16:19 -0000 1.48 @@ -28,6 +28,8 @@ #include "WPG1Parser.h" #include "WPGPaintInterface.h" #include "libwpg_utils.h" +#include <libwpd/libwpd.h> +#include <libwpd/WPXPropertyList.h> static const unsigned char defaultWPG1PaletteRed[] = { 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, @@ -778,18 +780,21 @@ long y1 = readS16(); long x2 = readS16(); long y2 = readS16(); - libwpg::WPGBinaryData data; - data.rect.x1 = (double)x1/72.0; - data.rect.y1 = (double)m_height/1200.0 - (double)y1/72.0; - data.rect.x2 = (double)x2/72.0; - data.rect.y2 = (double)m_height/1200.0 - (double)y2/72.0; + ::WPXPropertyList propList; + + propList.insert("svg:x", (float)((double)x1/72.0)); + propList.insert("svg:y", (float)((double)m_height/1200.0 - (double)y1/72.0)); + propList.insert("svg:width", (float)(((double)x2 - (double)x1)/72.0)); + propList.insert("svg:height", (float)(((double)y1 - (double)y2)/72.0)); + propList.insert("libwpg:mime-type", "application/x-postscript"); + + ::WPXBinaryData data; data.clear(); while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) data.append((char)readU8()); - data.mimeType = "application/x-postscript"; if (data.size()) - m_painter->drawImageObject(data); + m_painter->drawImageObject(propList, data); } void WPG1Parser::handlePostscriptTypeTwo() @@ -823,21 +828,24 @@ long ys2 = (y1 <= y2) ? y2 : y1; WPG_DEBUG_MSG(("%li %li %li %li\n", xs1, ys1, xs2, ys2)); - libwpg::WPGBinaryData data; - data.rect.x1 = (double)xs1/1200.0; - data.rect.y1 = (double)(ys1)/1200.0; - data.rect.x2 = (double)xs2/1200.0; - data.rect.y2 = (double)(ys2)/1200.0; + ::WPXPropertyList propList; - data.mimeType = "image/x-eps"; + propList.insert("svg:x", (float)((double)xs1/1200.0)); + propList.insert("svg:y", (float)((double)(ys1)/1200.0)); + + propList.insert("svg:width", (float)(((double)xs2 - (double)xs1)/1200.0)); + propList.insert("svg:height", (float)(((double)ys2 -(double)ys1)/1200.0)); + + propList.insert("libwpg:mime-type", "image/x-eps"); m_input->seek(48, WPX_SEEK_CUR); + ::WPXBinaryData data; data.clear(); while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) data.append((char)readU8()); if (data.size()) - m_painter->drawImageObject(data); + m_painter->drawImageObject(propList, data); } void WPG1Parser::resetPalette() Index: WPGSVGGenerator.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- WPGSVGGenerator.cpp 16 Jul 2008 14:14:22 -0000 1.16 +++ WPGSVGGenerator.cpp 24 Nov 2008 10:16:19 -0000 1.17 @@ -249,7 +249,7 @@ void libwpg::WPGSVGGenerator::drawBitmap(const libwpg::WPGBitmap& bitmap) { - WPGString base64Bitmap; + WPXString base64Bitmap; bitmap.generateBase64DIB(base64Bitmap); m_outputSink << "<image "; m_outputSink << "x=\"" << doubleToString(72*bitmap.rect.x1) << "\" y=\"" << doubleToString(72*bitmap.rect.y1) << "\" "; @@ -259,15 +259,16 @@ m_outputSink << "\" />\n"; } -void libwpg::WPGSVGGenerator::drawImageObject(const libwpg::WPGBinaryData& binaryData) +void libwpg::WPGSVGGenerator::drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) { - if (binaryData.mimeType.length() <= 0) + if (!propList["libwpg:mime-type"] || propList["libwpg:mime-type"]->getStr().len() <= 0) return; - WPGString base64 = binaryData.getBase64Data(); + WPXString base64 = binaryData.getBase64Data(); m_outputSink << "<image "; - m_outputSink << "x=\"" << doubleToString(72*binaryData.rect.x1) << "\" y=\"" << doubleToString(72*binaryData.rect.y1) << "\" "; - m_outputSink << "width=\"" << doubleToString(72*binaryData.rect.width()) << "\" height=\"" << doubleToString(72*binaryData.rect.height()) << "\" "; - m_outputSink << "xlink:href=\"data:" << binaryData.mimeType.cstr() << ";base64,"; + if (propList["svg:x"] && propList["svg:y"] && propList["svg:width"] && propList["svg:height"]) + m_outputSink << "x=\"" << doubleToString(72*(propList["svg:x"]->getFloat())) << "\" y=\"" << doubleToString(72*(propList["svg:y"]->getFloat())) << "\" "; + m_outputSink << "width=\"" << doubleToString(72*(propList["svg:width"]->getFloat())) << "\" height=\"" << doubleToString(72*(propList["svg:height"]->getFloat())) << "\" "; + m_outputSink << "xlink:href=\"data:" << propList["libwpg:mime-type"]->getStr().cstr() << ";base64,"; m_outputSink << base64.cstr(); m_outputSink << "\" />\n"; } --- WPGString.h DELETED --- |