ooo-build r11694 - in trunk: . patches/src680



Author: strba
Date: Sun Feb 24 09:17:34 2008
New Revision: 11694
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11694&view=rev

Log:
2008-02-23  Fridrich Strba  <fridrich strba bluewin ch>

	* patches/src680/svg-import-filter.diff: get stroke-width and viewbox right,
	temporarily interprete polyline as polygon; since firefox and inkscape do
	the same; if no width and/or height is given, mimic inkscape that assumes A4;
	get some draw:transform parameters.
	* patches/src680/apply: actually list UnitExperimental, so that it does not
	break badly after Michael's commit :-P




Modified:
   trunk/ChangeLog
   trunk/patches/src680/apply
   trunk/patches/src680/svg-import-filter.diff

Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply	(original)
+++ trunk/patches/src680/apply	Sun Feb 24 09:17:34 2008
@@ -28,7 +28,7 @@
               VBAUntested, ArkOnlyExperimental, SharedWorksheets, \
 	      UnUsedButNotYetRemovedFromSVN, \
 	      PostgreSQL, SELinux, VOSremoval, Glib2, \
-	      SVGImport
+	      UnitExperimental, SVGImport
 # Binfilter patches: a special distro; applied only when building with binfilter
 Binfilter : BFBuildBits, BFFixes
 # System patches: a special distro; applied only when building with the system tarball unpacked

Modified: trunk/patches/src680/svg-import-filter.diff
==============================================================================
--- trunk/patches/src680/svg-import-filter.diff	(original)
+++ trunk/patches/src680/svg-import-filter.diff	Sun Feb 24 09:17:34 2008
@@ -1,5 +1,5 @@
---- filter/source/config/fragments/fcfg_drawgraphics.mk	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/config/fragments/fcfg_drawgraphics.mk	2008-02-21 17:30:17.000000000 +0100
+--- filter/source/config/fragments/fcfg_drawgraphics.mk	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/config/fragments/fcfg_drawgraphics.mk	2008-02-23 08:55:34.000000000 +0100
 @@ -54,6 +54,7 @@
      SGF___StarOffice_Writer_SGF \
      SGV___StarDraw_2_0 \
@@ -9,7 +9,7 @@
      TIF___Tag_Image_File \
      WMF___MS_Windows_Metafile \
 --- filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	2008-02-21 20:42:40.000000000 +0100
++++ filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,13 @@
 +	<node oor:name="SVG - Scalable Vector Graphics" oor:op="replace">
 +		<prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
@@ -24,8 +24,8 @@
 +		<prop oor:name="TemplateName"/>
 +		<prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
 +	</node>
---- filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-02-21 17:30:17.000000000 +0100
+--- filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-02-23 08:55:34.000000000 +0100
 @@ -1,12 +1,12 @@
  	<node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace" >
 -		<prop oor:name="DetectService"/>
@@ -43,8 +43,8 @@
 -		<prop oor:name="ClipboardFormat"/>
 +		<prop oor:name="ClipboardFormat"><value>doctype:xmlns="http://www.w3.org/2000/svg";</value></prop>
  	</node>
