You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2012/11/21 16:42:29 UTC

svn commit: r1412154 [1/3] - in /incubator/ooo/branches/alg/aw080/main: filter/inc/filter/msfilter/ filter/source/msfilter/ offapi/com/sun/star/drawing/ oox/inc/oox/drawingml/ oox/source/drawingml/ oox/source/export/ oox/source/token/ sd/source/filter/...

Author: alg
Date: Wed Nov 21 15:42:23 2012
New Revision: 1412154

URL: http://svn.apache.org/viewvc?rev=1412154&view=rev
Log:
In-between version comitted, mirrorX/Y exchange support with ODF tested, also roundtrip with trunk

Modified:
    incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/escherex.hxx
    incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/msdffimp.hxx
    incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/escherex.cxx
    incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/eschesdo.cxx
    incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/msdffimp.cxx
    incubator/ooo/branches/alg/aw080/main/offapi/com/sun/star/drawing/EnhancedCustomShapeGeometry.idl
    incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/customshapeproperties.hxx
    incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/shape.hxx
    incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/customshapeproperties.cxx
    incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/shape.cxx
    incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/transform2dcontext.cxx
    incubator/ooo/branches/alg/aw080/main/oox/source/export/shapes.cxx
    incubator/ooo/branches/alg/aw080/main/oox/source/token/properties.txt
    incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/eppt.cxx
    incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/eppt.hxx
    incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/epptso.cxx
    incubator/ooo/branches/alg/aw080/main/svx/inc/svx/svdoashp.hxx
    incubator/ooo/branches/alg/aw080/main/svx/inc/svx/unoshape.hxx
    incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShape2d.cxx
    incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShape3d.cxx
    incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdoashp.cxx
    incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdview.cxx
    incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshap2.cxx
    incubator/ooo/branches/alg/aw080/main/xmloff/inc/EnhancedCustomShapeToken.hxx
    incubator/ooo/branches/alg/aw080/main/xmloff/inc/xmloff/xmltoken.hxx
    incubator/ooo/branches/alg/aw080/main/xmloff/source/core/xmltoken.cxx
    incubator/ooo/branches/alg/aw080/main/xmloff/source/draw/EnhancedCustomShapeToken.cxx
    incubator/ooo/branches/alg/aw080/main/xmloff/source/draw/shapeexport4.cxx
    incubator/ooo/branches/alg/aw080/main/xmloff/source/draw/ximpcustomshape.cxx
    incubator/ooo/branches/alg/aw080/main/xmloff/source/draw/ximpcustomshape.hxx

Modified: incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/escherex.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/escherex.hxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/escherex.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/escherex.hxx Wed Nov 21 15:42:23 2012
@@ -1251,8 +1251,7 @@ class MSFILTER_DLLPUBLIC EscherPropertyC
         // helper functions which are also used by the escher import
         static PolyPolygon GetPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape );
 		static PolyPolygon GetPolyPolygon( const ::com::sun::star::uno::Any& rSource );
-        static MSO_SPT GetCustomShapeType( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape, sal_uInt32& nMirrorFlags );
-		static MSO_SPT GetCustomShapeType( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape, sal_uInt32& nMirrorFlags, rtl::OUString& rShapeType );
+		static MSO_SPT GetCustomShapeType( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape, rtl::OUString& rShapeType );
 
 	// helper functions which are also used in ooxml export
 	static sal_Bool GetLineArrow( const sal_Bool bLineStart,

Modified: incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/msdffimp.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/msdffimp.hxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/msdffimp.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/filter/inc/filter/msfilter/msdffimp.hxx Wed Nov 21 15:42:23 2012
@@ -493,6 +493,14 @@ protected :
 	*/
 	virtual sal_Bool ShapeHasText(sal_uLong nShapeId, sal_uLong nFilePos) const;
 
+    // helper to apply rotation and mirroring to SdrObject
+    void ApplyRotationAndMirror(
+        SdrObject& rTarget,
+        const basegfx::B2DPoint& rCenter,
+        sal_Int32 nAngle, // in old DrawingLayer notation
+        bool bFlipHorizontal,
+        bool bFlipVertical);
+
 public:
 
 	void*				pSvxMSDffDummy1;

Modified: incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/escherex.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/escherex.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/escherex.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/escherex.cxx Wed Nov 21 15:42:23 2012
@@ -3679,7 +3679,7 @@ void EscherPropertyContainer::CreateCust
 										const rtl::OUString	sMirroredY			( RTL_CONSTASCII_USTRINGPARAM( "MirroredY" ) );
 										const rtl::OUString	sSwitched			( RTL_CONSTASCII_USTRINGPARAM( "Switched" ) );
 										const rtl::OUString	sPolar				( RTL_CONSTASCII_USTRINGPARAM( "Polar" ) );
-	//									const rtl::OUString	sMap				( RTL_CONSTASCII_USTRINGPARAM( "Map" ) );
+//  									const rtl::OUString	sMap				( RTL_CONSTASCII_USTRINGPARAM( "Map" ) );
 										const rtl::OUString	sRadiusRangeMinimum	( RTL_CONSTASCII_USTRINGPARAM( "RadiusRangeMinimum" ) );
 										const rtl::OUString	sRadiusRangeMaximum	( RTL_CONSTASCII_USTRINGPARAM( "RadiusRangeMaximum" ) );
 										const rtl::OUString	sRangeXMinimum		( RTL_CONSTASCII_USTRINGPARAM( "RangeXMinimum" ) );
@@ -3901,10 +3901,9 @@ void EscherPropertyContainer::CreateCust
 
 // ---------------------------------------------------------------------------------------------
 
-MSO_SPT EscherPropertyContainer::GetCustomShapeType( const uno::Reference< drawing::XShape > & rXShape, sal_uInt32& nMirrorFlags, rtl::OUString& rShapeType )
+MSO_SPT EscherPropertyContainer::GetCustomShapeType( const uno::Reference< drawing::XShape > & rXShape, rtl::OUString& rShapeType )
 {
 	MSO_SPT eShapeType = mso_sptNil;
-	nMirrorFlags = 0;
 	uno::Reference< beans::XPropertySet > aXPropSet( rXShape, uno::UNO_QUERY );
     if ( aXPropSet.is() )
     {
@@ -3924,18 +3923,21 @@ MSO_SPT EscherPropertyContainer::GetCust
 						if ( rProp.Value >>= rShapeType )
 							eShapeType = EnhancedCustomShapeTypeNames::Get( rShapeType );
 					}
-					else if ( rProp.Name.equalsAscii( "MirroredX" ) )
-					{
-						sal_Bool bMirroredX = sal_Bool();
-						if ( ( rProp.Value >>= bMirroredX ) && bMirroredX )
-							nMirrorFlags  |= SHAPEFLAG_FLIPH;
-					}
-					else if ( rProp.Name.equalsAscii( "MirroredY" ) )
-					{
-						sal_Bool bMirroredY = sal_Bool();
-						if ( ( rProp.Value >>= bMirroredY ) && bMirroredY )
-							nMirrorFlags  |= SHAPEFLAG_FLIPV;
-					}
+                    // TTTT: Need to remove "MirroredX" and "MirroredY" attributes
+                    // for CustomShapeGeometry completely
+                    //
+					//else if ( rProp.Name.equalsAscii( "MirroredX" ) )
+					//{
+					//	sal_Bool bMirroredX = sal_Bool();
+					//	if ( ( rProp.Value >>= bMirroredX ) && bMirroredX )
+					//		nMirrorFlags  |= SHAPEFLAG_FLIPH;
+					//}
+					//else if ( rProp.Name.equalsAscii( "MirroredY" ) )
+					//{
+					//	sal_Bool bMirroredY = sal_Bool();
+					//	if ( ( rProp.Value >>= bMirroredY ) && bMirroredY )
+					//		nMirrorFlags  |= SHAPEFLAG_FLIPV;
+					//}
 				}
 			}
 		}
@@ -3946,12 +3948,6 @@ MSO_SPT EscherPropertyContainer::GetCust
 	return eShapeType;
 }
 
-MSO_SPT EscherPropertyContainer::GetCustomShapeType( const uno::Reference< drawing::XShape > & rXShape, sal_uInt32& nMirrorFlags )
-{
-	rtl::OUString aShapeType;
-	return GetCustomShapeType( rXShape, nMirrorFlags, aShapeType );
-}
-
 // ---------------------------------------------------------------------------------------------
 //Implement for form control export
 sal_Bool   EscherPropertyContainer::CreateBlipPropertiesforOLEControl(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape)

