diff -Nur abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/AbiGOChart.cpp abiword-2.4.1/abiword-plugins/tools/abigochart/unix/AbiGOChart.cpp --- abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/AbiGOChart.cpp 2005-09-06 17:56:27 +0300 +++ abiword-2.4.1/abiword-plugins/tools/abigochart/unix/AbiGOChart.cpp 2005-11-19 18:56:37 +0200 @@ -78,6 +78,8 @@ #include #include #include +#include +#include #include "ut_sleep.h" #include @@ -759,15 +761,14 @@ { g_return_if_fail (IS_GOG_GRAPH (graph)); AbiControlGUI *acg = ABI_CONTROL_GUI (data); - xmlDocPtr pDoc = xmlNewDoc ((xmlChar const*)"1.0"); - xmlChar *mem; - int size; AbiGO_LocaleTransactor tn(LC_NUMERIC, "C"); AbiGO_LocaleTransactor tm(LC_MONETARY, "C"); - pDoc->children = gog_object_write_xml (GOG_OBJECT (graph), pDoc); - xmlDocDumpMemory (pDoc, &mem, &size); + GsfOutput* output = gsf_output_memory_new (); + GsfXMLOut* xml = gsf_xml_out_new (output); + gog_object_write_xml_sax(GOG_OBJECT (graph), xml); + UT_Byte const *bytes = gsf_output_memory_get_bytes (GSF_OUTPUT_MEMORY (output)); UT_ByteBuf myByteBuf; - myByteBuf.append((UT_Byte*)mem, size); + myByteBuf.append(bytes, strlen ((char const*) bytes)); XAP_Frame *pFrame = XAP_App::getApp()->getLastFocussedFrame(); FV_View* pView = static_cast(pFrame->getCurrentView()); @@ -776,8 +777,8 @@ UT_DEBUGMSG(("Doing Embed Update from GOG callback \n")); pView->cmdUpdateEmbed(&myByteBuf,mimetypeGOChart,szProps); - xmlFree (mem); - xmlFreeDoc (pDoc); + g_object_unref (xml); + g_object_unref (output); g_object_unref (acg); } @@ -798,18 +799,17 @@ GogGraph *graph = (GogGraph *) g_object_new (GOG_GRAPH_TYPE, NULL); /* by default, create one chart and add it to the graph */ gog_object_add_by_name (GOG_OBJECT (graph), "Chart", NULL); - xmlDocPtr xml = xmlNewDoc ((xmlChar const*)"1.0"); - xmlChar *mem; - int size; + GsfOutput* output = gsf_output_memory_new (); + GsfXMLOut* xml = gsf_xml_out_new (output); { AbiGO_LocaleTransactor tn(LC_NUMERIC, "C"); AbiGO_LocaleTransactor tm(LC_NUMERIC, "C"); - xml->children = gog_object_write_xml (GOG_OBJECT (graph), xml); + gog_object_write_xml_sax (GOG_OBJECT (graph), xml); } - xmlDocDumpMemory (xml, &mem, &size); - myByteBuf.append((UT_Byte*)mem, size); - xmlFree (mem); - xmlFreeDoc (xml); + UT_Byte const *bytes = gsf_output_memory_get_bytes (GSF_OUTPUT_MEMORY (output)); + myByteBuf.append(bytes, strlen ((char const*) bytes)); + g_object_unref (xml); + g_object_unref (output); const char* mimetypeGOChart = "application/x-goffice-graph"; const char * szProps="embed-type: GOChart; width:2.5in; height:2.5in"; @@ -1118,7 +1118,6 @@ // too). // y = pUGG->scale_ydir(y); - printf("print chart - x %d,y %d,width %d,height %d \n",x,y,myWidth,myHeight); gnome_print_gsave (ctx); gnome_print_translate (ctx, x, y+myHeight); @@ -1127,13 +1126,20 @@ } else { - GdkPixbuf *pixbuf; - if (rec.height != height || rec.width != width || (height == 0) || (width == 0)) + GR_Graphics *pUGG = m_pGOMan->getGraphics(); + UT_sint32 _width = pUGG->tdu(rec.width); + UT_sint32 _height = pUGG->tdu(rec.height); + UT_sint32 x = pUGG->tdu(rec.left); + UT_sint32 y = pUGG->tdu(rec.top); + double zoom = (double) pUGG->getZoomPercentage () / 100.; + if (_width != width || _height != height) { GdkPixbuf *pixbuf; - width = rec.width; - height = rec.height; - gog_renderer_pixbuf_update (GOG_RENDERER_PIXBUF (m_Renderer), width, height, 1.0); + width = _width; + height = _height; + _width = (UT_sint32) ((double) width * zoom); + _height = (UT_sint32) ((double) height * zoom); + gog_renderer_pixbuf_update (GOG_RENDERER_PIXBUF (m_Renderer), _width, _height, zoom); if (m_Image) delete m_Image; gsize length; @@ -1212,7 +1218,9 @@ XAP_App * pApp = XAP_App::getApp(); pGOChartManager = new GR_GOChartManager(NULL); GOChartManagerUID = pApp->registerEmbeddable(pGOChartManager); - UT_DEBUGMSG(("Class %x created! Listener Id %d \n", GOChartManagerUID)); + // the message below makes valgrind scream because there is only one parameter where + // 2 are expected. disabled. + xxx_UT_DEBUGMSG(("Class %x created! Listener Id %d \n", GOChartManagerUID)); // Add to AbiWord's menus. AbiGOChart_addToMenus(); /* Initialize libgoffice */ diff -Nur abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/CVS/Entries abiword-2.4.1/abiword-plugins/tools/abigochart/unix/CVS/Entries --- abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/CVS/Entries 1970-01-01 03:00:00 +0300 +++ abiword-2.4.1/abiword-plugins/tools/abigochart/unix/CVS/Entries 2005-11-23 20:51:15 +0200 @@ -0,0 +1,6 @@ +/AbiGOChart.cpp/1.20/Sat Nov 19 16:56:37 2005// +/AbiGOChart.h/1.6/Fri Jun 10 13:13:38 2005// +/GNUmakefile.am/1.2/Tue May 3 15:32:14 2005// +/ie_imp_GOChart.cpp/1.5/Thu Nov 17 11:07:16 2005// +/ie_imp_GOChart.h/1.2/Fri Jun 10 13:13:38 2005// +D diff -Nur abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/CVS/Repository abiword-2.4.1/abiword-plugins/tools/abigochart/unix/CVS/Repository --- abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/CVS/Repository 1970-01-01 03:00:00 +0300 +++ abiword-2.4.1/abiword-plugins/tools/abigochart/unix/CVS/Repository 2005-11-23 20:51:15 +0200 @@ -0,0 +1 @@ +abiword-plugins/tools/abigochart/unix diff -Nur abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/CVS/Root abiword-2.4.1/abiword-plugins/tools/abigochart/unix/CVS/Root --- abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/CVS/Root 1970-01-01 03:00:00 +0300 +++ abiword-2.4.1/abiword-plugins/tools/abigochart/unix/CVS/Root 2005-11-23 20:51:15 +0200 @@ -0,0 +1 @@ +:pserver:anoncvs@anoncvs.abisource.com:/cvsroot diff -Nur abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/ie_imp_GOChart.cpp abiword-2.4.1/abiword-plugins/tools/abigochart/unix/ie_imp_GOChart.cpp --- abiword-2.4.1~/abiword-plugins/tools/abigochart/unix/ie_imp_GOChart.cpp 2005-06-27 08:56:00 +0300 +++ abiword-2.4.1/abiword-plugins/tools/abigochart/unix/ie_imp_GOChart.cpp 2005-11-17 13:07:16 +0200 @@ -76,7 +76,7 @@ UT_Confidence_t IE_Imp_Object_Sniffer::recognizeContents(const char * szBuf, UT_uint32 iNumbytes) { - char * magic1 = ""; + char * magic1 = ""; xxx_UT_DEBUGMSG(("magic1 = %s \n",magic1));