You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ar...@apache.org on 2012/10/12 23:29:49 UTC

svn commit: r1397728 [7/10] - in /incubator/ooo/branches/buildsys: ./ ext_sources/ extras/l10n/source/da/ extras/l10n/source/gd/ extras/l10n/source/pl/ main/ main/basctl/source/basicide/ main/basegfx/inc/basegfx/pixel/ main/basegfx/inc/basegfx/point/ m...

Modified: incubator/ooo/branches/buildsys/main/drawinglayer/source/texture/texture.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/drawinglayer/source/texture/texture.cxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/drawinglayer/source/texture/texture.cxx (original)
+++ incubator/ooo/branches/buildsys/main/drawinglayer/source/texture/texture.cxx Fri Oct 12 21:29:36 2012
@@ -49,11 +49,6 @@ namespace drawinglayer
 			return true;
 		}
 
-		void GeoTexSvx::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& /*rMatrices*/)
-		{
-			// default implementation does nothing
-		}
-
 		void GeoTexSvx::modifyBColor(const basegfx::B2DPoint& /*rUV*/, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
 			// base implementation creates random color (for testing only, may also be pure virtual)
@@ -76,41 +71,21 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace texture
-	{
-		void GeoTexSvxGradient::impAppendMatrix(::std::vector< basegfx::B2DHomMatrix >& rMatrices, const basegfx::B2DRange& rRange)
-		{
-			basegfx::B2DHomMatrix aNew;
-			aNew.set(0, 0, rRange.getWidth());
-			aNew.set(1, 1, rRange.getHeight());
-			aNew.set(0, 2, rRange.getMinX());
-			aNew.set(1, 2, rRange.getMinY());
-			rMatrices.push_back(maGradientInfo.maTextureTransform * aNew);
-		}
-
-		void GeoTexSvxGradient::impAppendColorsRadial(::std::vector< basegfx::BColor >& rColors)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				rColors.push_back(maStart);
-
-				for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps - 1L; a++)
-				{
-					rColors.push_back(interpolate(maStart, maEnd, (double)a / (double)maGradientInfo.mnSteps));
-				}
-
-				rColors.push_back(maEnd);
-			}
-		}
-
-		GeoTexSvxGradient::GeoTexSvxGradient(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder)
-		:	maTargetRange(rTargetRange),
+    namespace texture
+    {
+		GeoTexSvxGradient::GeoTexSvxGradient(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 /* nSteps */, 
+            double fBorder)
+		:	GeoTexSvx(),
+            maGradientInfo(),
+            maTargetRange(rTargetRange),
 			maStart(rStart),
 			maEnd(rEnd),
 			mfBorder(fBorder)
 		{
-			maGradientInfo.mnSteps = nSteps;
-			maGradientInfo.mfAspectRatio = 1.0;
 		}
 
 		GeoTexSvxGradient::~GeoTexSvxGradient()
@@ -120,11 +95,10 @@ namespace drawinglayer
 		bool GeoTexSvxGradient::operator==(const GeoTexSvx& rGeoTexSvx) const
 		{
 			const GeoTexSvxGradient* pCompare = dynamic_cast< const GeoTexSvxGradient* >(&rGeoTexSvx);
-			return (pCompare
-				&& maGradientInfo.maTextureTransform == pCompare->maGradientInfo.maTextureTransform
+
+            return (pCompare
+				&& maGradientInfo == pCompare->maGradientInfo
 				&& maTargetRange == pCompare->maTargetRange
-				&& maGradientInfo.mnSteps == pCompare->maGradientInfo.mnSteps
-				&& maGradientInfo.mfAspectRatio == pCompare->maGradientInfo.mfAspectRatio
 				&& mfBorder == pCompare->mfBorder);
 		}
 	} // end of namespace texture
@@ -136,51 +110,61 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxGradientLinear::GeoTexSvxGradientLinear(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder, double fAngle)
+		GeoTexSvxGradientLinear::GeoTexSvxGradientLinear(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 nSteps, 
+            double fBorder, 
+            double fAngle)
 		:	GeoTexSvxGradient(rTargetRange, rStart, rEnd, nSteps, fBorder)
 		{
-            basegfx::tools::createLinearODFGradientInfo(maGradientInfo,
-                                                        rTargetRange,
-                                                        nSteps,
-                                                        fBorder,
-                                                        fAngle);
+            maGradientInfo = basegfx::tools::createLinearODFGradientInfo(
+                rTargetRange,
+                nSteps,
+                fBorder,
+                fAngle);
 		}
 
 		GeoTexSvxGradientLinear::~GeoTexSvxGradientLinear()
 		{
 		}
 
-		void GeoTexSvxGradientLinear::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& rMatrices)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				const double fStripeWidth(1.0 / maGradientInfo.mnSteps);
-				for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
-				{
-					const basegfx::B2DRange aRect(0.0, fStripeWidth * a, 1.0, 1.0);
-					impAppendMatrix(rMatrices, aRect);
-				}
-			}
-		}
-
-		void GeoTexSvxGradientLinear::appendColors(::std::vector< basegfx::BColor >& rColors)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				rColors.push_back(maStart);
-
-				for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
-				{
-					rColors.push_back(interpolate(maStart, maEnd, (double)a / (double)(maGradientInfo.mnSteps + 1L)));
-				}
-			}
-		}
+        void GeoTexSvxGradientLinear::appendTransformationsAndColors(
+            std::vector< B2DHomMatrixAndBColor >& rEntries, 
+            basegfx::BColor& rOutmostColor)
+        {
+            rOutmostColor = maStart;
+
+            if(maGradientInfo.getSteps())
+            {
+                const double fStripeWidth(1.0 / maGradientInfo.getSteps());
+                B2DHomMatrixAndBColor aB2DHomMatrixAndBColor;
+
+                for(sal_uInt32 a(1); a < maGradientInfo.getSteps(); a++)
+                {
+                    const double fPos(fStripeWidth * a);
+                    // optimized below...
+                    //
+                    // basegfx::B2DHomMatrix aNew;
+                    // aNew.scale(0.5, 0.5);
+                    // aNew.translate(0.5, 0.5);
+                    // aNew.scale(1.0, (1.0 - fPos));
+                    // aNew.translate(0.0, fPos);
+                    // aNew = maGradientInfo.getTextureTransform() * aNew;
+                    aB2DHomMatrixAndBColor.maB2DHomMatrix = maGradientInfo.getTextureTransform() * 
+                        basegfx::tools::createScaleTranslateB2DHomMatrix(0.5, 0.5 * (1.0 - fPos), 0.5, 0.5 * (1.0 + fPos));
+                    aB2DHomMatrixAndBColor.maBColor = interpolate(maStart, maEnd, double(a) / double(maGradientInfo.getSteps() - 1));
+                    rEntries.push_back(aB2DHomMatrixAndBColor);
+                }
+            }
+        }
 
 		void GeoTexSvxGradientLinear::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
             const double fScaler(basegfx::tools::getLinearGradientAlpha(rUV, maGradientInfo));
 
-			rBColor = (maStart * (1.0 - fScaler)) + (maEnd * fScaler);
+            rBColor = basegfx::interpolate(maStart, maEnd, fScaler);
 		}
 	} // end of namespace texture
 } // end of namespace drawinglayer
@@ -191,51 +175,59 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxGradientAxial::GeoTexSvxGradientAxial(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder, double fAngle)
+		GeoTexSvxGradientAxial::GeoTexSvxGradientAxial(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 nSteps, 
+            double fBorder, 
+            double fAngle)
 		:	GeoTexSvxGradient(rTargetRange, rStart, rEnd, nSteps, fBorder)
 		{
-            basegfx::tools::createAxialODFGradientInfo(maGradientInfo,
-                                                       rTargetRange,
-                                                       nSteps,
-                                                       fBorder,
-                                                       fAngle);
+            maGradientInfo = basegfx::tools::createAxialODFGradientInfo(
+                rTargetRange,
+                nSteps,
+                fBorder,
+                fAngle);
 		}
 
 		GeoTexSvxGradientAxial::~GeoTexSvxGradientAxial()
 		{
 		}
 
-		void GeoTexSvxGradientAxial::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& rMatrices)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				const double fStripeWidth=1.0 / (maGradientInfo.mnSteps - 1L);
-				for(sal_uInt32 a(maGradientInfo.mnSteps-1L); a != 0; a--)
-				{
-					const basegfx::B2DRange aRect(0, 0, 1.0, fStripeWidth * a);
-					impAppendMatrix(rMatrices, aRect);
-				}
-			}
-		}
-
-		void GeoTexSvxGradientAxial::appendColors(::std::vector< basegfx::BColor >& rColors)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				rColors.push_back(maEnd);
-
-				for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
-				{
-					rColors.push_back(interpolate(maEnd, maStart, (double)a / (double)maGradientInfo.mnSteps));
-				}
-			}
+        void GeoTexSvxGradientAxial::appendTransformationsAndColors(
+            std::vector< B2DHomMatrixAndBColor >& rEntries, 
+            basegfx::BColor& rOutmostColor)
+        {
+            rOutmostColor = maEnd;
+
+            if(maGradientInfo.getSteps())
+            {
+                const double fStripeWidth(1.0 / maGradientInfo.getSteps());
+                B2DHomMatrixAndBColor aB2DHomMatrixAndBColor;
+
+                for(sal_uInt32 a(1); a < maGradientInfo.getSteps(); a++)
+                {
+                    // const double fPos(fStripeWidth * a);
+                    // optimized below...
+                    //
+                    // basegfx::B2DHomMatrix aNew;
+                    // aNew.scale(0.50, (1.0 - fPos));
+                    // aNew.translate(0.5, 0.0);
+                    // aNew = maGradientInfo.getTextureTransform() * aNew;
+                    aB2DHomMatrixAndBColor.maB2DHomMatrix = maGradientInfo.getTextureTransform() * 
+                        basegfx::tools::createScaleTranslateB2DHomMatrix(0.5, 1.0 - (fStripeWidth * a), 0.5, 0.0);
+                    aB2DHomMatrixAndBColor.maBColor = interpolate(maEnd, maStart, double(a) / double(maGradientInfo.getSteps() - 1));
+                    rEntries.push_back(aB2DHomMatrixAndBColor);
+                }
+            }
 		}
 
 		void GeoTexSvxGradientAxial::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
             const double fScaler(basegfx::tools::getAxialGradientAlpha(rUV, maGradientInfo));
 