Modified: incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/eschesdo.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/eschesdo.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/eschesdo.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/eschesdo.cxx Wed Nov 21 15:42:23 2012
@@ -281,14 +281,30 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 		}
 
         // TTTT: adapted to transformation
+        // TTTT: Check mirroring exports for ALL shape types
         basegfx::B2DRange aObjectRange(0.0, 0.0, 1.0, 1.0);
+        sal_uInt32 nMirrorFlags(0);
 
 		if(rObj.ImplGetPropertyValue(::rtl::OUString::createFromAscii("Transformation")))
         {
 		    drawing::HomogenMatrix3 aMatrix;
             rObj.GetUsrAny() >>= aMatrix;
             const basegfx::tools::B2DHomMatrixBufferedDecompose aMat(basegfx::tools::UnoHomogenMatrix3ToB2DHomMatrix(aMatrix));
-            aObjectRange = basegfx::B2DRange(aMat.getTranslate(), aMat.getTranslate() + basegfx::absolute(aMat.getScale()));
+            // do not use absolute value of scale, it is WANTED
+            // that the range is really covering the unrotated, unmirrored shape
+            aObjectRange = basegfx::B2DRange(
+                aMat.getTranslate(), 
+                aMat.getTranslate() + aMat.getScale()); 
+
+            if(aMat.getScale().getX() < 0.0)
+            {
+                nMirrorFlags |= SHAPEFLAG_FLIPH;
+            }
+
+            if(aMat.getScale().getY() < 0.0)
+            {
+                nMirrorFlags |= SHAPEFLAG_FLIPV;
+            }
         }
 
         if ( !mpPicStrm )
@@ -303,13 +319,15 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 		if ( rObj.GetType().EqualsAscii( "drawing.Custom" ) )
 		{
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			sal_uInt32 nMirrorFlags;
+			// TTTT: remove when checked sal_uInt32 nMirrorFlags;
 
 			rtl::OUString sCustomShapeType;
-			MSO_SPT eShapeType = aPropOpt.GetCustomShapeType( rObj.GetShapeRef(), nMirrorFlags, sCustomShapeType );
+			MSO_SPT eShapeType = aPropOpt.GetCustomShapeType( rObj.GetShapeRef(), /*nMirrorFlags, */sCustomShapeType );
 			if ( sCustomShapeType.equalsAscii( "col-502ad400" ) || sCustomShapeType.equalsAscii( "col-60da8460" ) )
 			{
-				ADD_SHAPE( ESCHER_ShpInst_PictureFrame, 0xa00 );
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_PictureFrame,
+                    0xa00 ); // TTTT: no mirroring, metafile export version
 				if ( aPropOpt.CreateGraphicProperties( rObj.mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "MetaFile" ) ), sal_False ) )
 				{
 					aPropOpt.AddOpt( ESCHER_Prop_LockAgainstGrouping, 0x800080 );
@@ -330,7 +348,7 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			{
 				ADD_SHAPE(
                     sal::static_int_cast< sal_uInt16 >(eShapeType),
-                    nMirrorFlags | 0xa00 );
+                    nMirrorFlags | 0xa00 ); // Flags: mirror | Connector | HasSpt
 				aPropOpt.CreateCustomShapeProperties( eShapeType, rObj.GetShapeRef() );
 				aPropOpt.CreateFillProperties( rObj.mXPropSet, sal_True );
 				if ( rObj.ImplGetText() )
@@ -349,7 +367,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			if( nRadius )
 			{
 				nRadius = ImplMapB2DVector(basegfx::B2DVector(nRadius, 0.0)).getLength();
-				ADD_SHAPE( ESCHER_ShpInst_RoundRectangle, 0xa00 );	// Flags: Connector | HasSpt
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_RoundRectangle, 
+                    nMirrorFlags | 0xa00 );	// Flags: mirror | Connector | HasSpt
 				const sal_Int32 nLenght(basegfx::fround((std::min(rObj.getObjectRange().getWidth(), rObj.getObjectRange().getHeight())) * 0.5));
 				if ( nRadius >= nLenght )
 					nRadius = 0x2a30;							// 0x2a30 ist PPTs maximum radius
@@ -359,7 +379,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			}
 			else
 			{
-				ADD_SHAPE( ESCHER_ShpInst_Rectangle, 0xa00 );			// Flags: Connector | HasSpt
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_Rectangle, 
+                    nMirrorFlags | 0xa00 );			// Flags: mirror | Connector | HasSpt
 			}
 			aPropOpt.CreateFillProperties( rObj.mXPropSet, sal_True );
 			if( rObj.ImplGetText() )
@@ -380,7 +402,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
             if(CircleType_Circle == pCircObj->GetSdrCircleObjType())
             {
 				mpEscherEx->OpenContainer( ESCHER_SpContainer );
-				ADD_SHAPE( ESCHER_ShpInst_Ellipse, 0xa00 );			// Flags: Connector | HasSpt
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_Ellipse, 
+                    nMirrorFlags | 0xa00 );			// Flags: mirror | Connector | HasSpt
 				aPropOpt.CreateFillProperties( rObj.mXPropSet, sal_True );;
             }
 			else
@@ -392,14 +416,17 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 
                 Polygon aPolygon(aOutline.getB2DPolygon(0));
                 
-				if( rObj.GetAngle() )
+				if( rObj.GetAngle() || nMirrorFlags)
 				{
                     // already applied to the polygon, nothing to do there
 					rObj.SetAngle( 0 );
+                    nMirrorFlags = 0;
 				}
 
                 mpEscherEx->OpenContainer( ESCHER_SpContainer );
-				ADD_SHAPE( ESCHER_ShpInst_NotPrimitive, 0xa00 );		// Flags: Connector | HasSpt
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_NotPrimitive, 
+                    nMirrorFlags | 0xa00 );		// Flags: mirror | Connector | HasSpt
 				::com::sun::star::awt::Rectangle aNewRect;
 
                 if(aOutline.isClosed())
@@ -439,7 +466,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 				
 			rObj.setObjectRange(aRange);
             mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( nSpType, nSpFlags );
+			ADD_SHAPE( 
+                nSpType, 
+                nMirrorFlags | nSpFlags ); // Flags: mirror | Connector | HasSpt
 		}
 		else if ( rObj.GetType().EqualsAscii( "drawing.Measure" ))
 		{
@@ -455,7 +484,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 				if ( maRect.Left() > maRect.Right() )
 					nFlags |= 0x40;												// Flags: HorzMirror
 
-				ADD_SHAPE( ESCHER_ShpInst_Line, nFlags );
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_Line, 
+                    nMirrorFlags | nFlags ); // Flags: mirror | nFlags
 				aPropOpt.AddOpt( ESCHER_Prop_shapePath, ESCHER_ShapeComplex );
 				aPropOpt.CreateLineProperties( rObj.mXPropSet, sal_False );
 				mpEscherEx->EndCount( ESCHER_OPT, 3 );
@@ -533,13 +564,17 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			//i27942: Poly/Lines/Bezier do not support text.
 
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			sal_uInt32 nFlags = 0xa00;			// Flags: Connector | HasSpt
-            if( aNewRect.Height < 0 )
-				nFlags |= 0x80;	  			// Flags: VertMirror
-			if( aNewRect.Width < 0 )
-				nFlags |= 0x40;				// Flags: HorzMirror
 
-			ADD_SHAPE( ESCHER_ShpInst_Line, nFlags );
+            // TTTT: Mirroring alraedy done above
+			//sal_uInt32 nFlags = 0xa00;			// Flags: Connector | HasSpt
+            //if( aNewRect.Height < 0 )
+			//	nFlags |= 0x80;	  			// Flags: VertMirror
+			//if( aNewRect.Width < 0 )
+			//	nFlags |= 0x40;				// Flags: HorzMirror
+
+			ADD_SHAPE( 
+                ESCHER_ShpInst_Line, 
+                nMirrorFlags ); // Flags: mirror
 			aPropOpt.AddOpt( ESCHER_Prop_shapePath, ESCHER_ShapeComplex );
 			aPropOpt.CreateLineProperties( rObj.mXPropSet, sal_False );
 			rObj.SetAngle( 0 );
@@ -552,7 +587,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 				bAdditionalText = sal_True;
 			}
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_NotPrimitive, 0xa00 );		// Flags: Connector | HasSpt
+			ADD_SHAPE( 
+                ESCHER_ShpInst_NotPrimitive, 
+                nMirrorFlags | 0xa00 );		// Flags: mirror | Connector | HasSpt
 			::com::sun::star::awt::Rectangle aNewRect;
 			aPropOpt.CreatePolygonProperties( rObj.mXPropSet, ESCHER_CREATEPOLYGON_POLYPOLYGON, sal_False, aNewRect, NULL );
             MapRect(rObj);