---- filter/source/svg/exports.map	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/svg/exports.map	2008-02-21 17:30:17.000000000 +0100
+--- filter/source/svg/exports.map	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/svg/exports.map	2008-02-23 08:55:34.000000000 +0100
 @@ -1,4 +1,4 @@
 -PDFFILTER_1_0 {
 +SVGFILTER_1_0 {
@@ -59,7 +59,7 @@
 \ No newline at end of file
 +}; 
 --- filter/source/svg/gentoken.pl	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/gentoken.pl	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/gentoken.pl	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,58 @@
 +# from oox/source/token - should really put this into solenv
 +
@@ -120,7 +120,7 @@
 +close ( HXX );
 +close ( GPERF );
 --- filter/source/svg/gfxtypes.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/gfxtypes.hxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/gfxtypes.hxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,309 @@
 +/*************************************************************************
 + *
@@ -431,8 +431,8 @@
 +} // namespace svgi
 +
 +#endif
---- filter/source/svg/makefile.mk	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/svg/makefile.mk	2008-02-21 17:30:17.000000000 +0100
+--- filter/source/svg/makefile.mk	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/svg/makefile.mk	2008-02-23 08:55:34.000000000 +0100
 @@ -34,47 +34,46 @@
  #*************************************************************************
  
@@ -512,17 +512,8 @@
 +
 +$(SLO)$/svgreader.obj : $(INCCOM)$/tokens.cxx $(INCCOM)$/tokens.hxx
 +
-diff -u -r -N filter/source/svg/makefile.mk.orig filter/source/svg/makefile.mk.orig
---- filter/source/svg/makefile.mk.orig	2008-02-21 19:57:24.000000000 +0100
-+++ filter/source/svg/makefile.mk.orig	2008-02-21 17:24:59.000000000 +0100
-@@ -96,5 +96,3 @@
- 
- $(SLO)$/tokenmap.obj : $(INCCOM)$/tokens.cxx $(INCCOM)$/tokens.hxx
- 
--$(SLO)$/svgreader.obj : $(INCCOM)$/tokens.cxx $(INCCOM)$/tokens.hxx
--
 --- filter/source/svg/parserfragments.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/parserfragments.cxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/parserfragments.cxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,347 @@
 +/*************************************************************************
 + *
@@ -872,7 +863,7 @@
 +    
 +} // namespace svgi
 --- filter/source/svg/parserfragments.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/parserfragments.hxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/parserfragments.hxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,45 @@
 +/*************************************************************************
 + *
@@ -919,8 +910,8 @@
 +} // namespace svgi
 +
 +#endif
---- filter/source/svg/svgfilter.cxx	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/svg/svgfilter.cxx	2008-02-21 20:49:24.000000000 +0100
+--- filter/source/svg/svgfilter.cxx	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/svg/svgfilter.cxx	2008-02-23 08:55:34.000000000 +0100
 @@ -96,11 +96,9 @@
      if( pFocusWindow )
      	pFocusWindow->EnterWait();
@@ -984,8 +975,8 @@
  
  // -----------------------------------------------------------------------------
  
---- filter/source/svg/svgfilter.hxx	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/svg/svgfilter.hxx	2008-02-21 17:30:17.000000000 +0100
+--- filter/source/svg/svgfilter.hxx	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/svg/svgfilter.hxx	2008-02-23 08:55:34.000000000 +0100
 @@ -231,18 +231,11 @@
  class SVGActionWriter;
  class EditFieldInfo;
@@ -1032,8 +1023,8 @@
  
  	// XExporter
      virtual void SAL_CALL setSourceDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
---- filter/source/svg/svgimport.cxx	2008-02-21 20:58:03.000000000 +0100
-+++ filter/source/svg/svgimport.cxx	2008-02-21 20:55:46.000000000 +0100
+--- filter/source/svg/svgimport.cxx	2008-02-23 12:33:09.000000000 +0100
++++ filter/source/svg/svgimport.cxx	2008-02-23 08:55:34.000000000 +0100
 @@ -37,160 +37,59 @@
  #include "precompiled_filter.hxx"
  
@@ -1244,8 +1235,8 @@
  }
      
 --- filter/source/svg/svgreader.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/svgreader.cxx	2008-02-21 19:58:55.000000000 +0100
-@@ -0,0 +1,990 @@
++++ filter/source/svg/svgreader.cxx	2008-02-23 11:38:26.000000000 +0100
+@@ -0,0 +1,1122 @@
 +/*************************************************************************
 + *
 + *    OpenOffice.org - a multi-platform office productivity suite
@@ -1293,7 +1284,9 @@
 +
 +#define USTR(x) rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
 +#define OASIS_STR "urn:oasis:names:tc:opendocument:xmlns:"
-+#define USER_UNIT (10.0) // FIXME? 10.0 considered a nice magic value ;-)
++#define USER_UNIT (25.4) // FIXME? magic value ;-)
++
++#define VERBOSE 1
 +
 +using namespace ::com::sun::star;
 +
@@ -1495,9 +1488,14 @@
 +
 +        if( maCurrState.mnStrokeWidth != 0.0 )
 +        {
++#if 0
 +            ::basegfx::B2DVector aVec(maCurrState.mnStrokeWidth,0);
 +            aVec *= maCurrState.maCTM;
-+            xAttrs->AddAttribute( USTR("svg:stroke-width"), rtl::OUString::valueOf( aVec.getLength()/100.0 )+USTR("mm"));
++            xAttrs->AddAttribute( USTR("svg:stroke-width"), rtl::OUString::valueOf( aVec.getLength()/1000.0 )+USTR("mm"));
++			printf("Fridrich %f, %f\n", maCurrState.mnStrokeWidth, aVec.getLength());
++#else
++			xAttrs->AddAttribute( USTR("svg:stroke-width"), rtl::OUString::valueOf(maCurrState.mnStrokeWidth/100.0)+USTR("mm"));
++#endif
 +        }
 +        if( maCurrState.meLineJoin == basegfx::tools::B2DLINEJOIN_MITER )
 +            xAttrs->AddAttribute( USTR( "draw:stroke-linejoin"), USTR("miter"));
@@ -1813,16 +1811,27 @@
 +            sStyleId.toInt32());
 +        maCurrState = pOrigState != mrStateMap.end() ? pOrigState->second : maParentStates.back();
 +
++        fprintf(stderr,"the CTM is now #2: %f %f %f %f %f %f\n", 
++                maCurrState.maCTM.get(0,0),
++                maCurrState.maCTM.get(0,1),
++                maCurrState.maCTM.get(0,2),
++                maCurrState.maCTM.get(1,0),
++                maCurrState.maCTM.get(1,1),
++                maCurrState.maCTM.get(1,2));
++        
 +        const sal_Int32 nTokenId(getTokenId(xElem->getNodeName()));
 +        switch(nTokenId)
 +        {
++		    case XML_G:
++				
++			    break;
 +            case XML_POLYGON:
 +            case XML_POLYLINE:
 +            {
 +                rtl::OUString sPoints = xElem->getAttribute(USTR("points"));
 +                basegfx::B2DPolygon aPoly;
 +                basegfx::tools::importFromSvgPoints(aPoly, sPoints);
-+                if( nTokenId == XML_POLYGON )
++                // if( nTokenId == XML_POLYGON )
 +                    aPoly.setClosed(true);
 +
 +                writePathShape(xAttrs,
@@ -1891,10 +1900,10 @@
 +            }
 +            case XML_PATH:
 +            {
-+                rtl::OUString sPath = xElem->getAttribute(USTR("d"));
++                rtl::OUString sPath = xElem->hasAttribute(USTR("d")) ? xElem->getAttribute(USTR("d")) : USTR("");
 +                basegfx::B2DPolyPolygon aPoly;
 +                basegfx::tools::importFromSvgD(aPoly, sPath);
-+
++				
 +                writePathShape(xAttrs,
 +                               xUnoAttrs,
 +                               xElem,
@@ -1902,6 +1911,14 @@
 +                               aPoly);
 +                break;
 +            }
++			case XML_CIRCLE:
++			{
++				break;
++			}
++			case XML_ELLIPSE:
++			{
++				break;
++			}
 +        }
 +    }
 +
@@ -1914,6 +1931,36 @@
 +    {
 +        maParentStates.pop_back();
 +    }
++	
++	void writeTransformAttribute(const basegfx::B2DHomMatrix rMatrix, rtl::Reference<SvXMLAttributeList>& xAttrs)
++	{
++		basegfx::B2DTuple rScale, rTranslate;
++		double rRotate, rShearX;
++		::rtl::OUString sTransformValue;
++		if (!rMatrix.decompose(rScale, rTranslate, rRotate, rShearX))
++			return;
++		fprintf(stderr, "Here we go!!!\n");
++		fprintf(stderr, "rScale.getX()=%f; rScale.getY()=%f\n", rScale.getX(), rScale.getY());
++		if (rScale.getX() != USER_UNIT || rScale.getY() != USER_UNIT)
++			sTransformValue += USTR("scale(")+::rtl::OUString::valueOf(rScale.getX()/USER_UNIT)+USTR(" ")
++			     +::rtl::OUString::valueOf(rScale.getY()/USER_UNIT)+USTR(") ");
++	    fprintf(stderr, "rTranslate.getX()=%f, rTranslate.getY()=%f\n", rTranslate.getX(), rTranslate.getY());
++		if (rTranslate.getX() != 0.0f || rTranslate.getY() != 0.0f)
++			// write translate
++			sTransformValue += USTR("translate(")+::rtl::OUString::valueOf(rTranslate.getX()*USER_UNIT/100.0f)+USTR("mm ")
++			     +::rtl::OUString::valueOf(rTranslate.getY()*USER_UNIT/100.0f)+USTR("mm) ");
++	    fprintf(stderr, "rRotate=%f\n", rRotate);
++		if (rRotate != 0.0f)
++			sTransformValue += USTR("rotate(")+::rtl::OUString::valueOf(rRotate)+USTR(") ");
++
++		if (rShearX != 0.0f)
++			sTransformValue += USTR("skewX(")+::rtl::OUString::valueOf(rShearX)+USTR(") ");
++		if (!sTransformValue.getLength())
++			return;
++		fprintf(stderr, "Here we go again!!!\n");
++		xAttrs->AddAttribute( USTR("draw:transform"), sTransformValue);
++		fprintf(stderr, "The transform string: %s\n", ::rtl::OUStringToOString(sTransformValue, RTL_TEXTENCODING_UTF8).getStr());
++	}
 +
 +    void writePathShape( rtl::Reference<SvXMLAttributeList>&             xAttrs,
 +                         const uno::Reference<xml::sax::XAttributeList>& xUnoAttrs,
@@ -1929,7 +1976,17 @@
 +		
 +		xAttrs->Clear();
 +
-+        if( aState.maDashArray.size() )
++        fprintf(stderr,"the CTM is now #2: %f %f %f %f %f %f\n", 
++                maCurrState.maCTM.get(0,0),
++                maCurrState.maCTM.get(0,1),
++                maCurrState.maCTM.get(0,2),
++                maCurrState.maCTM.get(1,0),
++                maCurrState.maCTM.get(1,1),
++                maCurrState.maCTM.get(1,2));
++        
++        writeTransformAttribute(maCurrState.maCTM, xAttrs);
++		
++		if( aState.maDashArray.size() )
 +        {
 +            // ODF dashing is severly borked - generate filled polygon instead
 +            aPolys.clear();
@@ -2099,13 +2156,15 @@
 +    
 +    // get the document dimensions
 +
-+    // together with the AnnotatingVisitor, fake a somewhat upscaling
-+    // transformation, to avoid those dreaded integer roundoff errors
-+    // in the drawing layer
-+    double fViewPortWidth(
-+        USER_UNIT*convLength(xDocElem->getAttribute(USTR("width"))));
-+    double fViewPortHeight(
-+        USER_UNIT*convLength(xDocElem->getAttribute(USTR("height"))));
++    // if the "width" and "height" attributes are missing, inkscape fakes
++    // A4 portrait for. Let's do the same.
++	if (!xDocElem->hasAttribute(USTR("width")))
++		xDocElem->setAttribute(USTR("width"), USTR("210mm"));
++	if (!xDocElem->hasAttribute(USTR("height")))
++		xDocElem->setAttribute(USTR("height"), USTR("297mm"));
++		
++    double fViewPortWidth( convLength(xDocElem->getAttribute(USTR("width"))));
++    double fViewPortHeight( convLength(xDocElem->getAttribute(USTR("height"))));
 +
 +    // document prolog
 +    rtl::Reference<SvXMLAttributeList> xAttrs( new SvXMLAttributeList() );
@@ -2130,13 +2189,68 @@
 +    xAttrs->AddAttribute( USTR( "xmlns:xsd" ), USTR( "http://www.w3.org/2001/XMLSchema"; ));
 +    xAttrs->AddAttribute( USTR( "xmlns:xsi" ), USTR( "http://www.w3.org/2001/XMLSchema-instance"; ));
 +    xAttrs->AddAttribute( USTR( "office:version" ), USTR( "1.0" ));
++	xAttrs->AddAttribute( USTR( "office:mimetype" ), USTR( "application/vnd.oasis.opendocument.graphics" ));
 +
 +    m_xDocumentHandler->startElement( USTR("office:document"), xUnoAttrs );
 +
 +    xAttrs->Clear();
++
++	m_xDocumentHandler->startElement( USTR("office:settings"), xUnoAttrs);
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "ooo:view-settings" ));
++	m_xDocumentHandler->startElement( USTR("config:config-item-set"), xUnoAttrs);
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaTop" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	m_xDocumentHandler->characters( USTR( "0" ));
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaLeft" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	m_xDocumentHandler->characters( USTR( "0" ));
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaWidth" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	sal_Int64 iWidth = sal_Int64(fViewPortWidth);
++	m_xDocumentHandler->characters( ::rtl::OUString::valueOf(iWidth) );
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaHeight" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	sal_Int64 iHeight = sal_Int64(fViewPortHeight);
++	m_xDocumentHandler->characters( ::rtl::OUString::valueOf(iHeight) );
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	m_xDocumentHandler->endElement( USTR( "config:config-item-set" ));
++	
++	m_xDocumentHandler->endElement( USTR( "office:settings" ));
++
++	xAttrs->Clear();
++	
 +    m_xDocumentHandler->startElement( USTR("office:automatic-styles"), 
 +                                      xUnoAttrs );
-+    xAttrs->Clear();
++ 
 +    xAttrs->AddAttribute( USTR( "style:name" ), USTR("pagelayout1"));
 +    m_xDocumentHandler->startElement( USTR("style:page-layout"), 
 +                                      xUnoAttrs );
@@ -2145,12 +2259,21 @@
 +
 +    // make page viewport-width times viewport-height mm large - add
 +    // 5% border at every side
++#if 0
 +    xAttrs->AddAttribute( USTR( "fo:margin-top" ), rtl::OUString::valueOf(fViewPortHeight/2000.0)+USTR("mm"));
 +    xAttrs->AddAttribute( USTR( "fo:margin-bottom" ), rtl::OUString::valueOf(fViewPortHeight/2000.0)+USTR("mm"));
 +    xAttrs->AddAttribute( USTR( "fo:margin-left" ), rtl::OUString::valueOf(fViewPortWidth/2000.0)+USTR("mm"));
 +    xAttrs->AddAttribute( USTR( "fo:margin-right" ), rtl::OUString::valueOf(fViewPortWidth/2000.0)+USTR("mm"));
 +    xAttrs->AddAttribute( USTR( "fo:page-width" ), rtl::OUString::valueOf(11.0*fViewPortWidth/1000.0)+USTR("mm"));
 +    xAttrs->AddAttribute( USTR( "fo:page-height" ), rtl::OUString::valueOf(11.0*fViewPortHeight/1000.0)+USTR("mm"));
++#else
++    xAttrs->AddAttribute( USTR( "fo:margin-top" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:margin-bottom" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:margin-left" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:margin-right" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:page-width" ), rtl::OUString::valueOf(fViewPortWidth/100.0)+USTR("mm"));
++    xAttrs->AddAttribute( USTR( "fo:page-height" ), rtl::OUString::valueOf(fViewPortHeight/100.0)+USTR("mm"));
++#endif
 +    xAttrs->AddAttribute( USTR( "style:print-orientation" ), 
 +        fViewPortWidth > fViewPortHeight ? 
 +        USTR("landscape") :
@@ -2237,7 +2360,7 @@
 +
 +} // namespace svgi
 --- filter/source/svg/svgreader.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/svgreader.hxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/svgreader.hxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,43 @@
 +/*************************************************************************
 + *
@@ -2283,7 +2406,7 @@
 +
 +#endif
 --- filter/source/svg/tokenmap.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/tokenmap.cxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/tokenmap.cxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,62 @@
 +/*************************************************************************
 + *
@@ -2348,7 +2471,7 @@
 +
 +} // namespace svgi
 --- filter/source/svg/tokenmap.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/tokenmap.hxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/tokenmap.hxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,32 @@
 +/*************************************************************************
 + *
@@ -2383,7 +2506,7 @@
 +
 +#endif
 --- filter/source/svg/tokens.txt	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/tokens.txt	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/tokens.txt	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,246 @@
 +#######################################
 +#
@@ -2633,8 +2756,8 @@
 +zoomAndPan
 \ No newline at end of file
 --- filter/source/svg/units.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/units.cxx	2008-02-21 17:30:17.000000000 +0100
-@@ -0,0 +1,82 @@
++++ filter/source/svg/units.cxx	2008-02-23 08:55:34.000000000 +0100
+@@ -0,0 +1,83 @@
 +/*************************************************************************
 + *
 + *    OpenOffice.org - a multi-platform office productivity suite
@@ -2675,7 +2798,7 @@
 +        case SVG_LENGTH_UNIT_MM: return value * 100.0;
 +        case SVG_LENGTH_UNIT_PC: return value * 2540.0/6.0;
 +        case SVG_LENGTH_UNIT_PCT: fprintf( stderr, "TODO: legth type PCT not implemented.\n" ); return 1000.0;
-+        case SVG_LENGTH_UNIT_PT: return value * 35.277778;
++        case SVG_LENGTH_UNIT_PT: return value * 2540.0/72.0;
 +        case SVG_LENGTH_UNIT_PX: return value;
 +        default: fprintf( stderr, "Unknown length type\n" );
 +    }
@@ -2705,6 +2828,7 @@
 +                | str_p("pct")[assign_a(eUnit,SVG_LENGTH_UNIT_PCT)]
 +                | str_p("pt") [assign_a(eUnit,SVG_LENGTH_UNIT_PT)]
 +                | str_p("px") [assign_a(eUnit,SVG_LENGTH_UNIT_PX)]
++                | str_p("") [assign_a(eUnit,SVG_LENGTH_UNIT_PT)]
 +                | end_p)
 +        ),
 +        //  End grammar
@@ -2718,7 +2842,7 @@
 +
 +} // namespace svgi
 --- filter/source/svg/units.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/units.hxx	2008-02-21 17:30:17.000000000 +0100
++++ filter/source/svg/units.hxx	2008-02-23 08:55:34.000000000 +0100
 @@ -0,0 +1,43 @@
 +/*************************************************************************
 + *



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]