-			rBColor = (maStart * (1.0 - fScaler)) + (maEnd * fScaler);
+            rBColor = basegfx::interpolate(maStart, maEnd, fScaler);
 		}
 	} // end of namespace texture
 } // end of namespace drawinglayer
@@ -246,43 +238,53 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxGradientRadial::GeoTexSvxGradientRadial(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder, double fOffsetX, double fOffsetY)
+		GeoTexSvxGradientRadial::GeoTexSvxGradientRadial(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 nSteps, 
+            double fBorder, 
+            double fOffsetX, 
+            double fOffsetY)
 		:	GeoTexSvxGradient(rTargetRange, rStart, rEnd, nSteps, fBorder)
 		{
-            basegfx::tools::createRadialODFGradientInfo(maGradientInfo,
-                                                        rTargetRange,
-                                                        basegfx::B2DVector(fOffsetX,fOffsetY),
-                                                        nSteps,
-                                                        fBorder);
+            maGradientInfo = basegfx::tools::createRadialODFGradientInfo(
+                rTargetRange,
+                basegfx::B2DVector(fOffsetX,fOffsetY),
+                nSteps,
+                fBorder);
 		}
 
 		GeoTexSvxGradientRadial::~GeoTexSvxGradientRadial()
 		{
 		}
 
-		void GeoTexSvxGradientRadial::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& rMatrices)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				const double fStepSize=1.0 / maGradientInfo.mnSteps;
-				for(sal_uInt32 a(maGradientInfo.mnSteps-1L); a > 0; a--)
-				{
-					const basegfx::B2DRange aRect(0, 0, fStepSize*a, fStepSize*a);
-					impAppendMatrix(rMatrices, aRect);
-				}
-			}
-		}
-
-		void GeoTexSvxGradientRadial::appendColors(::std::vector< basegfx::BColor >& rColors)
-		{
-			impAppendColorsRadial(rColors);
-		}
+		void GeoTexSvxGradientRadial::appendTransformationsAndColors(
+            std::vector< B2DHomMatrixAndBColor >& rEntries, 
+            basegfx::BColor& rOutmostColor)
+		{
+            rOutmostColor = maStart;
+
+            if(maGradientInfo.getSteps())
+            {
+                const double fStepSize(1.0 / maGradientInfo.getSteps());
+                B2DHomMatrixAndBColor aB2DHomMatrixAndBColor;
+
+                for(sal_uInt32 a(1); a < maGradientInfo.getSteps(); a++)
+                {
+                    const double fSize(1.0 - (fStepSize * a));
+                    aB2DHomMatrixAndBColor.maB2DHomMatrix = maGradientInfo.getTextureTransform() * basegfx::tools::createScaleB2DHomMatrix(fSize, fSize);
+                    aB2DHomMatrixAndBColor.maBColor = interpolate(maStart, maEnd, double(a) / double(maGradientInfo.getSteps() - 1));
+                    rEntries.push_back(aB2DHomMatrixAndBColor);
+                }
+            }
+        }
 
 		void GeoTexSvxGradientRadial::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
             const double fScaler(basegfx::tools::getRadialGradientAlpha(rUV, maGradientInfo));
 
-			rBColor = (maStart * (1.0 - fScaler)) + (maEnd * fScaler);
+            rBColor = basegfx::interpolate(maStart, maEnd, fScaler);
 		}
 	} // end of namespace texture
 } // end of namespace drawinglayer
@@ -293,63 +295,73 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxGradientElliptical::GeoTexSvxGradientElliptical(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder, double fOffsetX, double fOffsetY, double fAngle)
+		GeoTexSvxGradientElliptical::GeoTexSvxGradientElliptical(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 nSteps, 
+            double fBorder, 
+            double fOffsetX, 
+            double fOffsetY, 
+            double fAngle)
 		:	GeoTexSvxGradient(rTargetRange, rStart, rEnd, nSteps, fBorder)
 		{
-            basegfx::tools::createEllipticalODFGradientInfo(maGradientInfo,
-                                                            rTargetRange,
-                                                            basegfx::B2DVector(fOffsetX,fOffsetY),
-                                                            nSteps,
-                                                            fBorder,
-                                                            fAngle);
+            maGradientInfo = basegfx::tools::createEllipticalODFGradientInfo(
+                rTargetRange,
+                basegfx::B2DVector(fOffsetX,fOffsetY),
+                nSteps,
+                fBorder,
+                fAngle);
 		}
 
 		GeoTexSvxGradientElliptical::~GeoTexSvxGradientElliptical()
 		{
 		}
 
-		void GeoTexSvxGradientElliptical::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& rMatrices)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				double fWidth(1);
-				double fHeight(1);
-				double fIncrementX, fIncrementY;
-
-				if(maGradientInfo.mfAspectRatio > 1.0)
-				{
-					fIncrementY = fHeight / maGradientInfo.mnSteps;
-					fIncrementX = fIncrementY / maGradientInfo.mfAspectRatio;
-				}
-				else
-				{
-					fIncrementX = fWidth / maGradientInfo.mnSteps;
-					fIncrementY = fIncrementX * maGradientInfo.mfAspectRatio;
-				}
-
-				for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
-				{
-					// next step
-					fWidth  -= fIncrementX;
-					fHeight -= fIncrementY;
-
-					// create matrix
-					const basegfx::B2DRange aRect(0, 0, fWidth, fHeight);
-					impAppendMatrix(rMatrices, aRect);
-				}
-			}
-		}
-
-		void GeoTexSvxGradientElliptical::appendColors(::std::vector< basegfx::BColor >& rColors)
-		{
-			impAppendColorsRadial(rColors);
+		void GeoTexSvxGradientElliptical::appendTransformationsAndColors(
+            std::vector< B2DHomMatrixAndBColor >& rEntries, 
+            basegfx::BColor& rOutmostColor)
+		{
+            rOutmostColor = maStart;
+
+            if(maGradientInfo.getSteps())
+            {
+                double fWidth(1.0);
+                double fHeight(1.0);
+                double fIncrementX(0.0);
+                double fIncrementY(0.0);
+
+                if(maGradientInfo.getAspectRatio() > 1.0)
+                {
+                    fIncrementY = fHeight / maGradientInfo.getSteps();
+                    fIncrementX = fIncrementY / maGradientInfo.getAspectRatio();
+                }
+                else
+                {
+                    fIncrementX = fWidth / maGradientInfo.getSteps();
+                    fIncrementY = fIncrementX * maGradientInfo.getAspectRatio();
+                }
+
+                B2DHomMatrixAndBColor aB2DHomMatrixAndBColor;
+
+                for(sal_uInt32 a(1); a < maGradientInfo.getSteps(); a++)
+                {
+                    // next step
+                    fWidth -= fIncrementX;
+                    fHeight -= fIncrementY;
+
+                    aB2DHomMatrixAndBColor.maB2DHomMatrix = maGradientInfo.getTextureTransform() * basegfx::tools::createScaleB2DHomMatrix(fWidth, fHeight);
+                    aB2DHomMatrixAndBColor.maBColor = interpolate(maStart, maEnd, double(a) / double(maGradientInfo.getSteps() - 1));
+                    rEntries.push_back(aB2DHomMatrixAndBColor);
+                }
+            }
 		}
 
 		void GeoTexSvxGradientElliptical::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
             const double fScaler(basegfx::tools::getEllipticalGradientAlpha(rUV, maGradientInfo));
 
-			rBColor = (maStart * (1.0 - fScaler)) + (maEnd * fScaler);
+            rBColor = basegfx::interpolate(maStart, maEnd, fScaler);
 		}
 	} // end of namespace texture
 } // end of namespace drawinglayer
@@ -360,44 +372,55 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxGradientSquare::GeoTexSvxGradientSquare(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder, double fOffsetX, double fOffsetY, double fAngle)
+		GeoTexSvxGradientSquare::GeoTexSvxGradientSquare(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 nSteps, 
+            double fBorder, 
+            double fOffsetX, 
+            double fOffsetY, 
+            double fAngle)
 		:	GeoTexSvxGradient(rTargetRange, rStart, rEnd, nSteps, fBorder)
 		{
-            basegfx::tools::createSquareODFGradientInfo(maGradientInfo,
-                                                        rTargetRange,
-                                                        basegfx::B2DVector(fOffsetX,fOffsetY),
-                                                        nSteps,
-                                                        fBorder,
-                                                        fAngle);
+            maGradientInfo = basegfx::tools::createSquareODFGradientInfo(
+                rTargetRange,
+                basegfx::B2DVector(fOffsetX,fOffsetY),
+                nSteps,
+                fBorder,
+                fAngle);
 		}
 
 		GeoTexSvxGradientSquare::~GeoTexSvxGradientSquare()
 		{
 		}
 
-		void GeoTexSvxGradientSquare::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& rMatrices)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				const double fStepSize=1.0 / maGradientInfo.mnSteps;
-				for(sal_uInt32 a(maGradientInfo.mnSteps-1L); a > 0; a--)
-				{
-					const basegfx::B2DRange aRect(0, 0, fStepSize*a, fStepSize*a);
-					impAppendMatrix(rMatrices, aRect);
-				}
-			}
-		}
-
-		void GeoTexSvxGradientSquare::appendColors(::std::vector< basegfx::BColor >& rColors)
-		{
-			impAppendColorsRadial(rColors);
+		void GeoTexSvxGradientSquare::appendTransformationsAndColors(
+            std::vector< B2DHomMatrixAndBColor >& rEntries, 
+            basegfx::BColor& rOutmostColor)
+		{
+            rOutmostColor = maStart;
+
+            if(maGradientInfo.getSteps())
+            {
+                const double fStepSize(1.0 / maGradientInfo.getSteps());
+                B2DHomMatrixAndBColor aB2DHomMatrixAndBColor;
+
+                for(sal_uInt32 a(1); a < maGradientInfo.getSteps(); a++)
+                {
+                    const double fSize(1.0 - (fStepSize * a));
+                    aB2DHomMatrixAndBColor.maB2DHomMatrix = maGradientInfo.getTextureTransform() * basegfx::tools::createScaleB2DHomMatrix(fSize, fSize);
+                    aB2DHomMatrixAndBColor.maBColor = interpolate(maStart, maEnd, double(a) / double(maGradientInfo.getSteps() - 1));
+                    rEntries.push_back(aB2DHomMatrixAndBColor);
+                }
+            }
 		}
 
 		void GeoTexSvxGradientSquare::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
             const double fScaler(basegfx::tools::getSquareGradientAlpha(rUV, maGradientInfo));
 
-			rBColor = (maStart * (1.0 - fScaler)) + (maEnd * fScaler);
+            rBColor = basegfx::interpolate(maStart, maEnd, fScaler);
 		}
 	} // end of namespace texture
 } // end of namespace drawinglayer
