From: Fridrich S. <str...@us...> - 2008-11-25 11:58:33
|
Update of /cvsroot/libwpg/libwpg/src/conv/raw In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28859/src/conv/raw Modified Files: wpg2raw.cpp Log Message: getting rid of another data structure in favour of libwpd framework WPXProperty* classes Index: wpg2raw.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/conv/raw/wpg2raw.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- wpg2raw.cpp 24 Nov 2008 10:16:19 -0000 1.12 +++ wpg2raw.cpp 25 Nov 2008 11:58:28 -0000 1.13 @@ -36,11 +36,11 @@ public: RawPainter(); - void startGraphics(double imageWidth, double imageHeight); + void startGraphics(const ::WPXPropertyList &propList); void endGraphics(); void startLayer(unsigned int id); void endLayer(unsigned int id); - void startEmbeddedGraphics(double /* imageWidth */, double /* imageHeight */) {} + void startEmbeddedGraphics(const ::WPXPropertyList& /*propList*/) {} void endEmbeddedGraphics() {} void setPen(const libwpg::WPGPen& pen); @@ -49,20 +49,67 @@ void drawRectangle(const libwpg::WPGRect& rect, double rx, double ry); void drawEllipse(const libwpg::WPGPoint& center, double rx, double ry, double rotation, const libwpg::WPGPoint& from, const libwpg::WPGPoint& to); - void drawPolyline(const libwpg::WPGPointArray& vertices); - void drawPolygon(const libwpg::WPGPointArray& vertices); - void drawPath(const libwpg::WPGPath& path); + void drawPolyline(const ::WPXPropertyListVector& vertices); + void drawPolygon(const ::WPXPropertyListVector& vertices); + void drawPath(const ::WPXPropertyListVector& path); void drawBitmap(const libwpg::WPGBitmap& bitmap); void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); }; +WPXString getPropString(const WPXPropertyList &propList) +{ + WPXString propString; + WPXPropertyList::Iter i(propList); + if (!i.last()) + { + propString.append(i.key()); + propString.append(": "); + propString.append(i()->getStr().cstr()); + for (; i.next(); ) + { + propString.append(", "); + propString.append(i.key()); + propString.append(": "); + propString.append(i()->getStr().cstr()); + } + } + + return propString; +} + +WPXString getPropString(const WPXPropertyListVector &itemList) +{ + WPXString propString; + + propString.append("("); + WPXPropertyListVector::Iter i(itemList); + + if (!i.last()) + { + propString.append("("); + propString.append(getPropString(i())); + propString.append(")"); + + for (; i.next();) + { + propString.append(", ("); + propString.append(getPropString(i())); + propString.append(")"); + } + + } + propString.append(")"); + + return propString; +} + RawPainter::RawPainter(): libwpg::WPGPaintInterface() { } -void RawPainter::startGraphics(double width, double height) +void RawPainter::startGraphics(const ::WPXPropertyList &propList) { - printf("RawPainter::startGraphics(width: %.4fin, height: %.4fin)\n", width, height); + printf("RawPainter::startGraphics(%s)\n", getPropString(propList).cstr()); } void RawPainter::endGraphics() @@ -130,23 +177,19 @@ printf(" Radius: %g %g\n", rx, ry); } -void RawPainter::drawPolyline(const libwpg::WPGPointArray& vertices) +void RawPainter::drawPolyline(const ::WPXPropertyListVector& vertices) { - printf("RawPainter::drawPolyline %d points\n", vertices.count()); - for(unsigned i = 0; i < vertices.count(); i++) - printf(" (%g %g)\n", vertices[i].x, vertices[i].y); + printf("RawPainter::drawPolyline (%s)\n", getPropString(vertices).cstr()); } -void RawPainter::drawPolygon(const libwpg::WPGPointArray& vertices) +void RawPainter::drawPolygon(const ::WPXPropertyListVector& vertices) { - printf("RawPainter::drawPolygon %d points\n", vertices.count()); - for(unsigned i = 0; i < vertices.count(); i++) - printf(" (%g %g)\n", vertices[i].x, vertices[i].y); + printf("RawPainter::drawPolygon (%s)\n", getPropString(vertices).cstr()); } -void RawPainter::drawPath(const libwpg::WPGPath& path) +void RawPainter::drawPath(const ::WPXPropertyListVector& path) { - printf("RawPainter::drawPath %d elements\n", path.count()); + printf("RawPainter::drawPath (%s)\n", getPropString(path).cstr()); } void RawPainter::drawBitmap(const libwpg::WPGBitmap& /*bitmap*/) @@ -154,9 +197,9 @@ printf("RawPainter::drawBitmap\n"); } -void RawPainter::drawImageObject(const ::WPXPropertyList& /* propList */, const ::WPXBinaryData& /*binaryData*/) +void RawPainter::drawImageObject(const ::WPXPropertyList& propList, const ::WPXBinaryData& /*binaryData*/) { - printf("RawPainter::drawBinaryData\n"); + printf("RawPainter::drawImageObject (%s)\n", getPropString(propList).cstr()); } namespace { |