@@ -564,7 +601,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			//i27942: Poly/Lines/Bezier do not support text.
 
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_NotPrimitive, 0xa00 );		// Flags: Connector | HasSpt
+			ADD_SHAPE( 
+                ESCHER_ShpInst_NotPrimitive, 
+                nMirrorFlags | 0xa00 );		// Flags: mirror | Connector | HasSpt
 			::com::sun::star::awt::Rectangle aNewRect;
 			aPropOpt.CreatePolygonProperties( rObj.mXPropSet, ESCHER_CREATEPOLYGON_POLYLINE, sal_False, aNewRect, NULL );
             MapRect(rObj);
@@ -576,7 +615,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			//i27942: Poly/Lines/Bezier do not support text.
 
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_NotPrimitive, 0xa00 );		// Flags: Connector | HasSpt
+			ADD_SHAPE( 
+                ESCHER_ShpInst_NotPrimitive, 
+                nMirrorFlags | 0xa00 );		// Flags: mirror | Connector | HasSpt
 			::com::sun::star::awt::Rectangle aNewRect;
 			aPropOpt.CreatePolygonProperties( rObj.mXPropSet, ESCHER_CREATEPOLYGON_POLYLINE, sal_True, aNewRect, NULL );
             MapRect(rObj);
@@ -591,7 +632,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 				bAdditionalText = sal_True;
 			}
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_NotPrimitive, 0xa00 );		// Flags: Connector | HasSpt
+			ADD_SHAPE( 
+                ESCHER_ShpInst_NotPrimitive, 
+                nMirrorFlags | 0xa00 );		// Flags: mirror | Connector | HasSpt
 			::com::sun::star::awt::Rectangle aNewRect;
 			aPropOpt.CreatePolygonProperties( rObj.mXPropSet, ESCHER_CREATEPOLYGON_POLYPOLYGON, sal_True, aNewRect, NULL );
             MapRect(rObj);
@@ -605,7 +648,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			// ein GraphicObject kann auch ein ClickMe Element sein
 			if( rObj.IsEmptyPresObj() && ( ePageType == NORMAL ) )
 			{
-				ADD_SHAPE( ESCHER_ShpInst_Rectangle, 0x220 );				// Flags: HaveAnchor | HaveMaster
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_Rectangle, 
+                    nMirrorFlags | 0x220 );				// Flags: mirror | HaveAnchor | HaveMaster
 				sal_uInt32 nTxtBxId = mpEscherEx->QueryTextID( rObj.GetShapeRef(),
 														rObj.GetShapeId() );
 				aPropOpt.AddOpt( ESCHER_Prop_lTxid, nTxtBxId );
@@ -620,7 +665,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 					/* SJ #i34951#: because M. documents are not allowing GraphicObjects containing text, we
 					   have to create a simpe Rectangle with fill bitmap instead (while not allowing BitmapMode_Repeat).
 					*/
-					ADD_SHAPE( ESCHER_ShpInst_Rectangle, 0xa00 );			// Flags: Connector | HasSpt
+					ADD_SHAPE( 
+                        ESCHER_ShpInst_Rectangle, 
+                        nMirrorFlags | 0xa00 );			// Flags: mirror | Connector | HasSpt
 					if ( aPropOpt.CreateGraphicProperties( rObj.mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "GraphicURL" ) ), sal_True,  sal_True, sal_False ) )
 					{
 						aPropOpt.AddOpt( ESCHER_Prop_WrapText, ESCHER_WrapNone );
@@ -636,7 +683,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 				}
 				else
 				{
-					ADD_SHAPE( ESCHER_ShpInst_PictureFrame, 0xa00 );
+					ADD_SHAPE( 
+                        ESCHER_ShpInst_PictureFrame, 
+                        nMirrorFlags | 0xa00 ); // Flags: mirror | Connector | HasSpt
 					if ( aPropOpt.CreateGraphicProperties( rObj.mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "GraphicURL" ) ), sal_False, sal_True ) )
 						aPropOpt.AddOpt( ESCHER_Prop_LockAgainstGrouping, 0x800080 );
 				}
@@ -649,7 +698,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 		else if ( rObj.GetType().EqualsAscii( "drawing.Page" ))
 		{
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_Rectangle, 0xa00 );
+			ADD_SHAPE( 
+                ESCHER_ShpInst_Rectangle, 
+                nMirrorFlags | 0xa00 ); // Flags: mirror | Connector | HasSpt // pages should never be mirrored, but who knows...
 			aPropOpt.AddOpt( ESCHER_Prop_LockAgainstGrouping, 0x40004 );
 			aPropOpt.AddOpt( ESCHER_Prop_fFillOK, 0x100001 );
 			aPropOpt.AddOpt( ESCHER_Prop_fNoFillHitTest, 0x110011 );
@@ -665,7 +716,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
 			if( rObj.IsEmptyPresObj() && ( ePageType == NORMAL ) )
 			{
-				ADD_SHAPE( ESCHER_ShpInst_Rectangle, 0x220 );				// Flags: HaveAnchor | HaveMaster
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_Rectangle, 
+                    nMirrorFlags | 0x220 );				// Flags: mirror | HaveAnchor | HaveMaster
 				sal_uInt32 nTxtBxId = mpEscherEx->QueryTextID( rObj.GetShapeRef(),
 														rObj.GetShapeId() );
 				aPropOpt.AddOpt( ESCHER_Prop_lTxid, nTxtBxId );
@@ -677,8 +730,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 			{
 				//2do: could be made an option in HostAppData whether OLE object should be written or not
 				sal_Bool bAppOLE = sal_True;
-				ADD_SHAPE( ESCHER_ShpInst_PictureFrame,
-					0xa00 | (bAppOLE ? SHAPEFLAG_OLESHAPE : 0) );
+				ADD_SHAPE( 
+                    ESCHER_ShpInst_PictureFrame,
+					nMirrorFlags | 0xa00 | (bAppOLE ? SHAPEFLAG_OLESHAPE : 0) ); // Flags: mirror | Connector | HasSpt | OLE
 				if ( aPropOpt.CreateOLEGraphicProperties( rObj.GetShapeRef() ) )
 				{
 					if ( bAppOLE )
@@ -705,7 +759,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 				break;
 
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_PictureFrame, 0xa00 );
+			ADD_SHAPE( 
+                nMirrorFlags | ESCHER_ShpInst_PictureFrame, // TTTT: Probably nor mirror needed, check
+                0xa00 ); // Flags: Connector | HasSpt
 
                 if ( aPropOpt.CreateGraphicProperties( rObj.mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Bitmap" ) ), sal_False ) )
 				aPropOpt.AddOpt( ESCHER_Prop_LockAgainstGrouping, 0x800080 );
@@ -714,7 +770,9 @@ sal_uInt32 ImplEESdrWriter::ImplWriteSha
 		{
 			rObj.SetAngle( 0 );
 			mpEscherEx->OpenContainer( ESCHER_SpContainer );
-			ADD_SHAPE( ESCHER_ShpInst_PictureFrame, 0xa00 );
+			ADD_SHAPE( 
+                ESCHER_ShpInst_PictureFrame, 
+                nMirrorFlags | 0xa00 ); // Flags: mirror | Connector | HasSpt
 			if ( aPropOpt.CreateGraphicProperties( rObj.mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "MetaFile" ) ), sal_False ) )
 				aPropOpt.AddOpt( ESCHER_Prop_LockAgainstGrouping, 0x800080 );
 		}

Modified: incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/msdffimp.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/msdffimp.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/msdffimp.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/filter/source/msfilter/msdffimp.cxx Wed Nov 21 15:42:23 2012
@@ -4183,6 +4183,38 @@ SdrObject* SvxMSDffManager::ImportObj( S
     return pRet;
 }
 
+void SvxMSDffManager::ApplyRotationAndMirror(
+    SdrObject& rTarget,
+    const basegfx::B2DPoint& rCenter,
+    sal_Int32 nAngle, // in old DrawingLayer notation
+    bool bFlipHorizontal,
+    bool bFlipVertical)
+{
+    if(nAngle || bFlipHorizontal || bFlipVertical)
+    {
+        basegfx::B2DHomMatrix aTransform;
+        aTransform.translate(-rCenter);
+
+        if(nAngle)
+        {
+            aTransform.rotate((-nAngle * F_PI) / 18000.0);
+        }
+
+        if(bFlipHorizontal)
+        {
+            aTransform.scale(-1.0, 1.0);
+        }
+
+        if(bFlipVertical)
+        {
+            aTransform.scale(1.0, -1.0);
+        }
+
+        aTransform.translate(rCenter);
+        sdr::legacy::transformSdrObject(rTarget, aTransform);
+    }
+}
+
 SdrObject* SvxMSDffManager::ImportGroup( const DffRecordHeader& rHd, SvStream& rSt, void* pClientData,
 	basegfx::B2DRange& rClientRange, const basegfx::B2DRange& rGlobalChildRange,
 												int nCalledByGroup, sal_Int32* pShapeId )
@@ -4262,36 +4294,14 @@ SdrObject* SvxMSDffManager::ImportGroup(
 				aRecHd2.SeekToEndOfRecord( rSt );
 			}
 
-			if ( nGroupRotateAngle )
-			{
-				basegfx::B2DHomMatrix aTransform;
-
-				aTransform.translate(-aClientRange.getCenter());
-				aTransform.rotate((-nGroupRotateAngle * F_PI) / 18000.0);
-				aTransform.translate(aClientRange.getCenter());
-
-				sdr::legacy::transformSdrObject(*pRet, aTransform);
-			}
-			if ( nSpFlags & SP_FFLIPV )		// Vertikal gespiegelt?
-			{	// BoundRect in aBoundRect
-                basegfx::B2DHomMatrix aTransform;
-
-				aTransform.translate(0.0, -aClientRange.getCenterY());
-				aTransform.scale(1.0, -1.0);
-				aTransform.translate(0.0, aClientRange.getCenterY());
+            const basegfx::B2DPoint aCenter(aClientRange.getCenter());
 
-				sdr::legacy::transformSdrObject(*pRet, aTransform);
-			}
-			if ( nSpFlags & SP_FFLIPH )		// Horizontal gespiegelt?
-			{	// BoundRect in aBoundRect
-                basegfx::B2DHomMatrix aTransform;
-
-				aTransform.translate(-aClientRange.getCenterX(), 0.0);
-				aTransform.scale(-1.0, 1.0);
-				aTransform.translate(aClientRange.getCenterX(), 0.0);
-
-				sdr::legacy::transformSdrObject(*pRet, aTransform);
-			}
+            ApplyRotationAndMirror(
+                *pRet,
+                aCenter,
+                nGroupRotateAngle,
+                nSpFlags & SP_FFLIPH,
+                nSpFlags & SP_FFLIPV);
 		}
 	}
 	return pRet;