@@ -408,63 +431,73 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxGradientRect::GeoTexSvxGradientRect(const basegfx::B2DRange& rTargetRange, const basegfx::BColor& rStart, const basegfx::BColor& rEnd, sal_uInt32 nSteps, double fBorder, double fOffsetX, double fOffsetY, double fAngle)
+		GeoTexSvxGradientRect::GeoTexSvxGradientRect(
+            const basegfx::B2DRange& rTargetRange, 
+            const basegfx::BColor& rStart, 
+            const basegfx::BColor& rEnd, 
+            sal_uInt32 nSteps, 
+            double fBorder, 
+            double fOffsetX, 
+            double fOffsetY, 
+            double fAngle)
 		:	GeoTexSvxGradient(rTargetRange, rStart, rEnd, nSteps, fBorder)
 		{
-            basegfx::tools::createRectangularODFGradientInfo(maGradientInfo,
-                                                             rTargetRange,
-                                                             basegfx::B2DVector(fOffsetX,fOffsetY),
-                                                             nSteps,
-                                                             fBorder,
-                                                             fAngle);
+            maGradientInfo = basegfx::tools::createRectangularODFGradientInfo(
+                rTargetRange,
+                basegfx::B2DVector(fOffsetX,fOffsetY),
+                nSteps,
+                fBorder,
+                fAngle);
 		}
 
 		GeoTexSvxGradientRect::~GeoTexSvxGradientRect()
 		{
 		}
 
-		void GeoTexSvxGradientRect::appendTransformations(::std::vector< basegfx::B2DHomMatrix >& rMatrices)
-		{
-			if(maGradientInfo.mnSteps)
-			{
-				double fWidth(1);
-				double fHeight(1);
-				double fIncrementX, fIncrementY;
-
-				if(maGradientInfo.mfAspectRatio > 1.0)
-				{
-					fIncrementY = fHeight / maGradientInfo.mnSteps;
-					fIncrementX = fIncrementY / maGradientInfo.mfAspectRatio;
-				}
-				else
-				{
-					fIncrementX = fWidth / maGradientInfo.mnSteps;
-					fIncrementY = fIncrementX * maGradientInfo.mfAspectRatio;
-				}
-
-				for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
-				{
-					// next step
-					fWidth  -= fIncrementX;
-					fHeight -= fIncrementY;
-
-					// create matrix
-					const basegfx::B2DRange aRect(0, 0, fWidth, fHeight);
-					impAppendMatrix(rMatrices, aRect);
-				}
-			}
-		}
-
-		void GeoTexSvxGradientRect::appendColors(::std::vector< basegfx::BColor >& rColors)
-		{
-			impAppendColorsRadial(rColors);
+		void GeoTexSvxGradientRect::appendTransformationsAndColors(
+            std::vector< B2DHomMatrixAndBColor >& rEntries, 
+            basegfx::BColor& rOutmostColor)
+		{
+            rOutmostColor = maStart;
+
+            if(maGradientInfo.getSteps())
+            {
+                double fWidth(1.0);
+                double fHeight(1.0);
+                double fIncrementX(0.0);
+                double fIncrementY(0.0);
+
+                if(maGradientInfo.getAspectRatio() > 1.0)
+                {
+                    fIncrementY = fHeight / maGradientInfo.getSteps();
+                    fIncrementX = fIncrementY / maGradientInfo.getAspectRatio();
+                }
+                else
+                {
+                    fIncrementX = fWidth / maGradientInfo.getSteps();
+                    fIncrementY = fIncrementX * maGradientInfo.getAspectRatio();
+                }
+
+                B2DHomMatrixAndBColor aB2DHomMatrixAndBColor;
+
+                for(sal_uInt32 a(1); a < maGradientInfo.getSteps(); a++)
+                {
+                    // next step
+                    fWidth -= fIncrementX;
+                    fHeight -= fIncrementY;
+
+                    aB2DHomMatrixAndBColor.maB2DHomMatrix = maGradientInfo.getTextureTransform() * basegfx::tools::createScaleB2DHomMatrix(fWidth, fHeight);
+                    aB2DHomMatrixAndBColor.maBColor = interpolate(maStart, maEnd, double(a) / double(maGradientInfo.getSteps() - 1));
+                    rEntries.push_back(aB2DHomMatrixAndBColor);
+                }
+            }
 		}
 
 		void GeoTexSvxGradientRect::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& /*rfOpacity*/) const
 		{
             const double fScaler(basegfx::tools::getRectangularGradientAlpha(rUV, maGradientInfo));
 
-			rBColor = (maStart * (1.0 - fScaler)) + (maEnd * fScaler);
+            rBColor = basegfx::interpolate(maStart, maEnd, fScaler);
 		}
 	} // end of namespace texture
 } // end of namespace drawinglayer
@@ -475,7 +508,10 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxHatch::GeoTexSvxHatch(const basegfx::B2DRange& rTargetRange, double fDistance, double fAngle)
+		GeoTexSvxHatch::GeoTexSvxHatch(
+            const basegfx::B2DRange& rTargetRange, 
+            double fDistance, 
+            double fAngle)
 		:	mfDistance(0.1),
 			mfAngle(fAngle),
 			mnSteps(10L)
@@ -520,10 +556,6 @@ namespace drawinglayer
 			const double fSteps((0.0 != fDistance) ? fTargetSizeY / fDistance : 10.0);
 			mnSteps = basegfx::fround(fSteps + 0.5);
 			mfDistance = 1.0 / fSteps;
-
-			// build transform from u,v to [0.0 .. 1.0]. As base, use inverse texture transform
-			maBackTextureTransform = maTextureTransform;
-			maBackTextureTransform.invert();
 		}
 
 		GeoTexSvxHatch::~GeoTexSvxHatch()
@@ -554,9 +586,20 @@ namespace drawinglayer
 
 		double GeoTexSvxHatch::getDistanceToHatch(const basegfx::B2DPoint& rUV) const
 		{
-			const basegfx::B2DPoint aCoor(maBackTextureTransform * rUV);
+			const basegfx::B2DPoint aCoor(getBackTextureTransform() * rUV);
 			return fmod(aCoor.getY(), mfDistance);
 		}
+
+        const basegfx::B2DHomMatrix& GeoTexSvxHatch::getBackTextureTransform() const
+        {
+            if(maBackTextureTransform.isIdentity())
+            {
+                const_cast< GeoTexSvxHatch* >(this)->maBackTextureTransform = maTextureTransform;
+                const_cast< GeoTexSvxHatch* >(this)->maBackTextureTransform.invert();
+            }
+
+            return maBackTextureTransform;
+        }
 	} // end of namespace texture
 } // end of namespace drawinglayer
 
