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



Author: strba
Date: Fri Apr 11 13:57:45 2008
New Revision: 12154
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12154&view=rev

Log:
uint8_t -> unsigned char in WPXSvStream.cxx; initial parsing of gradients in SVG import

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

Modified: trunk/patches/src680/svg-import-filter.diff
==============================================================================
--- trunk/patches/src680/svg-import-filter.diff	(original)
+++ trunk/patches/src680/svg-import-filter.diff	Fri Apr 11 13:57:45 2008
@@ -1,5 +1,5 @@
---- filter/source/config/fragments/fcfg_drawgraphics.mk	2008-03-03 11:43:33.000000000 +0100
-+++ filter/source/config/fragments/fcfg_drawgraphics.mk	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/config/fragments/fcfg_drawgraphics.mk	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/config/fragments/fcfg_drawgraphics.mk	2008-04-11 00:09:55.000000000 +0200
 @@ -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-29 10:27:32.000000000 +0100
++++ filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	2008-04-11 00:09:55.000000000 +0200
 @@ -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-03-03 11:43:33.000000000 +0100
-+++ filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-04-11 00:09:55.000000000 +0200
 @@ -1,12 +1,12 @@
  	<node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace" >
 -		<prop oor:name="DetectService"/>
@@ -44,7 +44,7 @@
 +		<prop oor:name="ClipboardFormat"><value>doctype:xmlns="http://www.w3.org/2000/svg";</value></prop>
  	</node>
 --- filter/source/svg/b2dellipse.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/b2dellipse.cxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/b2dellipse.cxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,139 @@
 +/*************************************************************************
 + *
@@ -186,7 +186,7 @@
 +//////////////////////////////////////////////////////////////////////////////
 +// eof
 --- filter/source/svg/b2dellipse.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/b2dellipse.hxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/b2dellipse.hxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,77 @@
 +/*************************************************************************
 + *
@@ -265,8 +265,8 @@
 +//////////////////////////////////////////////////////////////////////////////
 +
 +#endif /* _BASEGFX_B2DELLIPSE_HXX */
