From: Fridrich S. <str...@us...> - 2010-06-17 10:34:04
|
Update of /cvsroot/libwpg/perfectspot/src/odg In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv11964/src/odg Modified Files: OdgExporter.cxx OdgExporter.hxx Log Message: Adapting perfectspot to recent libwpg and using svg instead of the custom renderer Index: OdgExporter.cxx =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/odg/OdgExporter.cxx,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- OdgExporter.cxx 7 Sep 2009 15:16:52 -0000 1.12 +++ OdgExporter.cxx 17 Jun 2010 10:33:55 -0000 1.13 @@ -35,14 +35,14 @@ #define M_PI 3.14159265358979323846 #endif -OdgExporter::OdgExporter(FileOutputHandler *pHandler, const bool isFlatXML): +OdgExporter::OdgExporter(FileOutputHandler *pHandler, const OdfStreamType streamType): mpHandler(pHandler), miGradientIndex(1), miDashIndex(1), miGraphicsStyleIndex(1), mfWidth(0.0), mfHeight(0.0), - mbIsFlatXML(isFlatXML) + mxStreamType(streamType) { } @@ -82,8 +82,19 @@ mfWidth = 0.0; mfHeight = 0.0; + if (propList["svg:width"]) + mfWidth = propList["svg:width"]->getDouble(); + + if (propList["svg:height"]) + mfHeight = propList["svg:height"]->getDouble(); + mpHandler->startDocument(); - TagOpenElement tmpOfficeDocumentContent("office:document"); + TagOpenElement tmpOfficeDocumentContent( + (mxStreamType == ODF_FLAT_XML) ? "office:document" : ( + (mxStreamType == ODF_CONTENT_XML) ? "office:document-content" : ( + (mxStreamType == ODF_STYLES_XML) ? "office:document-styles" : ( + (mxStreamType == ODF_SETTINGS_XML) ? "office:document-settings" : ( + (mxStreamType == ODF_META_XML) ? "office:document-meta" : "office:document" ))))); tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0"); @@ -94,155 +105,181 @@ tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office"); tmpOfficeDocumentContent.addAttribute("office:version", "1.0"); - if (mbIsFlatXML) + if (mxStreamType == ODF_FLAT_XML) tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/vnd.oasis.opendocument.graphics"); tmpOfficeDocumentContent.write(mpHandler); - TagOpenElement("office:settings").write(mpHandler); + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_SETTINGS_XML)) + { + TagOpenElement("office:settings").write(mpHandler); - TagOpenElement configItemSetOpenElement("config:config-item-set"); - configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings"); - configItemSetOpenElement.write(mpHandler); + TagOpenElement configItemSetOpenElement("config:config-item-set"); + configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings"); + configItemSetOpenElement.write(mpHandler); - TagOpenElement configItemOpenElement("config:config-item"); + TagOpenElement configItemOpenElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaTop"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - mpHandler->characters("0"); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaTop"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + mpHandler->characters("0"); + mpHandler->endElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaLeft"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - mpHandler->characters("0"); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaLeft"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + mpHandler->characters("0"); + mpHandler->endElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaWidth"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - if (propList["svg:width"]) - mfWidth = propList["svg:width"]->getDouble(); - WPXString sWidth; sWidth.sprintf("%li", (unsigned long)(2540 * mfWidth)); - mpHandler->characters(sWidth); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaWidth"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + WPXString sWidth; sWidth.sprintf("%li", (unsigned long)(2540 * mfWidth)); + mpHandler->characters(sWidth); + mpHandler->endElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaHeight"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - if (propList["svg:height"]) - mfHeight = propList["svg:height"]->getDouble(); - WPXString sHeight; sHeight.sprintf("%li", (unsigned long)(2540 * mfHeight)); - mpHandler->characters(sHeight); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaHeight"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + WPXString sHeight; sHeight.sprintf("%li", (unsigned long)(2540 * mfHeight)); + mpHandler->characters(sHeight); + mpHandler->endElement("config:config-item"); - mpHandler->endElement("config:config-item-set"); + mpHandler->endElement("config:config-item-set"); - mpHandler->endElement("office:settings"); + mpHandler->endElement("office:settings"); + } } void OdgExporter::endGraphics() { - TagOpenElement("office:styles").write(mpHandler); - - for (std::vector<GraphicsElement *>::const_iterator iterGraphicsStrokeDashStyles = mGraphicsStrokeDashStyles.begin(); - iterGraphicsStrokeDashStyles != mGraphicsStrokeDashStyles.end(); iterGraphicsStrokeDashStyles++) + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_STYLES_XML)) { - (*iterGraphicsStrokeDashStyles)->write(mpHandler); + TagOpenElement("office:styles").write(mpHandler); + + for (std::vector<GraphicsElement *>::const_iterator iterGraphicsStrokeDashStyles = mGraphicsStrokeDashStyles.begin(); + iterGraphicsStrokeDashStyles != mGraphicsStrokeDashStyles.end(); iterGraphicsStrokeDashStyles++) + { + (*iterGraphicsStrokeDashStyles)->write(mpHandler); + } + + for (std::vector<GraphicsElement *>::const_iterator iterGraphicsGradientStyles = mGraphicsGradientStyles.begin(); + iterGraphicsGradientStyles != mGraphicsGradientStyles.end(); iterGraphicsGradientStyles++) + { + (*iterGraphicsGradientStyles)->write(mpHandler); + } + + mpHandler->endElement("office:styles"); } - for (std::vector<GraphicsElement *>::const_iterator iterGraphicsGradientStyles = mGraphicsGradientStyles.begin(); - iterGraphicsGradientStyles != mGraphicsGradientStyles.end(); iterGraphicsGradientStyles++) + + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML) || (mxStreamType == ODF_STYLES_XML)) { - (*iterGraphicsGradientStyles)->write(mpHandler); + TagOpenElement("office:automatic-styles").write(mpHandler); } - - mpHandler->endElement("office:styles"); - - TagOpenElement("office:automatic-styles").write(mpHandler); - // writing out the graphics automatic styles - for (std::vector<GraphicsElement *>::iterator iterGraphicsAutomaticStyles = mGraphicsAutomaticStyles.begin(); - iterGraphicsAutomaticStyles != mGraphicsAutomaticStyles.end(); iterGraphicsAutomaticStyles++) + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML)) { - (*iterGraphicsAutomaticStyles)->write(mpHandler); + // writing out the graphics automatic styles + for (std::vector<GraphicsElement *>::iterator iterGraphicsAutomaticStyles = mGraphicsAutomaticStyles.begin(); + iterGraphicsAutomaticStyles != mGraphicsAutomaticStyles.end(); iterGraphicsAutomaticStyles++) + { + (*iterGraphicsAutomaticStyles)->write(mpHandler); + } } - TagOpenElement tmpStylePageLayoutOpenElement("style:page-layout"); - tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0"); - tmpStylePageLayoutOpenElement.write(mpHandler); + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_STYLES_XML)) + { + TagOpenElement tmpStylePageLayoutOpenElement("style:page-layout"); + tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0"); + tmpStylePageLayoutOpenElement.write(mpHandler); - TagOpenElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in"); - WPXString sValue; - sValue = doubleToString(mfWidth); sValue.append("in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", sValue); - sValue = doubleToString(mfHeight); sValue.append("in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", sValue); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait"); - tmpStylePageLayoutPropertiesOpenElement.write(mpHandler); + TagOpenElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in"); + WPXString sValue; + sValue = doubleToString(mfWidth); sValue.append("in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", sValue); + sValue = doubleToString(mfHeight); sValue.append("in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", sValue); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait"); + tmpStylePageLayoutPropertiesOpenElement.write(mpHandler); - mpHandler->endElement("style:page-layout-properties"); + mpHandler->endElement("style:page-layout-properties"); - mpHandler->endElement("style:page-layout"); + mpHandler->endElement("style:page-layout"); - TagOpenElement tmpStyleStyleOpenElement("style:style"); - tmpStyleStyleOpenElement.addAttribute("style:name", "dp1"); - tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page"); - tmpStyleStyleOpenElement.write(mpHandler); + TagOpenElement tmpStyleStyleOpenElement("style:style"); + tmpStyleStyleOpenElement.addAttribute("style:name", "dp1"); + tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page"); + tmpStyleStyleOpenElement.write(mpHandler); - TagOpenElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties"); - // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border"); - tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none"); - tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler); + TagOpenElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties"); + // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border"); + tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none"); + tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler); - mpHandler->endElement("style:drawing-page-properties"); + mpHandler->endElement("style:drawing-page-properties"); - mpHandler->endElement("style:style"); + mpHandler->endElement("style:style"); + } - mpHandler->endElement("office:automatic-styles"); - + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML) || (mxStreamType == ODF_STYLES_XML)) + { + mpHandler->endElement("office:automatic-styles"); + } - TagOpenElement("office:master-styles").write(mpHandler); + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_STYLES_XML)) + { + TagOpenElement("office:master-styles").write(mpHandler); - TagOpenElement tmpStyleMasterPageOpenElement("style:master-page"); - tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default"); - tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0"); - tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1"); - tmpStyleMasterPageOpenElement.write(mpHandler); + TagOpenElement tmpStyleMasterPageOpenElement("style:master-page"); + tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default"); + tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0"); + tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1"); + tmpStyleMasterPageOpenElement.write(mpHandler); - mpHandler->endElement("style:master-page"); + mpHandler->endElement("style:master-page"); - mpHandler->endElement("office:master-styles"); + mpHandler->endElement("office:master-styles"); + } + + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML)) + { + TagOpenElement("office:body").write(mpHandler); - TagOpenElement("office:body").write(mpHandler); + TagOpenElement("office:drawing").write(mpHandler); - TagOpenElement("office:drawing").write(mpHandler); + TagOpenElement tmpDrawPageOpenElement("draw:page"); + tmpDrawPageOpenElement.addAttribute("draw:name", "page1"); + tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1"); + tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default"); + tmpDrawPageOpenElement.write(mpHandler); - TagOpenElement tmpDrawPageOpenElement("draw:page"); - tmpDrawPageOpenElement.addAttribute("draw:name", "page1"); - tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1"); - tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default"); - tmpDrawPageOpenElement.write(mpHandler); + for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin(); + bodyIter != mBodyElements.end(); bodyIter++) + { + (*bodyIter)->write(mpHandler); + } - for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin(); - bodyIter != mBodyElements.end(); bodyIter++) - { - (*bodyIter)->write(mpHandler); - } + mpHandler->endElement("draw:page"); + mpHandler->endElement("office:drawing"); + mpHandler->endElement("office:body"); + } - mpHandler->endElement("draw:page"); - mpHandler->endElement("office:drawing"); - mpHandler->endElement("office:body"); - mpHandler->endElement("office:document"); + mpHandler->endElement( + (mxStreamType == ODF_FLAT_XML) ? "office:document" : ( + (mxStreamType == ODF_CONTENT_XML) ? "office:document-content" : ( + (mxStreamType == ODF_STYLES_XML) ? "office:document-styles" : ( + (mxStreamType == ODF_SETTINGS_XML) ? "office:document-settings" : ( + (mxStreamType == ODF_META_XML) ? "office:document-meta" : "office:document" ))))); mpHandler->endDocument(); } -void OdgExporter::setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList & propList) +void OdgExporter::setStyle(const ::WPXPropertyList & propList, const ::WPXPropertyListVector& gradient) { mxStyle = propList; mxGradient = gradient; @@ -305,7 +342,7 @@ sValue.append("translate("); sValue.append(doubleToString(propList["svg:cx"]->getDouble() - propList["svg:rx"]->getDouble() - deltax)); sValue.append("in, "); sValue.append(doubleToString(propList["svg:cy"]->getDouble() - propList["svg:ry"]->getDouble() - deltay)); sValue.append("in)"); - pDrawEllipseElement->addAttribute("svg:transform", sValue); + pDrawEllipseElement->addAttribute("draw:transform", sValue); } else { @@ -404,6 +441,13 @@ qx = (qx < path[k]["svg:x2"]->getDouble()) ? path[k]["svg:x2"]->getDouble() : qx; qy = (qy < path[k]["svg:y2"]->getDouble()) ? path[k]["svg:y2"]->getDouble() : qy; } + if(path[k]["libwpg:path-action"]->getStr() == "A") + { + px = (px > path[k]["svg:x"]->getDouble()-2*path[k]["svg:rx"]->getDouble()) ? path[k]["svg:x"]->getDouble()-2*path[k]["svg:rx"]->getDouble() : px; + py = (py > path[k]["svg:y"]->getDouble()-2*path[k]["svg:ry"]->getDouble()) ? path[k]["svg:y"]->getDouble()-2*path[k]["svg:ry"]->getDouble() : py; + qx = (qx < path[k]["svg:x"]->getDouble()+2*path[k]["svg:rx"]->getDouble()) ? path[k]["svg:x"]->getDouble()+2*path[k]["svg:rx"]->getDouble() : qx; + qy = (qy < path[k]["svg:y"]->getDouble()+2*path[k]["svg:ry"]->getDouble()) ? path[k]["svg:y"]->getDouble()+2*path[k]["svg:ry"]->getDouble() : qy; + } } double vw = qx - px; double vh = qy - py; @@ -452,6 +496,13 @@ (unsigned)((path[i]["svg:y"]->getDouble()-py)*2540)); sValue.append(sElement); } + else if (path[i]["libwpg:path-action"]->getStr() == "A") + { + sElement.sprintf("A%i %i %i %i %i %i %i", (unsigned)((path[i]["svg:rx"]->getDouble())*2540), + (int)((path[i]["svg:ry"]->getDouble())*2540), (path[i]["libwpg:rotate"] ? path[i]["libwpg:rotate"]->getInt() : 0), + 0, 0, (unsigned)((path[i]["svg:x"]->getDouble()-px)*2540), (unsigned)((path[i]["svg:y"]->getDouble()-py)*2540)); + sValue.append(sElement); + } else if (path[i]["libwpg:path-action"]->getStr() == "Z" && i >= (path.count() - 1)) sValue.append(" Z"); } @@ -460,7 +511,7 @@ mBodyElements.push_back(new TagCloseElement("draw:path")); } -void OdgExporter::drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) +void OdgExporter::drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) { if (!propList["libwpg:mime-type"] && propList["libwpg:mime-type"]->getStr().len() <= 0) return; @@ -494,7 +545,8 @@ void OdgExporter::writeGraphicsStyle() { - if(!mxStyle["libwpg:stroke-solid"]->getInt() && (mxDashArray.count() >=2 ) ) +#if 0 + if(mxStyle["libwpg:stroke-solid"] && !mxStyle["libwpg:stroke-solid"]->getInt() && (mxDashArray.count() >=2 ) ) { // ODG only supports dashes with the same length of spaces inbetween // here we take the first space and assume everything else the same @@ -521,7 +573,7 @@ mGraphicsStrokeDashStyles.push_back(pDrawStrokeDashElement); mGraphicsStrokeDashStyles.push_back(new TagCloseElement("draw:stroke-dash")); } - +#endif if(mxStyle["draw:fill"] && mxStyle["draw:fill"]->getStr() == "gradient" && mxGradient.count() >= 2) { TagOpenElement *pDrawGradientElement = new TagOpenElement("draw:gradient"); @@ -572,12 +624,14 @@ if(mxStyle["libwpg:stroke-solid"] && mxStyle["libwpg:stroke-solid"]->getInt()) pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "solid"); +#if 0 else { pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "dash"); sValue.sprintf("Dash_%i", miDashIndex-1); pStyleGraphicsPropertiesElement->addAttribute("draw:stroke-dash", sValue); } +#endif } else pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "none"); @@ -595,11 +649,14 @@ } if(mxStyle["draw:fill"] && mxStyle["draw:fill"]->getStr() == "gradient") - { - pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "gradient"); - sValue.sprintf("Gradient_%i", miGradientIndex-1); - pStyleGraphicsPropertiesElement->addAttribute("draw:fill-gradient-name", sValue); - } + if (mxGradient.count() >= 2) + { + pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "gradient"); + sValue.sprintf("Gradient_%i", miGradientIndex-1); + pStyleGraphicsPropertiesElement->addAttribute("draw:fill-gradient-name", sValue); + } + else + pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "none"); mGraphicsAutomaticStyles.push_back(pStyleGraphicsPropertiesElement); mGraphicsAutomaticStyles.push_back(new TagCloseElement("style:graphic-properties")); Index: OdgExporter.hxx =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/odg/OdgExporter.hxx,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- OdgExporter.hxx 7 Sep 2009 15:16:52 -0000 1.8 +++ OdgExporter.hxx 17 Jun 2010 10:33:55 -0000 1.9 @@ -34,9 +34,11 @@ #include "GraphicsElement.hxx" #include "FileOutputHandler.hxx" +enum OdfStreamType { ODF_FLAT_XML, ODF_CONTENT_XML, ODF_STYLES_XML, ODF_SETTINGS_XML, ODF_META_XML }; + class OdgExporter : public libwpg::WPGPaintInterface { public: - OdgExporter(FileOutputHandler *pHandler, const bool isFlatXML = false); + OdgExporter(FileOutputHandler *pHandler, const OdfStreamType streamType); ~OdgExporter(); void startGraphics(const ::WPXPropertyList &propList); @@ -46,14 +48,21 @@ void startEmbeddedGraphics(const ::WPXPropertyList& /*propList*/) {} void endEmbeddedGraphics() {} - void setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList); + 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 drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); + 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: void writeGraphicsStyle(); @@ -79,7 +88,7 @@ double mfWidth; double mfHeight; - const bool mbIsFlatXML; + const OdfStreamType mxStreamType; }; #endif // __ODGEXPORTER_HXX__ |