@@ -566,7 +609,9 @@ namespace drawinglayer
 {
 	namespace texture
 	{
-		GeoTexSvxTiled::GeoTexSvxTiled(const basegfx::B2DPoint& rTopLeft, const basegfx::B2DVector& rSize)
+		GeoTexSvxTiled::GeoTexSvxTiled(
+            const basegfx::B2DPoint& rTopLeft, 
+            const basegfx::B2DVector& rSize)
 		:	maTopLeft(rTopLeft),
 			maSize(rSize)
 		{

Modified: incubator/ooo/branches/buildsys/main/editeng/source/editeng/impedit.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/editeng/source/editeng/impedit.cxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/editeng/source/editeng/impedit.cxx (original)
+++ incubator/ooo/branches/buildsys/main/editeng/source/editeng/impedit.cxx Fri Oct 12 21:29:36 2012
@@ -49,7 +49,6 @@
 #include <sot/exchange.hxx>
 #include <sot/formats.hxx>
 
-
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::linguistic2;
@@ -449,67 +448,54 @@ void ImpEditView::SetOutputArea( const R
 
 void ImpEditView::ResetOutputArea( const Rectangle& rRec )
 {
-	Rectangle aCurArea( aOutArea );
-	SetOutputArea( rRec );
-	// Umliegende Bereiche invalidieren, wenn UpdateMode der Engine auf sal_True
-	if ( !aCurArea.IsEmpty() && pEditEngine->pImpEditEngine->GetUpdateMode() )
-	{
-		long nMore = 0;
-		if ( DoInvalidateMore() )
-			nMore = GetWindow()->PixelToLogic( Size( nInvMore, 0 ) ).Width();
-		if ( aCurArea.Left() < aOutArea.Left() )
-		{
-			Rectangle aRect( aCurArea.TopLeft(),
-				Size( aOutArea.Left()-aCurArea.Left(), aCurArea.GetHeight() ) );
-			if ( nMore )
-			{
-				aRect.Left() -= nMore;
-				aRect.Top() -= nMore;
-				aRect.Bottom() += nMore;
-			}
-			GetWindow()->Invalidate( aRect );
-		}
-		if ( aCurArea.Right() > aOutArea.Right() )
-		{
-			long nW = aCurArea.Right() - aOutArea.Right();
-			Point aPos( aCurArea.TopRight() );
-			aPos.X() -= nW;
-			Rectangle aRect( aPos, Size( nW, aCurArea.GetHeight() ) );
-			if ( nMore )
-			{
-				aRect.Right() += nMore;
-				aRect.Top() -= nMore;
-				aRect.Bottom() += nMore;
-			}
-			GetWindow()->Invalidate( aRect );
-		}
-		if ( aCurArea.Top() < aOutArea.Top() )
-		{
-			Rectangle aRect( aCurArea.TopLeft(), Size( aCurArea.GetWidth(), aOutArea.Top() - aCurArea.Top() ) );
-			if ( nMore )
-			{
-				aRect.Top() -= nMore;
-				aRect.Left() -= nMore;
-				aRect.Right() += nMore;
-			}
-			GetWindow()->Invalidate( aRect );
-		}
-		if ( aCurArea.Bottom() > aOutArea.Bottom() )
-		{
-			long nH = aCurArea.Bottom() - aOutArea.Bottom();
-			Point aPos( aCurArea.BottomLeft() );
-			aPos.Y() -= nH;
-			Rectangle aRect( aPos, Size( aCurArea.GetWidth(), nH ) );
-			if ( nMore )
-			{
-				aRect.Bottom() += nMore;
-				aRect.Left() -= nMore;
-				aRect.Right() += nMore;
-			}
+    // remember old out area
+    const Rectangle aOldArea(aOutArea);
 
-			GetWindow()->Invalidate( aRect );
-		}
-	}
+    // apply new one
+    SetOutputArea(rRec);
+
+    // invalidate surrounding areas if update is true
+    if(!aOldArea.IsEmpty() && pEditEngine->pImpEditEngine->GetUpdateMode())
+    {
+        // #119885# use grown area if needed; do when getting bigger OR smaller
+        const sal_Int32 nMore(DoInvalidateMore() ? GetWindow()->PixelToLogic(Size(nInvMore, 0)).Width() : 0);
+
+        if(aOldArea.Left() > aOutArea.Left())
+        {
+            GetWindow()->Invalidate(Rectangle(aOutArea.Left() - nMore, aOldArea.Top() - nMore, aOldArea.Left(), aOldArea.Bottom() + nMore));
+        }
+        else if(aOldArea.Left() < aOutArea.Left())
+        {
+            GetWindow()->Invalidate(Rectangle(aOldArea.Left() - nMore, aOldArea.Top() - nMore, aOutArea.Left(), aOldArea.Bottom() + nMore));
+        }
+
+        if(aOldArea.Right() > aOutArea.Right())
+        {
+            GetWindow()->Invalidate(Rectangle(aOutArea.Right(), aOldArea.Top() - nMore, aOldArea.Right() + nMore, aOldArea.Bottom() + nMore));
+        }
+        else if(aOldArea.Right() < aOutArea.Right())
+        {
+            GetWindow()->Invalidate(Rectangle(aOldArea.Right(), aOldArea.Top() - nMore, aOutArea.Right() + nMore, aOldArea.Bottom() + nMore));
+        }
+
+        if(aOldArea.Top() > aOutArea.Top())
+        {
+            GetWindow()->Invalidate(Rectangle(aOldArea.Left() - nMore, aOutArea.Top() - nMore, aOldArea.Right() + nMore, aOldArea.Top()));
+        }
+        else if(aOldArea.Top() < aOutArea.Top())
+        {
+            GetWindow()->Invalidate(Rectangle(aOldArea.Left() - nMore, aOldArea.Top() - nMore, aOldArea.Right() + nMore, aOutArea.Top()));
+        }
+
+        if(aOldArea.Bottom() > aOutArea.Bottom())
+        {
+            GetWindow()->Invalidate(Rectangle(aOldArea.Left() - nMore, aOutArea.Bottom(), aOldArea.Right() + nMore, aOldArea.Bottom() + nMore));
+        }
+        else if(aOldArea.Bottom() < aOutArea.Bottom())
+        {
+            GetWindow()->Invalidate(Rectangle(aOldArea.Left() - nMore, aOldArea.Bottom(), aOldArea.Right() + nMore, aOutArea.Bottom() + nMore));
+        }
+    }
 }
 
 void ImpEditView::RecalcOutputArea()

Modified: incubator/ooo/branches/buildsys/main/expat/expat-winapi.patch
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/expat/expat-winapi.patch?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/expat/expat-winapi.patch (original)
+++ incubator/ooo/branches/buildsys/main/expat/expat-winapi.patch Fri Oct 12 21:29:36 2012
@@ -1,5 +1,5 @@
---- misc/expat-2.0.1/lib/expat_external.h	2009-11-16 08:53:17.375000000 +0000
-+++ misc/build/expat-2.0.1/lib/expat_external.h	2009-11-16 08:53:34.703125000 +0000
+--- misc/expat-2.1.0/lib/expat_external.h	2009-11-16 08:53:17.375000000 +0000
++++ misc/build/expat-2.1.0/lib/expat_external.h	2009-11-16 08:53:34.703125000 +0000
 @@ -7,10 +7,6 @@
  
  /* External API definitions */

Modified: incubator/ooo/branches/buildsys/main/expat/makefile.mk
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/expat/makefile.mk?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/expat/makefile.mk (original)
+++ incubator/ooo/branches/buildsys/main/expat/makefile.mk Fri Oct 12 21:29:36 2012
@@ -38,10 +38,10 @@ all:
 
 # --- Files --------------------------------------------------------
 
-TARFILE_NAME=expat-2.0.1
-TARFILE_MD5=ee8b492592568805593f81f8cdf2a04c
+TARFILE_NAME=expat-2.1.0
+TARFILE_MD5=dd7dab7a5fea97d2a6a43f511449b7cd 
 ADDITIONAL_FILES=lib$/makefile.mk
-PATCH_FILES=expat-2.0.1.patch \
+PATCH_FILES=$(TARFILE_NAME).patch \
             expat-winapi.patch
 
 CONFIGURE_DIR=

Modified: incubator/ooo/branches/buildsys/main/expat/prj/d.lst
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/expat/prj/d.lst?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/expat/prj/d.lst (original)
+++ incubator/ooo/branches/buildsys/main/expat/prj/d.lst Fri Oct 12 21:29:36 2012
@@ -1,7 +1,7 @@
 mkdir: %_DEST%\inc%_EXT%\external\expat
 mkdir: %_DEST%\lib%_EXT%\x64
-..\%__SRC%\misc\build\expat-2.0.1\lib\expat.h %_DEST%\inc%_EXT%\external\expat.h
-..\%__SRC%\misc\build\expat-2.0.1\lib\expat_external.h %_DEST%\inc%_EXT%\external\expat_external.h
+..\%__SRC%\misc\build\expat-2.1.0\lib\expat.h %_DEST%\inc%_EXT%\external\expat.h
+..\%__SRC%\misc\build\expat-2.1.0\lib\expat_external.h %_DEST%\inc%_EXT%\external\expat_external.h
 ..\%__SRC%\slb\expat_xmltok.lib %_DEST%\lib%_EXT%\expat_xmltok.lib
 ..\%__SRC%\slb\expat_xmlparse.lib %_DEST%\lib%_EXT%\expat_xmlparse.lib
 ..\%__SRC%\slb\ascii_expat_xmlparse.lib %_DEST%\lib%_EXT%\ascii_expat_xmlparse.lib

Modified: incubator/ooo/branches/buildsys/main/external_deps.lst
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/external_deps.lst?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/external_deps.lst (original)
+++ incubator/ooo/branches/buildsys/main/external_deps.lst Fri Oct 12 21:29:36 2012
@@ -235,18 +235,18 @@ if (SYSTEM_VIGRA != YES)
     URL1 = http://hci.iwr.uni-heidelberg.de/vigra/vigra1.6.0.tar.gz
     URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
 
+if (SYSTEM_EXPAT != YES)
+    MD5 = dd7dab7a5fea97d2a6a43f511449b7cd
+    name = expat-2.1.0.tar.gz
+    URL1 = http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download
+    URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
+
 if (SYSTEM_CURL != YES)
     MD5 = ecb2e37e45c9933e2a963cabe03670ab
     name = curl-7.19.7.tar.gz
     URL1 = http://curl.haxx.se/download/curl-7.19.7.tar.gz
     URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
 
-if (SYSTEM_EXPAT != YES)
-    MD5 = ee8b492592568805593f81f8cdf2a04c
-    name = expat-2.0.1.tar.gz
-    URL1 = http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
-    URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
-
 if (WITH_CATA_FONTS == YES)
     MD5 = f872f4ac066433d8ff92f5e316b36ff9
     name = dejavu-fonts-ttf-2.33.zip

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/10grey.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/10grey.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/1simple.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/1simple.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/2elegant.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/2elegant.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/3modern.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/3modern.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/4classic.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/4classic.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/5blue.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/5blue.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/6orange.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/6orange.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/8green.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/8green.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/9colorful.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/9colorful.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-10grey.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-10grey.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-1simple.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-1simple.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-2elegant.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-2elegant.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-3modern.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-3modern.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-5blue.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-5blue.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-6orange.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-6orange.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-7red.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-7red.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-8green.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-8green.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-9colorful.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/agenda/lang/ko/aw-9colorful.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-classic-pri_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-classic-pri_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-classic_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-classic_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-modern-pri_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-modern-pri_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-modern_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/bus-modern_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-bottle_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-bottle_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-fax_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-fax_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-lines_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-lines_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-marine_f.ott
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/extras/source/templates/wizard/fax/lang/ko/pri-marine_f.ott?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/ooo/branches/buildsys/main/filter/source/msfilter/escherex.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/filter/source/msfilter/escherex.cxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/filter/source/msfilter/escherex.cxx (original)
+++ incubator/ooo/branches/buildsys/main/filter/source/msfilter/escherex.cxx Fri Oct 12 21:29:36 2012
@@ -1181,11 +1181,6 @@ void EscherPropertyContainer::ImplCreate
 	::com::sun::star::drawing::ColorMode eColorMode( ::com::sun::star::drawing::ColorMode_STANDARD );
 	sal_Int16 nLuminance = 0;
 	sal_Int32 nContrast = 0;
-	sal_Int16 nRed = 0;
-	sal_Int16 nGreen = 0;
-	sal_Int16 nBlue = 0;
-	double fGamma = 1.0;
-	sal_Int16 nTransparency = 0;
 
 	if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "GraphicColorMode" ) ) ) )
 		aAny >>= eColorMode;
@@ -1197,16 +1192,6 @@ void EscherPropertyContainer::ImplCreate
 		aAny >>= nC;
 		nContrast = nC;
 	}