@@ -4861,51 +4871,22 @@ SdrObject* SvxMSDffManager::ImportShape(
 
 					if( bIsConnector )
 					{
-						if( nObjectRotation )
-						{
-							basegfx::B2DHomMatrix aTransform;
+                        const basegfx::B2DPoint aCenter(aObjData.aBoundRect.getCenter());
 
-							aTransform.translate(-aObjData.aBoundRect.getCenter());
-							aTransform.rotate((-nObjectRotation * F_PI) / 18000.0);
-							aTransform.translate(aObjData.aBoundRect.getCenter());
+                        ApplyRotationAndMirror(
+                            *pRet,
+                            aCenter,
+                            nObjectRotation,
+                            nSpFlags & SP_FFLIPH,
+                            nSpFlags & SP_FFLIPV);
+                        // #120437# reset rotation, it is part of the path and shall not be applied again
+                        nObjectRotation = 0;
 
-							sdr::legacy::transformSdrObject(*pRet, aTransform);
-                            
-                            // #120437# reset rotation, it is part of the path and shall not be applied again
-                            nObjectRotation = 0;
-						}
-
-                        // Horizontal gespiegelt?
-						if ( nSpFlags & SP_FFLIPH )
-						{
-							const basegfx::B2DRange aSnapRange(sdr::legacy::GetSnapRange(*pRet));
-							basegfx::B2DHomMatrix aTransform;
-
-							aTransform.translate(-aSnapRange.getCenterX(), 0.0);
-							aTransform.scale(-1.0, 1.0);
-							aTransform.translate(aSnapRange.getCenterX(), 0.0);
-
-							sdr::legacy::transformSdrObject(*pRet, aTransform);
-                            
-                            // #120437# reset hor filp
-                            nSpFlags &= ~SP_FFLIPH;
-						}
+                        // #120437# reset hor filp
+                        nSpFlags &= ~SP_FFLIPH;
 
-                        // Vertikal gespiegelt?
-						if ( nSpFlags & SP_FFLIPV )
-						{
-							const basegfx::B2DRange aSnapRange(sdr::legacy::GetSnapRange(*pRet));
-							basegfx::B2DHomMatrix aTransform;
-
-							aTransform.translate(0.0, -aSnapRange.getCenterY());
-							aTransform.scale(1.0, -1.0);
-							aTransform.translate(0.0, aSnapRange.getCenterY());
-
-							sdr::legacy::transformSdrObject(*pRet, aTransform);
-                            
-                            // #120437# reset ver filp
-                            nSpFlags &= ~SP_FFLIPV;
-						}
+                        // #120437# reset ver filp
+                        nSpFlags &= ~SP_FFLIPV;
 
                         const basegfx::B2DPolyPolygon aPoly( SdrObjCustomShape::GetLineGeometry( (SdrObjCustomShape*)pRet, sal_True ) );
                         deleteSdrObjectSafeAndClearPointer( pRet );
@@ -5001,42 +4982,16 @@ SdrObject* SvxMSDffManager::ImportShape(
 				}
 			}
 
-			if ( pRet )
+			if(pRet && (nObjectRotation || nSpFlags & (SP_FFLIPH|SP_FFLIPV)))
 			{
-				if( nObjectRotation )
-				{
-					basegfx::B2DHomMatrix aTransform;
-
-					aTransform.translate(-aObjData.aBoundRect.getCenter());
-					aTransform.rotate((-nObjectRotation * F_PI) / 18000.0);
-					aTransform.translate(aObjData.aBoundRect.getCenter());
-
-					sdr::legacy::transformSdrObject(*pRet, aTransform);
-				}
-				// Horizontal gespiegelt?
-				if ( nSpFlags & SP_FFLIPH )
-				{
-					const basegfx::B2DRange aSnapRange(sdr::legacy::GetSnapRange(*pRet));
-					basegfx::B2DHomMatrix aTransform;
+                const basegfx::B2DPoint aCenter(aObjData.aBoundRect.getCenter());
 
-					aTransform.translate(-aSnapRange.getCenterX(), 0.0);
-					aTransform.scale(-1.0, 1.0);
-					aTransform.translate(aSnapRange.getCenterX(), 0.0);
-
-					sdr::legacy::transformSdrObject(*pRet, aTransform);
-				}
-				// Vertikal gespiegelt?
-				if ( nSpFlags & SP_FFLIPV )
-				{
-					const basegfx::B2DRange aSnapRange(sdr::legacy::GetSnapRange(*pRet));
-					basegfx::B2DHomMatrix aTransform;
-
-					aTransform.translate(0.0, -aSnapRange.getCenterY());
-					aTransform.scale(1.0, -1.0);
-					aTransform.translate(0.0, aSnapRange.getCenterY());
-
-					sdr::legacy::transformSdrObject(*pRet, aTransform);
-				}
+                ApplyRotationAndMirror(
+                    *pRet,
+                    aCenter,
+                    nObjectRotation,
+                    nSpFlags & SP_FFLIPH,
+                    nSpFlags & SP_FFLIPV);
 			}
 		}
 	}

Modified: incubator/ooo/branches/alg/aw080/main/offapi/com/sun/star/drawing/EnhancedCustomShapeGeometry.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/offapi/com/sun/star/drawing/EnhancedCustomShapeGeometry.idl?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/offapi/com/sun/star/drawing/EnhancedCustomShapeGeometry.idl (original)
+++ incubator/ooo/branches/alg/aw080/main/offapi/com/sun/star/drawing/EnhancedCustomShapeGeometry.idl Wed Nov 21 15:42:23 2012
@@ -64,10 +64,14 @@ service EnhancedCustomShapeGeometry
 	[optional, property] ::com::sun::star::awt::Rectangle ViewBox;
 
 	/** This property specifies if the orientation of the shape is horizontal mirrored.
+        @deprecated : This property is now part of the shape geometry (negative scale in X)
+        It will always return sal_False now.
 	*/
 	[optional, property] boolean MirroredX;
 
 	/** This property specifies if the orientation of the shape is vertical mirrored.
+        @deprecated : This property is now part of the shape geometry (negative scale in Y)
+        It will always return sal_False now.
 	*/
 	[optional, property] boolean MirroredY;
 