---- filter/source/svg/exports.map	2008-03-03 11:43:33.000000000 +0100
-+++ filter/source/svg/exports.map	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/svg/exports.map	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/exports.map	2008-04-11 00:09:55.000000000 +0200
 @@ -1,4 +1,4 @@
 -PDFFILTER_1_0 {
 +SVGFILTER_1_0 {
@@ -281,7 +281,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-29 10:27:32.000000000 +0100
++++ filter/source/svg/gentoken.pl	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,58 @@
 +# from oox/source/token - should really put this into solenv
 +
@@ -342,8 +342,8 @@
 +close ( HXX );
 +close ( GPERF );
 --- filter/source/svg/gfxtypes.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/gfxtypes.hxx	2008-02-29 10:27:32.000000000 +0100
-@@ -0,0 +1,309 @@
++++ filter/source/svg/gfxtypes.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,317 @@
 +/*************************************************************************
 + *
 + *    OpenOffice.org - a multi-platform office productivity suite
@@ -368,6 +368,7 @@
 +
 +#include <hash_set>
 +#include <hash_map>
++#include <rtl/ustring.hxx>
 +
 +namespace svgi
 +{
@@ -408,24 +409,31 @@
 +
 +struct GradientStop
 +{
-+    GradientStop() : maStopColor(), mnStopPosition(0.0)
++    GradientStop() : maStopColor(), mnStopPosition(0.0), msId()
 +    {}
-+    ARGBColor maStopColor;
-+    double    mnStopPosition;
++    ARGBColor     maStopColor;
++    double        mnStopPosition;
++	rtl::OUString msId;
 +};
 +inline bool operator==( const GradientStop& rLHS, const GradientStop& rRHS )
 +{ return rLHS.mnStopPosition==rRHS.mnStopPosition && rLHS.maStopColor==rRHS.maStopColor; }
 +
 +struct Gradient
 +{
-+    Gradient() : maStops(), mbBoundingBoxUnits(false)
++    Gradient() : maStops(), mbBoundingBoxUnits(false), msId(), msLinkedTo(), mfX1(0.0f), mfX2(0.0f), mfY1(0.0f), mfY2(0.0f) 
 +    {}
 +    std::vector<GradientStop> maStops;
 +    bool                      mbBoundingBoxUnits;
++	rtl::OUString			  msId, msLinkedTo;
++	double					  mfX1, mfX2, mfY1, mfY2;
 +};
 +
 +inline bool operator==( const Gradient& rLHS, const Gradient& rRHS )
-+{ return rLHS.mbBoundingBoxUnits==rRHS.mbBoundingBoxUnits && rLHS.maStops==rRHS.maStops; }
++{
++	return rLHS.mbBoundingBoxUnits==rRHS.mbBoundingBoxUnits && rLHS.maStops==rRHS.maStops &&
++	rLHS.msId.equals(rRHS.msId) && rLHS.msLinkedTo.equals(rRHS.msLinkedTo) &&
++	rLHS.mfX1 == rRHS.mfX1 && rLHS.mfX2 == rRHS.mfX2 && rLHS.mfY1 == rRHS.mfY1 && rLHS.mfY2 == rRHS.mfY2;
++}
 +
 +enum PaintType
 +{
@@ -653,8 +661,8 @@
 +} // namespace svgi
 +
 +#endif
---- filter/source/svg/makefile.mk	2008-03-03 11:43:33.000000000 +0100
-+++ filter/source/svg/makefile.mk	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/svg/makefile.mk	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/makefile.mk	2008-04-11 00:09:55.000000000 +0200
 @@ -34,24 +34,35 @@
  #*************************************************************************
  
@@ -744,8 +752,8 @@
 +$(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-03-03 12:47:08.000000000 +0100
-@@ -0,0 +1,518 @@
++++ filter/source/svg/parserfragments.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,536 @@
 +/*************************************************************************
 + *
 + *    OpenOffice.org - a multi-platform office productivity suite
@@ -1065,6 +1073,24 @@
 +	}
 +}
 +
++bool parseOpacity (const char* sOpacity, ARGBColor& rColor )
++{
++	using namespace ::boost::spirit;
++	
++	
++	if( parse(sOpacity,
++			// Begin grammar
++			(
++				real_p[assign_a(rColor.a)] 
++			) >> end_p,
++			// End grammar
++			space_p).full )
++	{
++		return true;
++	}
++	return false;
++}			
++
 +//////////////////////////////////////////////////////////////
 +
 +bool parseTransform( const char* sTransform, basegfx::B2DHomMatrix& rTransform )
@@ -1265,8 +1291,8 @@
 +
 +} // namespace svgi
 --- filter/source/svg/parserfragments.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/parserfragments.hxx	2008-02-29 10:27:32.000000000 +0100
-@@ -0,0 +1,49 @@
++++ filter/source/svg/parserfragments.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,50 @@
 +/*************************************************************************
 + *
 + *    OpenOffice.org - a multi-platform office productivity suite
@@ -1300,6 +1326,7 @@
 +
 +    /// Parse given string for one of the SVG color grammars
 +    bool parseColor( const char* sColor, ARGBColor& rColor );
++	bool parseOpacity( const char* sOpacity, ARGBColor& rColor );
 +
 +    /// Parse given string for one of the SVG transformation grammars
 +    bool parseTransform( const char* sTransform, basegfx::B2DHomMatrix& rTransform );
@@ -1317,7 +1344,7 @@
 +
 +#endif
 --- filter/source/svg/spirit_supplements.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/spirit_supplements.hxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/spirit_supplements.hxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,94 @@
 +/*************************************************************************
 + *
@@ -1413,8 +1440,8 @@
 +
 +# endif
 +#endif
---- filter/source/svg/svgfilter.cxx	2008-03-03 11:43:33.000000000 +0100
-+++ filter/source/svg/svgfilter.cxx	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/svg/svgfilter.cxx	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/svgfilter.cxx	2008-04-11 00:09:55.000000000 +0200
 @@ -96,11 +96,9 @@
      if( pFocusWindow )
      	pFocusWindow->EnterWait();
@@ -1478,8 +1505,8 @@
  
  // -----------------------------------------------------------------------------
  
---- filter/source/svg/svgfilter.hxx	2008-03-03 11:43:33.000000000 +0100
-+++ filter/source/svg/svgfilter.hxx	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/svg/svgfilter.hxx	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/svgfilter.hxx	2008-04-11 00:09:55.000000000 +0200
 @@ -57,11 +57,9 @@
  #ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
  #include <com/sun/star/document/XFilter.hpp>
@@ -1554,8 +1581,8 @@
  
  	// XExporter
      virtual void SAL_CALL setSourceDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
---- filter/source/svg/svgimport.cxx	2008-03-03 11:43:33.000000000 +0100
-+++ filter/source/svg/svgimport.cxx	2008-02-29 10:27:32.000000000 +0100
+--- filter/source/svg/svgimport.cxx	2008-04-11 08:49:32.000000000 +0200
++++ filter/source/svg/svgimport.cxx	2008-04-11 00:09:55.000000000 +0200
 @@ -37,160 +37,59 @@
  #include "precompiled_filter.hxx"
  
@@ -1766,8 +1793,8 @@
  }
      
 --- filter/source/svg/svgreader.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/svgreader.cxx	2008-02-29 10:27:32.000000000 +0100
-@@ -0,0 +1,1402 @@
++++ filter/source/svg/svgreader.cxx	2008-04-11 09:33:30.000000000 +0200
+@@ -0,0 +1,1499 @@
 +/*************************************************************************
 + *
 + *    OpenOffice.org - a multi-platform office productivity suite
@@ -1813,6 +1840,7 @@
 +
 +#include <boost/bind.hpp>
 +#include <hash_set>
++#include <map>
 +#include <string.h>
 +
 +#define USTR(x) rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
@@ -1882,7 +1910,10 @@
 +        maParentStates(),
 +        mrStates(rStatePool),
 +        mrStateMap(rStateMap),
-+        mxDocumentHandler(xDocumentHandler)
++        mxDocumentHandler(xDocumentHandler),
++		mpCurrentGradient(NULL),
++		mpCurrentGradientStop(NULL),
++		mxGradientVector()
 +    {
 +        State aState;
 +        aState.maCTM = aState.maTransform;
@@ -1895,58 +1926,89 @@
 +    void operator()( const uno::Reference<xml::dom::XElement>&      xElem,
 +                     const uno::Reference<xml::dom::XNamedNodeMap>& xAttributes )
 +    {
-+        // init state. inherit defaults from parent.
-+        maCurrState = maParentStates.back(); 
-+        maCurrState.maTransform.identity();
-+
-+         OSL_TRACE("the CTM is currently #1: %f %f %f %f %f %f", 
-+                   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));
-+
-+        // scan for style info
-+        const sal_Int32 nNumElems( xAttributes->getLength() );
-+        rtl::OUString sAttributeValue;
-+        for( sal_Int32 i=0; i<nNumElems; ++i )
-+        {
-+            sAttributeValue = xAttributes->item(i)->getNodeValue();
-+            const sal_Int32 nTokenId( 
-+                getTokenId(xAttributes->item(i)->getNodeName()));
-+            if( XML_STYLE == nTokenId )
-+                parseStyle(sAttributeValue);
-+            else 
-+                parseAttribute(nTokenId, 
-+                               xAttributes->item(i)->getNodeName(),
-+                               sAttributeValue);
-+        }
-+
-+        // all attributes parsed, can calc total CTM now
-+        if( !maCurrState.maViewBox.isEmpty() &&
-+            maCurrState.maViewBox.getWidth() != 0.0 && 
-+            maCurrState.maViewBox.getHeight() != 0.0 )
-+        {
-+            // transform aViewBox into viewport, such that they
-+            // coincide
-+            maCurrState.maTransform.translate(-maCurrState.maViewBox.getMinX(),
-+                                              -maCurrState.maViewBox.getMinY());
-+            maCurrState.maTransform.scale(maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth(),
-+                                          maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight());
-+        }
-+        maCurrState.maCTM *= maCurrState.maTransform;
-+
-+        OSL_TRACE("the CTM is currently #2: %f %f %f %f %f %f", 
-+                  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));
++		sal_Int32 nTagId(getTokenId(xElem->getTagName()));
++		switch (nTagId)
++		{
++			case XML_LINEARGRADIENT:
++			{
++				const sal_Int32 nNumAttrs( xAttributes->getLength() );
++				rtl::OUString sAttributeValue;
++				mxGradientVector.push_back(Gradient()); 
++				mpCurrentGradient = &(mxGradientVector.back());
++				for( sal_Int32 i=0; i<nNumAttrs; ++i )
++				{
++					parseGradientData( getTokenId(xAttributes->item(i)->getNodeName()), xAttributes->item(i)->getNodeValue() );
++				}
++				break;
++			}
++			case XML_STOP:
++			{
++				
++				const sal_Int32 nNumAttrs( xAttributes->getLength() );
++				rtl::OUString sAttributeValue;
++				mpCurrentGradient->maStops.push_back(GradientStop());
++				mpCurrentGradientStop = &(mpCurrentGradient->maStops.back());
++				for( sal_Int32 i=0; i<nNumAttrs; ++i )
++				{
++					parseGradientStop( getTokenId(xAttributes->item(i)->getNodeName()), xAttributes->item(i)->getNodeValue() );
++				}
++				break;
++			}
++			default:
++			{
++		        // init state. inherit defaults from parent.
++    		    maCurrState = maParentStates.back(); 
++        		maCurrState.maTransform.identity();
++
++		         OSL_TRACE("the CTM is currently #1: %f %f %f %f %f %f", 
++    		               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));
++
++		        // scan for style info
++    		    const sal_Int32 nNumAttrs( xAttributes->getLength() );
++        		rtl::OUString sAttributeValue;
++	        	for( sal_Int32 i=0; i<nNumAttrs; ++i )
++	    	    {
++    	    	    sAttributeValue = xAttributes->item(i)->getNodeValue();
++        	    	const sal_Int32 nTokenId( 
++            	    	getTokenId(xAttributes->item(i)->getNodeName()));
++	            	if( XML_STYLE == nTokenId )
++    	            	parseStyle(sAttributeValue);
++	        	    else 
++    	        	    parseAttribute(nTokenId, 
++            	        	           sAttributeValue);
++		        }
++
++    		    // all attributes parsed, can calc total CTM now
++        		if( !maCurrState.maViewBox.isEmpty() &&
++            		maCurrState.maViewBox.getWidth() != 0.0 && 
++		            maCurrState.maViewBox.getHeight() != 0.0 )
++    		    {
++        		    // transform aViewBox into viewport, such that they
++            		// coincide
++	            	maCurrState.maTransform.translate(-maCurrState.maViewBox.getMinX(),
++    	            	                              -maCurrState.maViewBox.getMinY());
++	        	    maCurrState.maTransform.scale(maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth(),
++    	        	                              maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight());
++	    	    }
++    	    	maCurrState.maCTM *= maCurrState.maTransform;
++
++		        OSL_TRACE("the CTM is currently #2: %f %f %f %f %f %f", 
++    		              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));
 +        
-+        // if necessary, serialize to automatic-style section
-+        writeStyle(xElem);
++    	    	// if necessary, serialize to automatic-style section
++        		writeStyle(xElem);
++			}
++		}	
 +    }
 +
 +    rtl::OUString getStyleName( const char* sPrefix, sal_Int32 nId )
@@ -2102,9 +2164,64 @@
 +    {
 +        maParentStates.pop_back();
 +    }
-+
++	
++	void parseGradientData( const sal_Int32			nTokenId,
++							const rtl::OUString&	sValue )
++	{
++		switch(nTokenId)
++		{
++			case XML_X1:
++				mpCurrentGradient->mfX1 = convLength(sValue);
++				break;
++			case XML_X2:
++				mpCurrentGradient->mfX2 = convLength(sValue);
++				break;
++			case XML_Y1:
++				mpCurrentGradient->mfY1 = convLength(sValue);
++				break;
++			case XML_Y2:
++				mpCurrentGradient->mfY2 = convLength(sValue);
++				break;
++			case XML_ID:
++				mpCurrentGradient->msId = sValue;
++				break;
++			case XML_GRADIENTUNITS:
++				if (getTokenId(sValue) == XML_OBJECTBOUNDINGBOX)
++					mpCurrentGradient->mbBoundingBoxUnits = true;
++				else
++					mpCurrentGradient->mbBoundingBoxUnits = false;
++				break;
++			case XML_XLINK_HREF:
++				if (sValue.copy(0,1).equalsAscii("#"))
++					mpCurrentGradient->msLinkedTo = sValue.copy(1);
++				else
++					mpCurrentGradient->msLinkedTo = sValue;
++				break;
++			default:
++				break;
++		}
++	}
++	
++	void parseGradientStop( const sal_Int32      nTokenId, 
++							const rtl::OUString& sValue )
++	{
++		switch(nTokenId)
++		{
++			case XML_ID:
++				mpCurrentGradientStop->msId = sValue;
++				break;
++			case XML_OFFSET:
++				mpCurrentGradientStop->mnStopPosition = sValue.toDouble();
++				break;
++			case XML_STYLE:
++				parseStyle( sValue );
++				break;
++			default:
++				break;
++		}
++	}
++	
 +    void parseAttribute( const sal_Int32      nTokenId, 
-+                         const rtl::OUString& sAttribute, 
 +                         const rtl::OUString& sValue )
 +    {
 +        rtl::OString aValueUtf8( sValue.getStr(), 
@@ -2256,12 +2373,14 @@
 +            case XML_FONT_VARIANT:
 +                maCurrState.meFontVariant=VARIANT_SMALLCAPS; // TODO: sValue.toDouble();
 +                break;
++			case XML_STOP_COLOR:
++				parseColor( aValueUtf8, mpCurrentGradientStop->maStopColor );
++				break;
++			case XML_STOP_OPACITY:
++				parseOpacity( aValueUtf8, mpCurrentGradientStop->maStopColor );
++				break;
 +            default:
-+                OSL_TRACE("unhandled token %s (detected as %s)", 
-+                          rtl::OUStringToOString(
-+                              sAttribute,
-+                              RTL_TEXTENCODING_UTF8 ).getStr(),
-+                          getTokenName(nTokenId));
++                OSL_TRACE("unhandled token %s", getTokenName(nTokenId));
 +                break;
 +        }
 +    }
@@ -2287,7 +2406,6 @@
 +
 +            // recurse into normal attribute parsing
 +            parseAttribute( getTokenId(aCurrAttrib),
-+                            aCurrAttrib,
 +                            aCurrValue );
 +        }
 +        while( nIndex != -1 );
@@ -2314,6 +2432,9 @@
 +            rColor = rInheritColor;
 +            rGradient = rInheritGradient;
 +        }
++		else if( strncmp(sValue,"url",3) == 0)
++		{
++		}
 +        else
 +        { 
 +            rType = SOLID;
@@ -2327,6 +2448,9 @@
 +    StatePool&                                  mrStates;
 +    StateMap&                                   mrStateMap;
 +    uno::Reference<xml::sax::XDocumentHandler>  mxDocumentHandler;
++	Gradient*									mpCurrentGradient;
++	GradientStop*		                		mpCurrentGradientStop;
++	std::vector< Gradient >						mxGradientVector;
 +};
 +
 +/// Annotate svg styles with unique references to state pool
@@ -2383,10 +2507,10 @@
 +		    case XML_LINE:
 +			{
 +                // collect attributes
-+                const sal_Int32 nNumElems( xAttributes->getLength() );
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
 +                rtl::OUString sAttributeValue;
 +                double x1=0.0,y1=0.0,x2=0.0,y2=0.0;
-+                for( sal_Int32 i=0; i<nNumElems; ++i )
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +                {
 +                    sAttributeValue = xAttributes->item(i)->getNodeValue();
 +                    const sal_Int32 nAttribId( 
@@ -2448,11 +2572,11 @@
 +            case XML_RECT:
 +            {
 +                // collect attributes
-+                const sal_Int32 nNumElems( xAttributes->getLength() );
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
 +                rtl::OUString sAttributeValue;
 +                bool bRxSeen=false, bRySeen=false;
 +                double x=0.0,y=0.0,width=0.0,height=0.0,rx=0.0,ry=0.0;
-+                for( sal_Int32 i=0; i<nNumElems; ++i )
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +                {
 +                    sAttributeValue = xAttributes->item(i)->getNodeValue();
 +                    const sal_Int32 nAttribId( 
@@ -2523,10 +2647,10 @@
 +			case XML_CIRCLE:
 +			{
 +                // collect attributes
-+                const sal_Int32 nNumElems( xAttributes->getLength() );
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
 +                rtl::OUString sAttributeValue;
 +                double cx=0.0,cy=0.0,r=0.0;
-+                for( sal_Int32 i=0; i<nNumElems; ++i )
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +                {
 +                    sAttributeValue = xAttributes->item(i)->getNodeValue();
 +                    const sal_Int32 nAttribId( 
@@ -2557,10 +2681,10 @@
 +			case XML_ELLIPSE:
 +			{
 +                // collect attributes
-+                const sal_Int32 nNumElems( xAttributes->getLength() );
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
 +                rtl::OUString sAttributeValue;
 +                double cx=0.0,cy=0.0,rx=0.0, ry=0.0;
-+                for( sal_Int32 i=0; i<nNumElems; ++i )
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +                {
 +                    sAttributeValue = xAttributes->item(i)->getNodeValue();
 +                    const sal_Int32 nAttribId( 
@@ -2594,10 +2718,10 @@
 +            case XML_IMAGE:
 +            {
 +                // collect attributes
-+                const sal_Int32 nNumElems( xAttributes->getLength() );
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
 +                rtl::OUString sAttributeValue;
 +                double x=0.0,y=0.0,width=0.0,height=0.0;
-+                for( sal_Int32 i=0; i<nNumElems; ++i )
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +                {
 +                    sAttributeValue = xAttributes->item(i)->getNodeValue();
 +                    const sal_Int32 nAttribId( 
@@ -2644,10 +2768,10 @@
 +                              xml::dom::NodeType_TEXT_NODE);
 +
 +                // collect attributes
-+                const sal_Int32 nNumElems( xAttributes->getLength() );
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
 +                rtl::OUString sAttributeValue;
 +                double x=0.0,y=0.0,width=0.0,height=0.0;
-+                for( sal_Int32 i=0; i<nNumElems; ++i )
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +                {
 +                    sAttributeValue = xAttributes->item(i)->getNodeValue();
 +                    const sal_Int32 nAttribId( 
@@ -2919,8 +3043,8 @@
 +                  rtl::OUStringToOString(
 +                      xElem->getTagName(),
 +                      RTL_TEXTENCODING_UTF8 ).getStr());
-+        const sal_Int32 nNumElems( xAttributes->getLength() );
-+        for( sal_Int32 i=0; i<nNumElems; ++i )
++        const sal_Int32 nNumAttrs( xAttributes->getLength() );
++        for( sal_Int32 i=0; i<nNumAttrs; ++i )
 +        {
 +            OSL_TRACE(" %s=%s", 
 +                      rtl::OUStringToOString(
@@ -3171,7 +3295,7 @@
 +
 +} // namespace svgi
 --- filter/source/svg/svgreader.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/svgreader.hxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/svgreader.hxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,43 @@
 +/*************************************************************************
 + *
@@ -3217,7 +3341,7 @@
 +
 +#endif
 --- filter/source/svg/tokenmap.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/tokenmap.cxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/tokenmap.cxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,62 @@
 +/*************************************************************************
 + *
@@ -3282,7 +3406,7 @@
 +
 +} // namespace svgi
 --- filter/source/svg/tokenmap.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/tokenmap.hxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/tokenmap.hxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,32 @@
 +/*************************************************************************
 + *
@@ -3317,8 +3441,8 @@
 +
 +#endif
 --- filter/source/svg/tokens.txt	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/tokens.txt	2008-03-03 11:57:02.000000000 +0100
-@@ -0,0 +1,398 @@
++++ filter/source/svg/tokens.txt	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,405 @@
 +#######################################
 +#
 +# elements (SVG Tiny 1.2)
@@ -3717,8 +3841,15 @@
 +whitesmoke
 +yellow
 +yellowgreen
++#######################################
++#
++# Gradient units values
++#
++#######################################
++userSpaceOnUse
++objectBoundingBox
 --- filter/source/svg/units.cxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/units.cxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/units.cxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,112 @@
 +/*************************************************************************
 + *
@@ -3833,7 +3964,7 @@
 +
 +} // namespace svgi
 --- filter/source/svg/units.hxx	1970-01-01 01:00:00.000000000 +0100
-+++ filter/source/svg/units.hxx	2008-02-29 10:27:32.000000000 +0100
++++ filter/source/svg/units.hxx	2008-04-11 00:09:55.000000000 +0200
 @@ -0,0 +1,47 @@
 +/*************************************************************************
 + *

Modified: trunk/patches/src680/writerperfect-testing.diff
==============================================================================
--- trunk/patches/src680/writerperfect-testing.diff	(original)
+++ trunk/patches/src680/writerperfect-testing.diff	Fri Apr 11 13:57:45 2008
@@ -3836,6 +3836,15 @@
  		mxChildStorage(),
  		mxChildStream(),
  		mxStream(xStream),
+@@ -41,7 +41,7 @@
+ {
+ }
+ 
+-const uint8_t * WPXSvInputStream::read(size_t numBytes, size_t &numBytesRead)
++const unsigned char * WPXSvInputStream::read(size_t numBytes, size_t &numBytesRead)
+ {
+ 	numBytesRead = 0;
+ 
 @@ -52,7 +52,7 @@
  	if (numBytesRead == 0)
  		return 0;



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