-	if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "AdjustRed" ) ) ) )
-		aAny >>= nRed;
-	if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "AdjustGreen" ) ) ) )
-		aAny >>= nGreen;
-	if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "AdjustBlue" ) ) ) )
-		aAny >>= nBlue;
-	if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Gamma" ) ) ) )
-		aAny >>= fGamma;
-	if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Transparency" ) ) ) )
-		aAny >>= nTransparency;
 
 	if ( eColorMode == ::com::sun::star::drawing::ColorMode_WATERMARK )
 	{
@@ -1431,26 +1416,30 @@ sal_Bool EscherPropertyContainer::Create
 
 namespace {
 
-GraphicObject lclDrawHatch( const ::com::sun::star::drawing::Hatch& rHatch, const Color& rBackColor, bool bFillBackground )
+GraphicObject lclDrawHatch( const ::com::sun::star::drawing::Hatch& rHatch, const Color& rBackColor, bool bFillBackground, const Rectangle& rRect )
 {
-    const MapMode aMap100( MAP_100TH_MM );
-    VirtualDevice aVDev( *Application::GetDefaultDevice(), 0, 1 );
-    aVDev.SetMapMode( aMap100 );
+    // #121183# For hatch, do no longer create a bitmap with the fixed size of 28x28 pixels. Also
+    // do not create a bitmap in page size, that would explode file sizes (and have no good quality).
+    // Better use a MetaFile graphic in page size; thus we have good quality due to vector format and
+    // no bit file sizes.
+    VirtualDevice aOut;
+    GDIMetaFile aMtf;
+
+    aOut.SetOutputSizePixel(Size(2, 2));
+    aOut.EnableOutput(false);
+    aOut.SetMapMode(MapMode(MAP_100TH_MM));
+    aMtf.Clear();
+    aMtf.Record(&aOut);
+    aOut.SetLineColor();
+    aOut.SetFillColor(bFillBackground ? rBackColor : Color(COL_TRANSPARENT));
+    aOut.DrawRect(rRect);
+    aOut.DrawHatch(PolyPolygon(rRect), Hatch((HatchStyle)rHatch.Style, Color(rHatch.Color), rHatch.Distance, (sal_uInt16)rHatch.Angle));
+    aMtf.Stop();
+    aMtf.WindStart();
+    aMtf.SetPrefMapMode(MapMode(MAP_100TH_MM));
+    aMtf.SetPrefSize(rRect.GetSize());
 
-    const Size aOutSize = aVDev.PixelToLogic( Size( 28, 28 ) );
-    aVDev.SetOutputSize( aOutSize );
-
-    Rectangle aRectangle( Point( 0, 0 ), aOutSize );
-    const PolyPolygon aPolyPoly( aRectangle );
-
-    aVDev.SetLineColor();
-    aVDev.SetFillColor( bFillBackground ? rBackColor : Color( COL_TRANSPARENT ) );
-    aVDev.DrawRect( Rectangle( Point(), aOutSize ) );
-
-    Hatch aVclHatch( (HatchStyle) rHatch.Style, Color( rHatch.Color ), rHatch.Distance, (sal_uInt16)rHatch.Angle );
-    aVDev.DrawHatch( aPolyPoly, aVclHatch );
-
-    return GraphicObject( Graphic( aVDev.GetBitmapEx( Point(), aOutSize ) ) );
+    return GraphicObject(Graphic(aMtf));
 }
 
 } // namespace
@@ -1458,7 +1447,8 @@ GraphicObject lclDrawHatch( const ::com:
 
 sal_Bool EscherPropertyContainer::CreateEmbeddedHatchProperties( const ::com::sun::star::drawing::Hatch& rHatch, const Color& rBackColor, bool bFillBackground )
 {
-    GraphicObject aGraphicObject = lclDrawHatch( rHatch, rBackColor, bFillBackground );
+    const Rectangle aRect(pShapeBoundRect ? *pShapeBoundRect : Rectangle(Point(0,0), Size(28000, 21000)));
+    GraphicObject aGraphicObject = lclDrawHatch( rHatch, rBackColor, bFillBackground, aRect );
     ByteString aUniqueId = aGraphicObject.GetUniqueID();
     sal_Bool bRetValue = ImplCreateEmbeddedBmp( aUniqueId );
     if ( bRetValue )
@@ -1483,6 +1473,12 @@ sal_Bool EscherPropertyContainer::Create
     String          aGraphicUrl;
     ByteString      aUniqueId;
     bool            bIsGraphicMtf(false);
+    // #121074#
+    sal_Int16 nTransparency(0); 
+    sal_Int16 nRed(0);
+    sal_Int16 nGreen(0);
+    sal_Int16 nBlue(0);
+    double fGamma(1.0);
 
     ::com::sun::star::drawing::BitmapMode   eBitmapMode( ::com::sun::star::drawing::BitmapMode_NO_REPEAT );
     ::com::sun::star::uno::Any aAny;
@@ -1553,7 +1549,9 @@ sal_Bool EscherPropertyContainer::Create
                 {
                     aAny >>= bFillBackground;
                 }
-                aGraphicObject = lclDrawHatch( aHatch, aBackColor, bFillBackground );
+
+                const Rectangle aRect(Point(0, 0), pShapeBoundRect ? pShapeBoundRect->GetSize() : Size(28000, 21000));
+                aGraphicObject = lclDrawHatch( aHatch, aBackColor, bFillBackground, aRect );
                 aUniqueId = aGraphicObject.GetUniqueID();
                 eBitmapMode = ::com::sun::star::drawing::BitmapMode_REPEAT;
                 bIsGraphicMtf = aGraphicObject.GetType() == GRAPHIC_GDIMETAFILE;
@@ -1563,6 +1561,33 @@ sal_Bool EscherPropertyContainer::Create
         if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsMirrored" ) ), sal_True ) )
             aAny >>= bMirrored;
 
+        // #121074# transparency of graphic is not supported in MS formats, get and apply it
+        // in the GetTransformedGraphic call in GetBlibID
+        if(EscherPropertyValueHelper::GetPropertyValue(aAny, rXPropSet, String(RTL_CONSTASCII_USTRINGPARAM("Transparency"))))
+        {
+            aAny >>= nTransparency;
+        }
+
+        if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "AdjustRed" ) ) ) )
+        {
+            aAny >>= nRed;
+        }
+
+        if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "AdjustGreen" ) ) ) )
+        {
+            aAny >>= nGreen;
+        }
+
+        if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "AdjustBlue" ) ) ) )
+        {
+            aAny >>= nBlue;
+        }
+
+        if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Gamma" ) ) ) )
+        {
+            aAny >>= fGamma;
+        }
+
         if ( bCreateFillBitmap && bFillBitmapModeAllowed )
         {
             if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapMode" ) ), sal_True ) )
@@ -1600,7 +1625,7 @@ sal_Bool EscherPropertyContainer::Create
                 const sal_uInt16 nFormat = aDescriptor.GetFileFormat();
 
                 // can MSO handle it?
-                if ( bMirrored || nAngle ||
+                if ( bMirrored || nAngle || nTransparency || nRed || nGreen || nBlue || (1.0 != fGamma) ||
                      (nFormat != GFF_BMP &&
                       nFormat != GFF_GIF &&
                       nFormat != GFF_JPG &&
@@ -1647,13 +1672,45 @@ sal_Bool EscherPropertyContainer::Create
 
         if ( aGraphicUrl.Len() || aUniqueId.Len() )
         {
-            if ( bMirrored || nAngle )
+            if(bMirrored || nTransparency || nRed || nGreen || nBlue || (1.0 != fGamma))
             {
                 pGraphicAttr = new GraphicAttr;
-                if ( bMirrored )
-                    pGraphicAttr->SetMirrorFlags( BMP_MIRROR_HORZ );
-                if ( bIsGraphicMtf )
-                    AddOpt( ESCHER_Prop_Rotation, ( ( ((sal_Int32)nAngle << 16 ) / 10 ) + 0x8000 ) &~ 0xffff );
+
+                if(bMirrored)
+                {
+                    pGraphicAttr->SetMirrorFlags(BMP_MIRROR_HORZ);
+                }
+
+                // #121074#
+                if(nTransparency) 
+                {
+                    pGraphicAttr->SetTransparency((nTransparency * 255) / 100);
+                }
+
+                if(nRed)
+                {
+                    pGraphicAttr->SetChannelR(nRed);
+                }
+
+                if(nGreen)
+                {
+                    pGraphicAttr->SetChannelG(nGreen);
+                }
+
+                if(nBlue)
+                {
+                    pGraphicAttr->SetChannelB(nBlue);
+                }
+
+                if(1.0 != fGamma)
+                {
+                    pGraphicAttr->SetGamma(fGamma);
+                }
+            }
+
+            if(nAngle && bIsGraphicMtf)
+            {
+                AddOpt( ESCHER_Prop_Rotation, ( ( ((sal_Int32)nAngle << 16 ) / 10 ) + 0x8000 ) &~ 0xffff );
             }
 
             if ( eBitmapMode == ::com::sun::star::drawing::BitmapMode_REPEAT )
@@ -1703,18 +1760,20 @@ sal_Bool EscherPropertyContainer::Create
                 if ( pGraphicProvider && pPicOutStrm && pShapeBoundRect )
                 {
                     Rectangle aRect( Point( 0, 0 ), pShapeBoundRect->GetSize() );
-
-                    sal_uInt32 nBlibId = 0;
-                    nBlibId = pGraphicProvider->GetBlibID( *pPicOutStrm, aUniqueId, aRect, NULL, pGraphicAttr );
-                    if ( nBlibId )
+                    const sal_uInt32 nBlibId(pGraphicProvider->GetBlibID(*pPicOutStrm, aUniqueId, aRect, NULL, pGraphicAttr));
+                    
+                    if(nBlibId)
                     {
-                        if ( bCreateFillBitmap )
-                            AddOpt( ESCHER_Prop_fillBlip, nBlibId, sal_True );
+                        if(bCreateFillBitmap)
+                        {                            
+                            AddOpt(ESCHER_Prop_fillBlip, nBlibId, sal_True);
+                        }
                         else
                         {
                             AddOpt( ESCHER_Prop_pib, nBlibId, sal_True );
                             ImplCreateGraphicAttributes( rXPropSet, nBlibId, bCreateCroppingAttributes );
                         }
+
                         bRetValue = sal_True;
                     }
                 }
@@ -2051,6 +2110,156 @@ sal_Bool EscherPropertyContainer::Create
 	return bRetValue;
 }
 
+
+/*
+in MS,the connector including 9 types :
+"straightConnector1",
+"bentConnector2","bentConnector3","bentConnector4","bentConnector5"
+"curvedConnector2","curvedConnector3","curvedConnector4","curvedConnector5"
+in AOO,including 4 types:"standard","lines","line","curve"
+when save as MS file, the connector must be convert to corresponding type.
+"line" and "lines" <-> "straightConnector1"
+"standard" <->  "bentConnector2-5"
+"curve" <-> "curvedConnector2-5"
+*/
+sal_Int32 lcl_GetAdjustValueCount( const XPolygon& rPoly ) 
+{
+	int nRet = 0;
+	switch (  rPoly.GetSize() )
+	{
+	case 2 :
+	case 3:
+		nRet =  0;
+		break;
+	case 4:
+		nRet = 1;
+		break;
+	case 5:
+		nRet = 2;
+		break;
+	default:
+		if ( rPoly.GetSize()>=6 )
+			nRet = 3;
+		break;
+	}
+	return nRet;
+}
+/*
+ Adjust value decide the position which connector should turn a corner
+*/
+sal_Int32 lcl_GetConnectorAdjustValue ( const XPolygon& rPoly, sal_uInt16 nIndex )
+{
+	sal_uInt16 k =  rPoly.GetSize();
+	OSL_ASSERT ( k >= ( 3 + nIndex ) );
+
+	Point aPt;
+	Point aStart = rPoly[0];
+	Point aEnd = rPoly[k-1];
+	if ( aEnd.Y() == aStart.Y() ) 
+		aEnd.Y() = aStart.Y() +4;
+	if ( aEnd.X() == aStart.X() )
+		aEnd.X() = aStart.X() +4;
+
+	sal_Bool bVertical = ( rPoly[1].X()-aStart.X() ) == 0 ;
+	//vertical and horizon alternate  
+	if ( nIndex%2 == 1 ) bVertical = !bVertical;
+	aPt = rPoly[ nIndex + 1];
+
+	sal_Int32 nAdjustValue;
+	if ( bVertical ) 
+		nAdjustValue = ( aPt.Y()-aStart.Y())* 21600 /(aEnd.Y()-aStart.Y());
+	else
+		nAdjustValue = ( aPt.X()-aStart.X() )* 21600 /(aEnd.X()-aStart.X());
+
+	return nAdjustValue;
+}
+
+
+void lcl_Rotate(sal_Int32 nAngle, Point center, Point& pt)
+{
+	while ( nAngle<0)
+		nAngle +=36000;
+	while (nAngle>=36000)
+		nAngle -=36000;
+
+	int cs, sn;
+	switch (nAngle)
+	{
+	case 0:
+		cs =1;
+		sn =0;
+		break;
+	case 9000:
+		cs =0;
+		sn =1;
+		break;
+	case 18000:
+		cs = -1;
+		sn = 0;
+		break;
+	case 27000:
+		cs = 0;
+		sn = -1;
+		break;
+	default:
+		return;
+		break;
+	}
+	sal_Int32 x0 =pt.X()-center.X();
+	sal_Int32 y0 =pt.Y()-center.Y();
+	pt.X()=center.X()+ x0*cs-y0*sn;
+	pt.Y()=center.Y()+ y0*cs+x0*sn;
+}
+/*
+ FlipV defines that the shape will be flipped vertically about the center of its bounding box.
+Generally, draw the connector from top to bottom, from left to right when meet the adjust value,
+but when (X1>X2 or Y1>Y2),the draw director must be reverse, FlipV or FlipH should be set to true.
+*/
+sal_Bool lcl_GetAngle(Polygon &rPoly,sal_uInt16& rShapeFlags,sal_Int32& nAngle )
+{
+	Point aStart = rPoly[0];
+	Point aEnd = rPoly[rPoly.GetSize()-1];
+	nAngle = ( rPoly[1].X() == aStart.X() ) ? 9000: 0 ;
+	Point p1(aStart.X(),aStart.Y());
+	Point p2(aEnd.X(),aEnd.Y());
+	if ( nAngle )
+	{
+		Point center((aEnd.X()+aStart.X())>>1,(aEnd.Y()+aStart.Y())>>1);
+		lcl_Rotate(-nAngle, center,p1);	
+		lcl_Rotate(-nAngle, center,p2);
+	}
+	if (  p1.X() > p2.X() )
+	{
+		if ( nAngle )
+			rShapeFlags |= SHAPEFLAG_FLIPV;
+		else 
+			rShapeFlags |= SHAPEFLAG_FLIPH;
+
+	}
+	if (  p1.Y() > p2.Y()  )
+	{
+		if ( nAngle )
+			rShapeFlags |= SHAPEFLAG_FLIPH;
+		else 
+			rShapeFlags |= SHAPEFLAG_FLIPV;
+	}
+
+	if ( (rShapeFlags&SHAPEFLAG_FLIPH) && (rShapeFlags&SHAPEFLAG_FLIPV) )
+	{
+		rShapeFlags  &= ~( SHAPEFLAG_FLIPH | SHAPEFLAG_FLIPV );
+		nAngle +=18000;
+	}
+
+	if ( nAngle )
+	{
+		// Set angle properties
+		nAngle *= 655;
+		nAngle += 0x8000;
+		nAngle &=~0xffff;                                  // nAngle auf volle Gradzahl runden
+		return sal_True;
+	}
+	return sal_False;
+}
 sal_Bool EscherPropertyContainer::CreateConnectorProperties(
 	const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape,
 	EscherSolverContainer& rSolverContainer, ::com::sun::star::awt::Rectangle& rGeoRect,
@@ -2061,7 +2270,7 @@ sal_Bool EscherPropertyContainer::Create
 	static String sEdgeEndPoint			( RTL_CONSTASCII_USTRINGPARAM( "EdgeEndPoint" ) );
 	static String sEdgeStartConnection	( RTL_CONSTASCII_USTRINGPARAM( "EdgeStartConnection" ) );
 	static String sEdgeEndConnection	( RTL_CONSTASCII_USTRINGPARAM( "EdgeEndConnection" ) );
-
+	static String sEdgePath	            ( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygonBezier") );
 	sal_Bool bRetValue = sal_False;
 	rShapeType = rShapeFlags = 0;
 
@@ -2087,17 +2296,21 @@ sal_Bool EscherPropertyContainer::Create
 						rShapeFlags = SHAPEFLAG_HAVEANCHOR | SHAPEFLAG_HAVESPT | SHAPEFLAG_CONNECTOR;
 						rGeoRect = ::com::sun::star::awt::Rectangle( aStartPoint.X, aStartPoint.Y,
 															( aEndPoint.X - aStartPoint.X ) + 1, ( aEndPoint.Y - aStartPoint.Y ) + 1 );
-						if ( rGeoRect.Height < 0 )			// justify
-						{
-							rShapeFlags |= SHAPEFLAG_FLIPV;
-							rGeoRect.Y = aEndPoint.Y;
-							rGeoRect.Height = -rGeoRect.Height;
-						}
-						if ( rGeoRect.Width < 0 )
+						//set standard's FLIP in below code
+						if ( eCt != ::com::sun::star::drawing::ConnectorType_STANDARD)
 						{
-							rShapeFlags |= SHAPEFLAG_FLIPH;
-							rGeoRect.X = aEndPoint.X;
-							rGeoRect.Width = -rGeoRect.Width;
+							if ( rGeoRect.Height < 0 )			// justify
+							{
+								rShapeFlags |= SHAPEFLAG_FLIPV;
+								rGeoRect.Y = aEndPoint.Y;
+								rGeoRect.Height = -rGeoRect.Height;
+							}
+							if ( rGeoRect.Width < 0 )
+							{
+								rShapeFlags |= SHAPEFLAG_FLIPH;
+								rGeoRect.X = aEndPoint.X;
+								rGeoRect.Width = -rGeoRect.Width;
+							}
 						}
 						sal_uInt32 nAdjustValue1, nAdjustValue2, nAdjustValue3;
 						nAdjustValue1 = nAdjustValue2 = nAdjustValue3 = 0x2a30;
@@ -2142,12 +2355,34 @@ sal_Bool EscherPropertyContainer::Create
 							break;
 
 							case ::com::sun::star::drawing::ConnectorType_STANDARD :// Connector 2->5
-							{
-								rShapeType = ESCHER_ShpInst_BentConnector3;
-								AddOpt( ESCHER_Prop_cxstyle, ESCHER_cxstyleBent );
-							}
-							break;
-
+								{
+									if ( EscherPropertyValueHelper::GetPropertyValue( aAny, aXPropSet, sEdgePath ) )
+									{
+										PolyPolygon aPolyPolygon = GetPolyPolygon( aAny );
+										Polygon aPoly;
+										if ( aPolyPolygon.Count() > 0 )
+										{
+											AddOpt( ESCHER_Prop_cxstyle, ESCHER_cxstyleBent );
+											aPoly = aPolyPolygon[ 0 ];
+											sal_Int32 nAdjCount = lcl_GetAdjustValueCount( aPoly );
+											rShapeType = ( sal_uInt16 )( ESCHER_ShpInst_BentConnector2 + nAdjCount);	
+											for ( sal_Int32 i = 0 ; i < nAdjCount; ++ i) 
+												AddOpt( (sal_uInt16) ( ESCHER_Prop_adjustValue+i) , lcl_GetConnectorAdjustValue( aPoly, i ) );
+											bRetValue = sal_True; 
+										}
+										sal_Int32 nAngle=0;
+										if (lcl_GetAngle(aPoly,rShapeFlags,nAngle ))
+										{
+											AddOpt( ESCHER_Prop_Rotation, nAngle );
+										}
+									}
+									else 
+									{
+										rShapeType = ESCHER_ShpInst_BentConnector3;
+										AddOpt( ESCHER_Prop_cxstyle, ESCHER_cxstyleBent );
+									}
+								}
+								break;
 							default:
 							case ::com::sun::star::drawing::ConnectorType_LINE :
 							case ::com::sun::star::drawing::ConnectorType_LINES :	// Connector 2->5
@@ -2158,7 +2393,8 @@ sal_Bool EscherPropertyContainer::Create
 							break;
 						}
 						CreateLineProperties( aXPropSet, sal_False );
-						bRetValue = bSuppressRotation = sal_True;
+						bRetValue = sal_True;
+						bSuppressRotation = sal_False;
 					}
 				}
 			}

Modified: incubator/ooo/branches/buildsys/main/filter/source/msfilter/svdfppt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/filter/source/msfilter/svdfppt.cxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/filter/source/msfilter/svdfppt.cxx (original)
+++ incubator/ooo/branches/buildsys/main/filter/source/msfilter/svdfppt.cxx Fri Oct 12 21:29:36 2012
@@ -1170,13 +1170,17 @@ SdrObject* SdrEscherImport::ProcessObj( 
 					}
 					if ( bVerticalText )
 					{
-						bAutoGrowWidth = bFitShapeToText;	// bFitShapeToText; can't be used, because we cut the text if it is too height,
+						bAutoGrowWidth = bFitShapeToText;
 						bAutoGrowHeight = sal_False;
 					}
 					else
 					{
 						bAutoGrowWidth = sal_False;
-						bAutoGrowHeight = sal_True;			// bFitShapeToText;	can't be used, because we cut the text if it is too height,
+
+                        // #119885# re-activationg bFitShapeToText here, could not find deeper explanations
+                        // for it (it was from 2005). Keeping the old commeht here for reference
+                        // old comment: // bFitShapeToText;	can't be used, because we cut the text if it is too height,
+						bAutoGrowHeight = bFitShapeToText;
 					}
 				}
 				pTObj->SetMergedItem( SvxFrameDirectionItem( bVerticalText ? FRMDIR_VERT_TOP_RIGHT : FRMDIR_HORI_LEFT_TOP, EE_PARA_WRITINGDIR ) );

Modified: incubator/ooo/branches/buildsys/main/formula/inc/formula/compiler.hrc
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/formula/inc/formula/compiler.hrc?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/formula/inc/formula/compiler.hrc (original)
+++ incubator/ooo/branches/buildsys/main/formula/inc/formula/compiler.hrc Fri Oct 12 21:29:36 2012
@@ -393,9 +393,13 @@
 #define SC_OPCODE_SUM_IFS           397
 #define SC_OPCODE_AVERAGE_IFS       398
 #define SC_OPCODE_COUNT_IFS         399
-#define SC_OPCODE_STOP_2_PAR        400
+#define SC_OPCODE_LENB              400
+#define SC_OPCODE_RIGHTB            401
+#define SC_OPCODE_LEFTB             402
+#define SC_OPCODE_MIDB              403
+#define SC_OPCODE_STOP_2_PAR        404
 
-#define SC_OPCODE_LAST_OPCODE_ID    399      /* last OpCode */
+#define SC_OPCODE_LAST_OPCODE_ID    403      /* last OpCode */
 
 /*** Interna ***/
 #define SC_OPCODE_INTERNAL_BEGIN   9999

Modified: incubator/ooo/branches/buildsys/main/formula/inc/formula/opcode.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/formula/inc/formula/opcode.hxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/formula/inc/formula/opcode.hxx (original)
+++ incubator/ooo/branches/buildsys/main/formula/inc/formula/opcode.hxx Fri Oct 12 21:29:36 2012
@@ -299,6 +299,10 @@ enum OpCodeEnum
 		ocSubstitute		= SC_OPCODE_SUBSTITUTE,
 		ocRept				= SC_OPCODE_REPT,
 		ocConcat			= SC_OPCODE_CONCAT,
+		ocLenB              = SC_OPCODE_LENB,
+		ocRightB            = SC_OPCODE_RIGHTB,
+		ocLeftB             = SC_OPCODE_LEFTB,
+		ocMidB              = SC_OPCODE_MIDB,
 	// Matrix functions
 		ocMatValue			= SC_OPCODE_MAT_VALUE,
 		ocMatDet			= SC_OPCODE_MAT_DET,

Modified: incubator/ooo/branches/buildsys/main/formula/source/core/resource/core_resource.src
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/formula/source/core/resource/core_resource.src?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/formula/source/core/resource/core_resource.src (original)
+++ incubator/ooo/branches/buildsys/main/formula/source/core/resource/core_resource.src Fri Oct 12 21:29:36 2012
@@ -261,6 +261,10 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGL
 	String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
 	String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
 	String SC_OPCODE_MID { Text = "MID" ; };
+	String SC_OPCODE_LENB          { Text = "LENB" ; };
+    String SC_OPCODE_RIGHTB        { Text = "RIGHTB" ; };
+    String SC_OPCODE_LEFTB         { Text = "LEFTB" ; };
+    String SC_OPCODE_MIDB          { Text = "MIDB" ; };
 	String SC_OPCODE_TEXT { Text = "TEXT" ; };
 	String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
 	String SC_OPCODE_REPT { Text = "REPT" ; };
@@ -594,6 +598,10 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGL
 	String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
 	String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
 	String SC_OPCODE_MID { Text = "MID" ; };
+	String SC_OPCODE_LENB { Text = "LENB" ; };
+    String SC_OPCODE_RIGHTB { Text = "RIGHTB" ; };
+    String SC_OPCODE_LEFTB { Text = "LEFTB" ; };
+    String SC_OPCODE_MIDB { Text = "MIDB" ; };
 	String SC_OPCODE_TEXT { Text = "TEXT" ; };
 	String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
 	String SC_OPCODE_REPT { Text = "REPT" ; };
@@ -1554,6 +1562,22 @@ Resource RID_STRLIST_FUNCTION_NAMES
 	{
 		Text [ en-US ] = "MID" ;
 	};
+	String SC_OPCODE_LENB
+    {
+        Text [ en-US ] = "LENB" ;
+    };
+    String SC_OPCODE_RIGHTB
+    {
+        Text [ en-US ] = "RIGHTB" ;
+    };
+    String SC_OPCODE_LEFTB
+    {
+        Text [ en-US ] = "LEFTB" ;
+    };
+    String SC_OPCODE_MIDB
+    {
+        Text [ en-US ] = "MIDB" ;
+    };
 	String SC_OPCODE_TEXT
 	{
 		Text [ en-US ] = "TEXT" ;

Modified: incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/SpinningProgressControlModel.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/SpinningProgressControlModel.idl?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/SpinningProgressControlModel.idl (original)
+++ incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/SpinningProgressControlModel.idl Fri Oct 12 21:29:36 2012
@@ -32,8 +32,10 @@ module com { module sun { module star { 
 
 //======================================================================================================================
 
-/** is a specialization of the <type>AnimatedImagesControlModel</type> which provides standard image sets
-    for displaying a non-procentual progress.
+/** is a specialization of the <type>AnimatedImagesControlModel</type>.
+
+    <p>To show a progress which cannot be expressed as a percentage of execution,
+    it displays animated images from a standard image set.</p>
 
     <p>Three image sets are provided, of size 16x16, 32x32, and 64x64 pixels.</p>
  */

Modified: incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobber.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobber.idl?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobber.idl (original)
+++ incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobber.idl Fri Oct 12 21:29:36 2012
@@ -40,8 +40,8 @@
 
 /** 
     @since OOo 2.2
-    @deprecatd
-        You should use <type>AnimatedImagesControl</type>.
+    @deprecated
+        You should use <type>AnimatedImagesControl</type> and <type>SpinningProgressControlModel</type>.
  */
 published service UnoControlThrobber
 {

Modified: incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobberModel.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobberModel.idl?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobberModel.idl (original)
+++ incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/UnoControlThrobberModel.idl Fri Oct 12 21:29:36 2012
@@ -36,8 +36,8 @@
 
 /** 
     @since OOo 2.2
-    @deprecatd
-        You should use <type>SpinningAnimationControlModel</type>.
+    @deprecated
+        You should use <type>SpinningProgressControlModel</type>.
  */
 
 published service UnoControlThrobberModel

Modified: incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/XThrobber.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/XThrobber.idl?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/XThrobber.idl (original)
+++ incubator/ooo/branches/buildsys/main/offapi/com/sun/star/awt/XThrobber.idl Fri Oct 12 21:29:36 2012
@@ -38,8 +38,8 @@
 //=============================================================================
 
 /** 
-    @deprecatd
-        You should use <type>XAnimation</type>, <type>AnimatedImagesControl</type>, and <type>AnimatedImagesControlModel</type>.
+    @deprecated
+        You should use <type>XAnimation</type>, <type>AnimatedImagesControl</type> and <type>SpinningProgressControlModel</type>.
  */
 published interface XThrobber: com::sun::star::uno::XInterface
 {

Modified: incubator/ooo/branches/buildsys/main/offapi/com/sun/star/style/NumberingType.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/offapi/com/sun/star/style/NumberingType.idl?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/offapi/com/sun/star/style/NumberingType.idl (original)
+++ incubator/ooo/branches/buildsys/main/offapi/com/sun/star/style/NumberingType.idl Fri Oct 12 21:29:36 2012
@@ -117,7 +117,7 @@ published constants NumberingType
 
     //-------------------------------------------------------------------------
     /** Numbering for Chinese lower case number
-        as "一,二,三..."
+        as "&#19968;,&#20108;,&#19977;..."
      */
     const short NUMBER_LOWER_ZH = 15;
 
@@ -133,13 +133,13 @@ published constants NumberingType
 
     //-------------------------------------------------------------------------
     /** Bullet for Chinese Tian Gan
-        as "甲,乙,丙..."
+        as "&#30002;,&#20057;,&#19993;..."
      */
     const short TIAN_GAN_ZH = 18;
 
     //-------------------------------------------------------------------------
     /** Bullet for Chinese Di Zi
-        as "子,丑,寅..."
+        as "&#23376;,&#19985;,&#23493;..."
      */
     const short DI_ZI_ZH = 19;
 
@@ -170,43 +170,43 @@ published constants NumberingType
 
     //-------------------------------------------------------------------------
     /** Numbering for Korean upper case number
-        as "壹,貳,參..."
+        as "&#22777;,&#36019;,&#21443;..."
      */
     const short NUMBER_UPPER_KO = 25;
 
     //-------------------------------------------------------------------------
     /** Numbering for Korean hangul number
-        as "일,이,삼..."
+        as "&#51068;,&#51060;,&#49340;..."
      */
     const short NUMBER_HANGUL_KO = 26;
 
     //-------------------------------------------------------------------------
     /** Bullet for Korean Hangul Jamo
-        as "ㄱ,ㄴ,ㄷ..."
+        as "&#12593;,&#12596;,&#12599;..."
      */
     const short HANGUL_JAMO_KO = 27;
 
     //-------------------------------------------------------------------------
     /** Bullet for Korean Hangul Syllable
-        as "가,나,다..."
+        as "&#44032;,&#45208;,&#45796;..."
      */
     const short HANGUL_SYLLABLE_KO = 28;
 
     //-------------------------------------------------------------------------
     /** Bullet for Korean Hangul Circled Jamo
-        as "㉠,㉡,㉢..."
+        as "&#12896;,&#12897;,&#12898;..."
      */
     const short HANGUL_CIRCLED_JAMO_KO = 29;
 
     //-------------------------------------------------------------------------
     /** Bullet for Korean Hangul Circled Syllable
-        as "㉮,㉯,㉰..."
+        as "&#12910;,&#12911;,&#12912;..."
      */
     const short HANGUL_CIRCLED_SYLLABLE_KO = 30;
 
     //-------------------------------------------------------------------------
     /** Numbering in Arabic alphabet letters
-        as "أ,ب,ت..."
+        as "&#1571;,&#1576;,&#1578;..."
 
         @since OOo 1.1.2
      */

Modified: incubator/ooo/branches/buildsys/main/oox/source/xls/formulabase.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/oox/source/xls/formulabase.cxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/oox/source/xls/formulabase.cxx (original)
+++ incubator/ooo/branches/buildsys/main/oox/source/xls/formulabase.cxx Fri Oct 12 21:29:36 2012
@@ -442,10 +442,10 @@ static const FunctionData saFuncTableBif
     { 0/*"FIND"*/,              "FINDB",                205,    205,    2,  3,  V, { VR }, 0 },
     { 0/*"SEARCH"*/,            "SEARCHB",              206,    206,    2,  3,  V, { VR }, 0 },
     { 0/*"REPLACE"*/,           "REPLACEB",             207,    207,    4,  4,  V, { VR }, 0 },
-    { 0/*"LEFT"*/,              "LEFTB",                208,    208,    1,  2,  V, { VR }, 0 },
-    { 0/*"RIGHT"*/,             "RIGHTB",               209,    209,    1,  2,  V, { VR }, 0 },
-    { 0/*"MID"*/,               "MIDB",                 210,    210,    3,  3,  V, { VR }, 0 },
-    { 0/*"LEN"*/,               "LENB",                 211,    211,    1,  1,  V, { VR }, 0 },
+    { "LEFTB",                  "LEFTB",                208,    208,    1,  2,  V, { VR }, 0 },
+    { "RIGHTB",                 "RIGHTB",               209,    209,    1,  2,  V, { VR }, 0 },
+    { "MIDB",                   "MIDB",                 210,    210,    3,  3,  V, { VR }, 0 },
+    { "LENB",                   "LENB",                 211,    211,    1,  1,  V, { VR }, 0 },
     { "ROUNDUP",                "ROUNDUP",              212,    212,    2,  2,  V, { VR }, 0 },
     { "ROUNDDOWN",              "ROUNDDOWN",            213,    213,    2,  2,  V, { VR }, 0 },
     { "ASC",                    "ASC",                  214,    214,    1,  1,  V, { VR }, 0 },

Modified: incubator/ooo/branches/buildsys/main/sc/inc/attarray.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/sc/inc/attarray.hxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/sc/inc/attarray.hxx (original)
+++ incubator/ooo/branches/buildsys/main/sc/inc/attarray.hxx Fri Oct 12 21:29:36 2012
@@ -166,6 +166,10 @@ public:
 
     sal_Bool    GetFirstVisibleAttr( SCROW& rFirstRow ) const;
     sal_Bool    GetLastVisibleAttr( SCROW& rLastRow, SCROW nLastData ) const;
+	/*
+	Get the last cell's row number , which have visual atribute or visual data in attribute list
+	*/
+	sal_Bool    GetLastAttr( SCROW& rLastRow, SCROW nLastData ) const;
 	sal_Bool	HasVisibleAttrIn( SCROW nStartRow, SCROW nEndRow ) const;
 	sal_Bool	IsVisibleEqual( const ScAttrArray& rOther,
 							SCROW nStartRow, SCROW nEndRow ) const;

Modified: incubator/ooo/branches/buildsys/main/sc/inc/chartuno.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/sc/inc/chartuno.hxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/sc/inc/chartuno.hxx (original)
+++ incubator/ooo/branches/buildsys/main/sc/inc/chartuno.hxx Fri Oct 12 21:29:36 2012
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 #ifndef SC_CHARTUNO_HXX
 #define SC_CHARTUNO_HXX
 
@@ -36,7 +34,7 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/container/XEnumerationAccess.hpp>
 #include <com/sun/star/container/XIndexAccess.hpp>
-#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XNamedEx.hpp>
 #include <cppuhelper/compbase4.hxx>
 #include <cppuhelper/implbase4.hxx>
 
@@ -115,7 +113,7 @@ public:
 typedef ::cppu::WeakComponentImplHelper4<
     ::com::sun::star::table::XTableChart,
     ::com::sun::star::document::XEmbeddedObjectSupplier,
-    ::com::sun::star::container::XNamed,
+    ::com::sun::star::container::XNamedEx,  // #i121178#: support displaying name
     ::com::sun::star::lang::XServiceInfo > ScChartObj_Base;
 
 typedef ::comphelper::OPropertyContainer ScChartObj_PBase;
@@ -131,6 +129,7 @@ private:
 	ScDocShell*				pDocShell;
 	SCTAB					nTab;			// Charts sind pro Sheet
 	String					aChartName;
+	String					aObjectName;    // #i121178#: the OLE object's name(displaying name)
 
 	void	Update_Impl( const ScRangeListRef& rRanges, bool bColHeaders, bool bRowHeaders );
 	void	GetData_Impl( ScRangeListRef& rRanges, bool& rColHeaders, bool& rRowHeaders ) const;
@@ -183,6 +182,11 @@ public:
 	virtual void SAL_CALL	setName( const ::rtl::OUString& aName )
 								throw(::com::sun::star::uno::RuntimeException);
 
+							// XNamedEx
+	virtual ::rtl::OUString SAL_CALL getDisplayName() throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL	setDisplayName( const ::rtl::OUString& aName )
+								throw(::com::sun::star::uno::RuntimeException);
+
 							// XServiceInfo
 	virtual ::rtl::OUString SAL_CALL getImplementationName()
 								throw(::com::sun::star::uno::RuntimeException);

Modified: incubator/ooo/branches/buildsys/main/sc/inc/column.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/sc/inc/column.hxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/sc/inc/column.hxx (original)
+++ incubator/ooo/branches/buildsys/main/sc/inc/column.hxx Fri Oct 12 21:29:36 2012
@@ -171,6 +171,10 @@ public:
 
     sal_Bool        GetFirstVisibleAttr( SCROW& rFirstRow ) const;
     sal_Bool        GetLastVisibleAttr( SCROW& rLastRow ) const;
+	/*
+	Get the last cell's row number , which have visual atribute or visual data in a column
+	*/
+	sal_Bool		GetLastAttr( SCROW& rLastRow ) const;
 	sal_Bool		HasVisibleAttrIn( SCROW nStartRow, SCROW nEndRow ) const;
 	sal_Bool		IsVisibleAttrEqual( const ScColumn& rCol, SCROW nStartRow = 0,
 									SCROW nEndRow = MAXROW ) const;

Modified: incubator/ooo/branches/buildsys/main/sc/inc/document.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/buildsys/main/sc/inc/document.hxx?rev=1397728&r1=1397727&r2=1397728&view=diff
==============================================================================
--- incubator/ooo/branches/buildsys/main/sc/inc/document.hxx (original)
+++ incubator/ooo/branches/buildsys/main/sc/inc/document.hxx Fri Oct 12 21:29:36 2012
@@ -232,6 +232,7 @@ const sal_uInt8 SC_DDE_IGNOREMODE    = 2
 
 
 // -----------------------------------------------------------------------
+enum { E_MEDIUM_FLAG_NONE = 0, E_MEDIUM_FLAG_EXCEL = 1, E_MEDIUM_FLAG_MSXML = 2 };
 
 class ScDocument
 {
@@ -390,6 +391,7 @@ private:
 	sal_Bool				bInsertingFromOtherDoc;
     bool                bLoadingMedium;
     bool                bImportingXML;      // special handling of formula text
+    bool                mbImportingMSXML;
     sal_Bool                bXMLFromWrapper;    // distinguish ScXMLImportWrapper from external component
 	sal_Bool				bCalcingAfterLoad;				// in CalcAfterLoad TRUE
 	// wenn temporaer keine Listener auf/abgebaut werden sollen
@@ -956,6 +958,10 @@ public:
 										SCROW& rEndRow, sal_Bool bNotes = sal_True ) const;
 	void			InvalidateTableArea();
 
+	/*
+	Get the last cell's row number , which have visual atribute or visual data in specific table
+	*/
+	SC_DLLPUBLIC void			GetLastAttrCell( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
 
     SC_DLLPUBLIC sal_Bool			GetDataStart( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow ) const;
 
@@ -1294,6 +1300,7 @@ public:
 	void			DeleteSelectionTab( SCTAB nTab, sal_uInt16 nDelFlag, const ScMarkData& rMark );
 
     SC_DLLPUBLIC void           SetColWidth( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth );
+	SC_DLLPUBLIC void			SetColWidthOnly( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth );
     SC_DLLPUBLIC void           SetRowHeight( SCROW nRow, SCTAB nTab, sal_uInt16 nNewHeight );
     SC_DLLPUBLIC void           SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, SCTAB nTab,
                                             sal_uInt16 nNewHeight );
@@ -1565,6 +1572,8 @@ public:
     void            SetLoadingMedium( bool bVal );
     void            SetImportingXML( bool bVal );
     bool            IsImportingXML() const { return bImportingXML; }
+	void			SetImportingMSXML( bool bVal );
+	bool			IsImportingMSXML() const { return mbImportingMSXML; }
 	void			SetXMLFromWrapper( sal_Bool bVal );
 	sal_Bool			IsXMLFromWrapper() const { return bXMLFromWrapper; }
 	void			SetCalcingAfterLoad( sal_Bool bVal ) { bCalcingAfterLoad = bVal; }