Modified: incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/customshapeproperties.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/customshapeproperties.hxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/customshapeproperties.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/customshapeproperties.hxx Wed Nov 21 15:42:23 2012
@@ -127,8 +127,10 @@ public:
 	OptValue< GeomRect >&				getTextRect(){ return maTextRect; };
 	std::vector< Path2D >&				getPath2DList(){ return maPath2DList; };
 	std::vector< com::sun::star::drawing::EnhancedCustomShapeSegment >& getSegments(){ return maSegments; };
-	void								setMirroredX( sal_Bool bMirroredX ) { mbMirroredX = bMirroredX; };
-	void								setMirroredY( sal_Bool bMirroredY ) { mbMirroredY = bMirroredY; };
+
+    //  TTTT: MirrorX/Y removed
+	//void								setMirroredX( sal_Bool bMirroredX ) { mbMirroredX = bMirroredX; };
+	//void								setMirroredY( sal_Bool bMirroredY ) { mbMirroredY = bMirroredY; };
 
     // #119920# Add missing extra text rotation
     void setTextRotation(sal_Int32 nTextRotation) { mnTextRotation = nTextRotation; }
@@ -149,8 +151,10 @@ private:
 
 	std::vector< com::sun::star::drawing::EnhancedCustomShapeSegment >
 									maSegments;
-	sal_Bool						mbMirroredX;
-	sal_Bool						mbMirroredY;
+
+    //  TTTT: MirrorX/Y removed
+	//sal_Bool						mbMirroredX;
+	//sal_Bool						mbMirroredY;
 
     // #119920# Add missing extra text rotation
     sal_Int32                       mnTextRotation;

Modified: incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/shape.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/shape.hxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/shape.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/inc/oox/drawingml/shape.hxx Wed Nov 21 15:42:23 2012
@@ -97,7 +97,8 @@ public:
     void                            setPosition( com::sun::star::awt::Point nPosition ){ maPosition = nPosition; }
     void                            setSize( com::sun::star::awt::Size aSize ){ maSize = aSize; }
     void                            setRotation( sal_Int32 nRotation ) { mnRotation = nRotation; }
-    void                            setFlip( sal_Bool bFlipH, sal_Bool bFlipV ) { mbFlipH = bFlipH; mbFlipV = bFlipV; }
+    //  TTTT: MirrorX/Y removed
+    //void                            setFlip( sal_Bool bFlipH, sal_Bool bFlipV ) { mbFlipH = bFlipH; mbFlipV = bFlipV; }
     void                            addChild( const ShapePtr pChildPtr ) { maChildren.push_back( pChildPtr ); }
     std::vector< ShapePtr >&        getChildren() { return maChildren; }
 
@@ -211,8 +212,9 @@ private:
     ChartShapeInfoRef   mxChartShapeInfo;   /// Additional data for chart shapes.
 
     sal_Int32                       mnRotation;
-    sal_Bool                        mbFlipH;
-    sal_Bool                        mbFlipV;
+    //  TTTT: MirrorX/Y removed
+    //sal_Bool                        mbFlipH;
+    //sal_Bool                        mbFlipV;
 	sal_Bool						mbHidden;
 };
 

Modified: incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/customshapeproperties.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/customshapeproperties.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/customshapeproperties.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/customshapeproperties.cxx Wed Nov 21 15:42:23 2012
@@ -43,9 +43,9 @@ using namespace ::com::sun::star::drawin
 namespace oox { namespace drawingml {
 
 CustomShapeProperties::CustomShapeProperties()
-: mbMirroredX	( sal_False )
+: /*mbMirroredX	( sal_False )  //  TTTT: MirrorX/Y removed
 , mbMirroredY	( sal_False )
-, mnTextRotation(0) // #119920# Add missing extra text rotation
+, */mnTextRotation(0) // #119920# Add missing extra text rotation
 {
 }
 CustomShapeProperties::~CustomShapeProperties()
@@ -97,8 +97,9 @@ void CustomShapeProperties::pushToPropSe
 
         PropertyMap aPropertyMap;
         
-        aPropertyMap[ PROP_MirroredX ] <<= Any( mbMirroredX );
-        aPropertyMap[ PROP_MirroredY ] <<= Any( mbMirroredY );
+        //  TTTT: MirrorX/Y removed
+        //aPropertyMap[ PROP_MirroredX ] <<= Any( mbMirroredX );
+        //aPropertyMap[ PROP_MirroredY ] <<= Any( mbMirroredY );
 
         if(mnTextRotation)
         {
@@ -161,8 +162,10 @@ void CustomShapeProperties::pushToPropSe
 		sal_uInt32 i;
 		PropertyMap aPropertyMap;
         aPropertyMap[ PROP_Type ] <<= CREATE_OUSTRING( "non-primitive" );
-		aPropertyMap[ PROP_MirroredX ] <<= Any( mbMirroredX );
-		aPropertyMap[ PROP_MirroredY ] <<= Any( mbMirroredY );
+
+        //  TTTT: MirrorX/Y removed
+		//aPropertyMap[ PROP_MirroredX ] <<= Any( mbMirroredX );
+		//aPropertyMap[ PROP_MirroredY ] <<= Any( mbMirroredY );
 
         if(mnTextRotation)
         {

Modified: incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/shape.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/shape.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/shape.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/shape.cxx Wed Nov 21 15:42:23 2012
@@ -76,8 +76,8 @@ Shape::Shape( const sal_Char* pServiceNa
 , mnSubTypeIndex( -1 )
 , meFrameType( FRAMETYPE_GENERIC )
 , mnRotation( 0 )
-, mbFlipH( false )
-, mbFlipV( false )
+//, mbFlipH( false ) //  TTTT: MirrorX/Y removed
+//, mbFlipV( false )
 , mbHidden( false )
 {
     if ( pServiceName )
@@ -196,8 +196,8 @@ void Shape::applyShapeReference( const S
     maSize = rReferencedShape.maSize;
     maPosition = rReferencedShape.maPosition;
     mnRotation = rReferencedShape.mnRotation;
-    mbFlipH = rReferencedShape.mbFlipH;
-    mbFlipV = rReferencedShape.mbFlipV;
+    //mbFlipH = rReferencedShape.mbFlipH; //  TTTT: MirrorX/Y removed
+    //mbFlipV = rReferencedShape.mbFlipV;
 	mbHidden = rReferencedShape.mbHidden;
 }
 
@@ -284,7 +284,7 @@ Reference< XShape > Shape::createAndInse
             aSize.Height ? aSize.Height / 360.0 : 1.0 );
     }
 
-    if( mbFlipH || mbFlipV || mnRotation != 0)
+    if( /*mbFlipH || mbFlipV || //  TTTT: MirrorX/Y removed*/ mnRotation != 0)
     {
         // calculate object's center
         basegfx::B2DPoint aCenter(0.5, 0.5);
@@ -293,11 +293,12 @@ Reference< XShape > Shape::createAndInse
         // center object at origin
         aTransformation.translate( -aCenter );
 
-        if( !bIsCustomShape && ( mbFlipH || mbFlipV ) )
-        {
-            // mirror around object's center
-            aTransformation.scale( mbFlipH ? -1.0 : 1.0, mbFlipV ? -1.0 : 1.0 );
-        }
+        //  TTTT: MirrorX/Y removed
+        //if( !bIsCustomShape && ( mbFlipH || mbFlipV ) )
+        //{
+        //    // mirror around object's center
+        //    aTransformation.scale( mbFlipH ? -1.0 : 1.0, mbFlipV ? -1.0 : 1.0 );
+        //}
 
         if( mnRotation != 0 )
         {
@@ -471,10 +472,11 @@ Reference< XShape > Shape::createAndInse
 
         if( bIsCustomShape )
 		{
-			if ( mbFlipH )
-				mpCustomShapePropertiesPtr->setMirroredX( sal_True );
-			if ( mbFlipV )
-				mpCustomShapePropertiesPtr->setMirroredY( sal_True );
+            //  TTTT: MirrorX/Y removed
+			//if ( mbFlipH )
+			//	mpCustomShapePropertiesPtr->setMirroredX( sal_True );
+			//if ( mbFlipV )
+			//	mpCustomShapePropertiesPtr->setMirroredY( sal_True );
 
             // #119920# Handle missing text rotation
             if(getTextBody())

Modified: incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/transform2dcontext.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/transform2dcontext.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/transform2dcontext.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/source/drawingml/transform2dcontext.cxx Wed Nov 21 15:42:23 2012
@@ -46,7 +46,8 @@ Transform2DContext::Transform2DContext( 
 {
     AttributeList aAttributeList( xAttribs );
 	mrShape.setRotation( aAttributeList.getInteger( XML_rot, 0 ) );	// 60000ths of a degree Positive angles are clockwise; negative angles are counter-clockwise
-	mrShape.setFlip( aAttributeList.getBool( XML_flipH, sal_False ), aAttributeList.getBool( XML_flipV, sal_False ) );
+	//  TTTT: MirrorX/Y removed
+    //mrShape.setFlip( aAttributeList.getBool( XML_flipH, sal_False ), aAttributeList.getBool( XML_flipV, sal_False ) );
 }
 
 Reference< XFastContextHandler > Transform2DContext::createFastChildContext( sal_Int32 aElementToken, const Reference< XFastAttributeList >& xAttribs ) throw (SAXException, RuntimeException)

Modified: incubator/ooo/branches/alg/aw080/main/oox/source/export/shapes.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/source/export/shapes.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/source/export/shapes.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/source/export/shapes.cxx Wed Nov 21 15:42:23 2012
@@ -455,8 +455,7 @@ ShapeExport& ShapeExport::WriteCustomSha
     sal_Bool bIsDefaultObject = EscherPropertyContainer::IsDefaultObject( pShape );
     sal_Bool bPredefinedHandlesUsed = TRUE;
     OUString sShapeType;
-    sal_uInt32 nMirrorFlags = 0;
-    MSO_SPT eShapeType = EscherPropertyContainer::GetCustomShapeType( xShape, nMirrorFlags, sShapeType );
+    MSO_SPT eShapeType = EscherPropertyContainer::GetCustomShapeType( xShape, sShapeType );
     const char* sPresetShape = lcl_GetPresetGeometry( USS( sShapeType ) );
     DBG(printf("custom shape type: %s ==> %s\n", USS( sShapeType ), sPresetShape));
     Sequence< PropertyValue > aGeometrySeq;
@@ -498,7 +497,10 @@ ShapeExport& ShapeExport::WriteCustomSha
 
     // visual shape properties
     pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
+
+    // TTTT: Will this take mirrorings into account...?
     WriteShapeTransformation( xShape );
+
     if( nAdjustmentValuesIndex != -1 )
         WritePresetShape( sPresetShape, eShapeType, bPredefinedHandlesUsed, nAdjustmentsWhichNeedsToBeConverted, aGeometrySeq[ nAdjustmentValuesIndex ] );
     else

Modified: incubator/ooo/branches/alg/aw080/main/oox/source/token/properties.txt
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/oox/source/token/properties.txt?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/oox/source/token/properties.txt (original)
+++ incubator/ooo/branches/alg/aw080/main/oox/source/token/properties.txt Wed Nov 21 15:42:23 2012
@@ -274,8 +274,6 @@ MaxFieldCount
 MaxTextLen
 MediaType
 MinorTickmarks
-MirroredX
-MirroredY
 MissingValueTreatment
 Model
 ModifyPasswordHash

Modified: incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/eppt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/eppt.cxx?rev=1412154&r1=1412153&r2=1412154&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/eppt.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/sd/source/filter/eppt/eppt.cxx Wed Nov 21 15:42:23 2012
@@ -88,31 +88,31 @@ using namespace com::sun::star;
 
 static PHLayout pPHLayout[] =
 {
-	{ EPP_LAYOUT_TITLESLIDE,			{ 0x0d, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x10, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, sal_True, sal_True, sal_True },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_BLANCSLIDE,			{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, sal_False, sal_False, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x16, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x14, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x15, 0x0d, 0x0e, sal_True, sal_False, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x16, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x16, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_False, sal_False },
-	{ EPP_LAYOUT_RIGHTCOLUMN2ROWS,		{ 0x0d, 0x0e, 0x13, 0x13, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2ROWSANDTITLE,			{ 0x0d, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_LEFTCOLUMN2ROWS,		{ 0x0d, 0x13, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TOPROW2COLUMN,			{ 0x0d, 0x13, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2ROWSANDTITLE,			{ 0x0d, 0x0e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_4OBJECTS,				{ 0x0d, 0x13, 0x13, 0x13, 0x13, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, sal_True, sal_False, sal_False },
-	{ EPP_LAYOUT_ONLYTITLE,				{ 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, sal_True, sal_False, sal_False },
-	{ EPP_LAYOUT_BLANCSLIDE,			{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, sal_False, sal_False, sal_False },
-	{ EPP_LAYOUT_TITLERIGHT2BODIESLEFT, { 0x11, 0x12, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x11, 0x12, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TITLERIGHTBODYLEFT,	{ 0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x11, 0x12, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x12, sal_True, sal_True, sal_False },
-	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x16, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x16, 0x0d, 0x12, sal_True, sal_True, sal_False }
+	{ EPP_LAYOUT_TITLESLIDE,			{ 0x0d, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x10, true, true, false },
+	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, true, true, true },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_BLANCSLIDE,			{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, false, false, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x16, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x14, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x15, 0x0d, 0x0e, true, false, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x16, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x16, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x0e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, false, false },
+	{ EPP_LAYOUT_RIGHTCOLUMN2ROWS,		{ 0x0d, 0x0e, 0x13, 0x13, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_2ROWSANDTITLE,			{ 0x0d, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_LEFTCOLUMN2ROWS,		{ 0x0d, 0x13, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_TOPROW2COLUMN,			{ 0x0d, 0x13, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_2ROWSANDTITLE,			{ 0x0d, 0x0e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, true, false },
+	{ EPP_LAYOUT_4OBJECTS,				{ 0x0d, 0x13, 0x13, 0x13, 0x13, 0x00, 0x00, 0x00 }, 0x13, 0x0d, 0x0e, true, false, false },
+	{ EPP_LAYOUT_ONLYTITLE,				{ 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, true, false, false },
+	{ EPP_LAYOUT_BLANCSLIDE,			{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x0e, false, false, false },
+	{ EPP_LAYOUT_TITLERIGHT2BODIESLEFT, { 0x11, 0x12, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x14, 0x11, 0x12, true, true, false },
+	{ EPP_LAYOUT_TITLERIGHTBODYLEFT,	{ 0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x11, 0x12, true, true, false },
+	{ EPP_LAYOUT_TITLEANDBODYSLIDE,		{ 0x0d, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x00, 0x0d, 0x12, true, true, false },
+	{ EPP_LAYOUT_2COLUMNSANDTITLE,		{ 0x0d, 0x16, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0x16, 0x0d, 0x12, true, true, false }
 };
 
 //============================ PPTWriter ==================================
@@ -121,26 +121,68 @@ PPTWriter::PPTWriter( const std::vector<
             ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
             ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
             SvMemoryStream* pVBA, sal_uInt32 nCnvrtFlags ) :
-    mbStatus                ( sal_False ),
-	mbUseNewAnimations		( sal_True ),
-    mnLatestStatValue       ( 0 ),
+    mnStatMaxValue(0),
+    mnLatestStatValue(0),
+    maStyleSheetList(),
+    mpStyleSheet(0),
     mfMap100thMmToMs(1.0),
     maMap100thMmToMs(),
     maInvMap100thMmToMs(),
-    meLatestPageType        ( NORMAL ),
-    mXModel                 ( rXModel ),
-	mXStatusIndicator       ( rXStatInd ),
-	mbStatusIndicator       ( false ),
-	mpCurUserStrm           ( NULL ),
-	mpStrm                  ( NULL ),
-    mpPicStrm               ( NULL ),
-	mpPptEscherEx           ( NULL ),
-    mnVBAOleOfs             ( 0 ),
-    mpVBA                   ( pVBA ),
-    mnExEmbed               ( 0 ),
-    mpExEmbed               ( new SvMemoryStream ),
-    mnPagesWritten          ( 0 ),
-	mnTxId                  ( 0x7a2f64 )
+    maDestPageSize(),
+    maPageSize(),
+    maNotesPageSize(),
+    meLatestPageType(NORMAL),
+    maSlideNameList(),
+    maBaseURI(),
+    mXModel(rXModel),
+	mXStatusIndicator(rXStatInd),
+    mXDrawPagesSupplier(),
+    mXMasterPagesSupplier(),
+    mXDrawPages(),
+    mXDrawPage(),
+    mXPagePropSet(),
+    mXBackgroundPropSet(),
+    mXShapes(),
+    mXShape(),
+    mXText(),
+    mXCursor(),
+    mXCursorText(),
+    mXCursorPropSet(),
+    mXTextField(),
+    maObjectRange(),
+    mnMirrorFlags(0),
+    mfObjectRotation(0.0),
+    mType(),
+    mnTextStyle(0),
+    mnTextSize(0),
+    mrStg(),
+    mpCurUserStrm(0),
+    mpStrm(0),
+    mpPicStrm(0),
+    mpPptEscherEx(0),
+    maExOleObj(),
+    mnVBAOleOfs(0),
+    mpVBA(pVBA),
+    mnExEmbed(0),
+    mpExEmbed(new SvMemoryStream),
+    mnPages(0),
+    mnMasterPages(0),
+    mnDrawings(0),
+    mnPagesWritten(0),
+    mnUniqueSlideIdentifier(0),
+    mnTxId(0x7a2f64),
+    mnDiaMode(0),
+    mnShapeMasterTitle(0),
+    mnShapeMasterBody(0),
+    maHyperlink(),
+    maFontCollection(),
+    maSoundCollection(),
+    mbStatus(false),
+    mbUseNewAnimations(true),
+    mbPresObj(false),
+    mbEmptyPresObj(false),
+    mbStatusIndicator(false),
+    mbFontIndependentLineSpacing(false)
 {
     mfMap100thMmToMs = OutputDevice::GetFactorLogicToLogic(MAP_100TH_MM, MAP_INCH) * 576.0;
     maMap100thMmToMs = basegfx::tools::createScaleB2DHomMatrix(mfMap100thMmToMs, mfMap100thMmToMs);
@@ -307,7 +349,7 @@ static inline sal_uInt32 PPTtoEMU( sal_I
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateCurrentUserStream()
+bool PPTWriter::ImplCreateCurrentUserStream()
 {
     mpCurUserStrm = mrStg->OpenSotStream( String( RTL_CONSTASCII_USTRINGPARAM( "Current User" ) ) );
     if ( !mpCurUserStrm )
@@ -339,7 +381,7 @@ sal_Bool PPTWriter::ImplCreateCurrentUse
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateDocumentSummaryInformation( sal_uInt32 nCnvrtFlags )
+bool PPTWriter::ImplCreateDocumentSummaryInformation( sal_uInt32 nCnvrtFlags )
 {
     uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
         mXModel, uno::UNO_QUERY_THROW);
@@ -389,7 +431,7 @@ sal_Bool PPTWriter::ImplCreateDocumentSu
 		}
     }
 
-    return sal_True;
+    return true;
 }
 
 // ---------------------------------------------------------------------------------------------
@@ -415,17 +457,17 @@ void PPTWriter::ImplCreateHeaderFooterSt
 	{
 		rtl::OUString aString;
         ::com::sun::star::uno::Any aAny;
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "HeaderText" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "HeaderText" ) ), true ) )
 		{
             if ( aAny >>= aString )
 				PPTWriter::WriteCString( rStrm, aString, 1 );
 		}
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FooterText" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FooterText" ) ), true ) )
 		{
             if ( aAny >>= aString )
 				PPTWriter::WriteCString( rStrm, aString, 2 );
 		}
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "DateTimeText" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "DateTimeText" ) ), true ) )
 		{
             if ( aAny >>= aString )
 				PPTWriter::WriteCString( rStrm, aString, 0 );
@@ -439,37 +481,37 @@ void PPTWriter::ImplCreateHeaderFooters(
 {
 	if ( rXPagePropSet.is() )
 	{
-		sal_Bool bVal = sal_False;
+		bool bVal = false;
 		sal_uInt32 nVal = 0;
         ::com::sun::star::uno::Any aAny;
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsHeaderVisible" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsHeaderVisible" ) ), true ) )
 		{
 			if ( ( aAny >>= bVal ) && bVal )
 				nVal |= 0x100000;
 		}
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsFooterVisible" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsFooterVisible" ) ), true ) )
 		{
 			if ( ( aAny >>= bVal ) && bVal )
 				nVal |= 0x200000;
 		}
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsDateTimeVisible" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsDateTimeVisible" ) ), true ) )
 		{
 			if ( ( aAny >>= bVal ) && bVal )
 				nVal |= 0x010000;
 		}
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsPageNumberVisible" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsPageNumberVisible" ) ), true ) )
 		{
 			if ( ( aAny >>= bVal ) && bVal )
 				nVal |= 0x080000;
 		}
-        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsDateTimeFixed" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsDateTimeFixed" ) ), true ) )
 		{
 			if ( ( aAny >>= bVal ) && !bVal )
 				nVal |= 0x20000;
 			else
 				nVal |= 0x40000;
 		}
-		if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "DateTimeFormat" ) ), sal_True ) )
+		if ( PropValue::GetPropertyValue( aAny, rXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "DateTimeFormat" ) ), true ) )
 		{
 			sal_Int32 nFormat = *(sal_Int32*)aAny.getValue();
 			SvxDateFormat eDateFormat = (SvxDateFormat)( nFormat & 0xf );
@@ -519,7 +561,7 @@ void PPTWriter::ImplCreateHeaderFooters(
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateDocument()
+bool PPTWriter::ImplCreateDocument()
 {
     sal_uInt32 i;
     sal_uInt16 nSlideType = EPP_SLIDESIZE_TYPECUSTOM;
@@ -676,7 +718,7 @@ sal_Bool PPTWriter::ImplCreateDocument()
 //              }
                 if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsAutomatic" ) ) ) )
                 {
-                    sal_Bool bBool = sal_False;
+                    bool bBool = false;
                     mAny >>= bBool;
                     if ( !bBool )
                         nFlags |= 1;
@@ -684,14 +726,14 @@ sal_Bool PPTWriter::ImplCreateDocument()
 
                 if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsEndless" ) ) ) ) // muesste eigendlich heissen IsNotEndless !=)"�()&
                 {
-                    sal_Bool bBool = sal_False;
+                    bool bBool = false;
                     mAny >>= bBool;
                     if ( bBool )
                         nFlags |= 0x80;
                 }
                 if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFullScreen" ) ) ) )
                 {
-                    sal_Bool bBool = sal_False;
+                    bool bBool = false;
                     mAny >>= bBool;
                     if ( !bBool )
                         nFlags |= 0x11;
@@ -812,7 +854,7 @@ sal_Bool PPTWriter::ImplCreateDocument()
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateHyperBlob( SvMemoryStream& rStrm )
+bool PPTWriter::ImplCreateHyperBlob( SvMemoryStream& rStrm )
 {
     sal_uInt32 nCurrentOfs, nParaOfs, nParaCount = 0;
 // SfxOlePropertySection does this...
@@ -898,7 +940,7 @@ PHLayout& PPTWriter::ImplGetLayout(  con
 {
     ::com::sun::star::uno::Any aAny;
     sal_Int16 nLayout = 20;
-    if ( GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Layout" ) ) ), sal_True )
+    if ( GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Layout" ) ) ), true )
         aAny >>= nLayout;
 
     if ( ( nLayout >= 21 ) && ( nLayout <= 26 ) )   // NOTES _> HANDOUT6
@@ -913,7 +955,7 @@ PHLayout& PPTWriter::ImplGetLayout(  con
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateMaster( sal_uInt32 nPageNum )
+bool PPTWriter::ImplCreateMaster( sal_uInt32 nPageNum )
 {
     if ( !ImplGetPageByIndex( nPageNum, MASTER ) )
         return false;
@@ -995,8 +1037,8 @@ sal_Bool PPTWriter::ImplCreateMaster( sa
 
         mpPptEscherEx->BeginAtom();
 
-        sal_Bool bFirst = true;
-        sal_Bool bSimpleText = false;
+        bool bFirst = true;
+        bool bSimpleText = false;
 
         *mpStrm << (sal_uInt16)5;                           // paragraph count
 
@@ -1044,7 +1086,7 @@ sal_Bool PPTWriter::ImplCreateMaster( sa
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateMainNotes()
+bool PPTWriter::ImplCreateMainNotes()
 {
     if ( !ImplGetPageByIndex( 0, NOTICE ) )
         return false;
@@ -1199,7 +1241,7 @@ void ImplExportComments( uno::Reference<
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateSlide( sal_uInt32 nPageNum )
+bool PPTWriter::ImplCreateSlide( sal_uInt32 nPageNum )
 {
     ::com::sun::star::uno::Any aAny;
 
@@ -1210,7 +1252,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
 	nMasterID |= 0x80000000;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet;
-    sal_Bool bHasBackground = GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) );
+    bool bHasBackground = GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) );
     if ( bHasBackground )
         bHasBackground = ( aAny >>= aXBackgroundPropSet );
 
@@ -1221,7 +1263,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
 /* sj: Don't know what's IsBackgroundVisible for, have to ask cl
 	if ( GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundVisible" ) ) ) )
 	{
-		sal_Bool bBackgroundVisible;
+		bool bBackgroundVisible;
         if ( aAny >>= bBackgroundVisible )
 		{
 			if ( bBackgroundVisible )
@@ -1231,7 +1273,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
 */
 	if ( GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundObjectsVisible" ) ) ) )
 	{
-		sal_Bool bBackgroundObjectsVisible = sal_False;
+		bool bBackgroundObjectsVisible = false;
         if ( aAny >>= bBackgroundObjectsVisible )
 		{
 			if ( !bBackgroundObjectsVisible )
@@ -1251,7 +1293,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
             << (sal_uInt16)0;                       // padword
 
     mnDiaMode = 0;
-    sal_Bool bVisible = sal_True;
+    bool bVisible = true;
     ::com::sun::star::presentation::FadeEffect eFe = ::com::sun::star::presentation::FadeEffect_NONE;
 
     if ( GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Visible" ) ) ) )
@@ -1273,9 +1315,9 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
         aAny >>= eFe;
 
     sal_uInt32  nSoundRef = 0;
-    sal_Bool    bIsSound = sal_False;
-	sal_Bool	bStopSound = sal_False;
-	sal_Bool	bLoopSound = sal_False;
+    bool    bIsSound = false;
+	bool	bStopSound = false;
+	bool	bLoopSound = false;
 
 	if ( GetPropertyValue( aAny, mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Sound" ) ) ) )
 	{
@@ -1283,7 +1325,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
 		if ( aAny >>= aSoundURL )
 		{
 	        nSoundRef = maSoundCollection.GetId( aSoundURL );
-			bIsSound = sal_True;
+			bIsSound = true;
 		}
 		else
 			aAny >>= bStopSound;
@@ -1292,7 +1334,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
 		aAny >>= bLoopSound;
 
 
-    sal_Bool bNeedsSSSlideInfoAtom = ( bVisible == false )
+    bool bNeedsSSSlideInfoAtom = ( bVisible == false )
                                     || ( mnDiaMode == 2 )
                                     || ( bIsSound )
 									|| ( bStopSound )
@@ -1648,7 +1690,7 @@ sal_Bool PPTWriter::ImplCreateSlide( sal
 
 // ---------------------------------------------------------------------------------------------
 
-sal_Bool PPTWriter::ImplCreateNotes( sal_uInt32 nPageNum )
+bool PPTWriter::ImplCreateNotes( sal_uInt32 nPageNum )
 {
     if ( !ImplGetPageByIndex( nPageNum, NOTICE ) )
         return false;
@@ -1733,11 +1775,11 @@ void PPTWriter::ImplWriteBackground( ::c
         break;
 
         case ::com::sun::star::drawing::FillStyle_BITMAP :
-            aPropOpt.CreateGraphicProperties( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapURL" ) ), sal_True );
+            aPropOpt.CreateGraphicProperties( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapURL" ) ), true );
         break;
 
         case ::com::sun::star::drawing::FillStyle_HATCH :
-			aPropOpt.CreateGraphicProperties( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillHatch" ) ), sal_True );
+			aPropOpt.CreateGraphicProperties( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillHatch" ) ), true );
         break;
 
         case ::com::sun::star::drawing::FillStyle_SOLID :
@@ -1839,7 +1881,7 @@ void PPTWriter::ImplWriteOLE( sal_uInt32
                     //Initialize the graphic size which will be used on export
                     ::com::sun::star::awt::Size  aSize( pPtr->xShape->getSize() );
                     SvStorageRef xDest( new SvStorage( new SvMemoryStream(), true ) );
-                    sal_Bool bOk = SvxMSConvertOCXControls::WriteOCXStream( xDest, pPtr->xControlModel, aSize, aName );
+                    bool bOk = SvxMSConvertOCXControls::WriteOCXStream( xDest, pPtr->xControlModel, aSize, aName );
                     if ( bOk )
                         pStrm = xDest->CreateMemoryStream();
                 }
@@ -1872,7 +1914,7 @@ void PPTWriter::ImplWriteOLE( sal_uInt32
 // ---------------------------------------------------------------------------------------------
 // PersistantTable und UserEditAtom schreiben
 
-sal_Bool PPTWriter::ImplWriteAtomEnding()
+bool PPTWriter::ImplWriteAtomEnding()
 {
 
 #define EPP_LastViewTypeNone        0
@@ -2051,7 +2093,7 @@ void PPTExCharSheet::SetStyleSheet( cons
     rLev.mnFlags = aPortionObj.mnCharAttr;
 }
 
-void PPTExCharSheet::Write( SvStream& rSt, PptEscherEx*, sal_uInt16 nLev, sal_Bool, sal_Bool bSimpleText,
+void PPTExCharSheet::Write( SvStream& rSt, PptEscherEx*, sal_uInt16 nLev, bool, bool bSimpleText,
     const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rPagePropSet )
 {
     const PPTExCharLevel& rLev = maCharLevel[ nLev ];
@@ -2067,9 +2109,9 @@ void PPTExCharSheet::Write( SvStream& rS
     sal_uInt32 nFontColor = rLev.mnFontColor;
     if ( nFontColor == COL_AUTO )
     {
-        sal_Bool bIsDark = sal_False;
+        bool bIsDark = false;
         ::com::sun::star::uno::Any aAny;
-        if ( PropValue::GetPropertyValue( aAny, rPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundDark" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundDark" ) ), true ) )
             aAny >>= bIsDark;
         nFontColor = bIsDark ? 0xffffff : 0x000000;
     }
@@ -2095,7 +2137,7 @@ PPTExParaSheet::PPTExParaSheet( int nIns
     rBuProv     ( rProv ),
     mnInstance  ( nInstance )
 {
-    sal_Bool bHasBullet = false;
+    bool bHasBullet = false;
 
     sal_uInt16 nUpperDist = 0;
     sal_uInt16 nBulletChar = 0x2022;
@@ -2203,7 +2245,7 @@ void PPTExParaSheet::SetStyleSheet( cons
         sal_Int16 nLineSpacing = aParagraphObj.mnLineSpacing;
         if ( nLineSpacing > 0 ) // if nLinespacing is < 0 the linespacing is an absolute spacing
         {
-			sal_Bool bFixedLineSpacing = sal_False;
+			bool bFixedLineSpacing = false;
 			uno::Any aAny = rXPropSet->getPropertyValue( ::rtl::OUString(
 															 RTL_CONSTASCII_USTRINGPARAM(
 																 "FontIndependentLineSpacing" ) ) );
@@ -2281,7 +2323,7 @@ void PPTExParaSheet::SetStyleSheet( cons
     }
 }
 
-void PPTExParaSheet::Write( SvStream& rSt, PptEscherEx*, sal_uInt16 nLev, sal_Bool, sal_Bool bSimpleText,
+void PPTExParaSheet::Write( SvStream& rSt, PptEscherEx*, sal_uInt16 nLev, bool, bool bSimpleText,
     const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rPagePropSet )
 {
     const PPTExParaLevel& rLev = maParaLevel[ nLev ];
@@ -2317,9 +2359,9 @@ void PPTExParaSheet::Write( SvStream& rS
     sal_uInt32 nBulletColor = rLev.mnBulletColor;
     if ( nBulletColor == COL_AUTO )
     {
-        sal_Bool bIsDark = sal_False;
+        bool bIsDark = false;
         ::com::sun::star::uno::Any aAny;
-        if ( PropValue::GetPropertyValue( aAny, rPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundDark" ) ), sal_True ) )
+        if ( PropValue::GetPropertyValue( aAny, rPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundDark" ) ), true ) )
             aAny >>= bIsDark;
         nBulletColor = bIsDark ? 0xffffff : 0x000000;
     }
@@ -2384,7 +2426,7 @@ void PPTExStyleSheet::SetStyleSheet( con
     mpParaSheet[ nInstance ]->SetStyleSheet( rXPropSet, rFontCollection, nLevel, mpCharSheet[ nInstance ]->maCharLevel[ nLevel ] );
 }
 
-sal_Bool PPTExStyleSheet::IsHardAttribute( sal_uInt32 nInstance, sal_uInt32 nLevel, PPTExTextAttr eAttr, sal_uInt32 nValue )
+bool PPTExStyleSheet::IsHardAttribute( sal_uInt32 nInstance, sal_uInt32 nLevel, PPTExTextAttr eAttr, sal_uInt32 nValue )
 {
     const PPTExParaLevel& rPara = mpParaSheet[ nInstance ]->maParaLevel[ nLevel ];
     const PPTExCharLevel& rChar = mpCharSheet[ nInstance ]->maCharLevel[ nLevel ];
@@ -2470,7 +2512,7 @@ void PPTExStyleSheet::WriteTxCFStyleAtom
 // - exported function -
 // ---------------------
 
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool __LOADONCALLAPI ExportPPT( 
+extern "C" SAL_DLLPUBLIC_EXPORT bool __LOADONCALLAPI ExportPPT( 
     const std::vector< com::sun::star::beans::PropertyValue >& rMediaData, SvStorageRef& rSvStorage,
     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
     ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,