diff options
author | Muthu Subramanian <sumuthu@suse.com> | 2012-01-11 15:24:27 +0530 |
---|---|---|
committer | Muthu Subramanian <sumuthu@suse.com> | 2012-01-11 15:24:27 +0530 |
commit | 5c4d1b05faa8a3d704fc74a186a173f8cc019cc1 (patch) | |
tree | c664d2d1dcae3731f56f4fa12c415a7f3dc5b51a /svx | |
parent | ee24a236e1ebcc9585ed8e24cd73512e76a0303d (diff) |
n#734734: Text rotation fixes.
PPTX would need rotation of text _inside_ text/object
boundaries, rather than the rotation of the text/object itself.
Diffstat (limited to 'svx')
-rw-r--r-- | svx/inc/svx/svdoashp.hxx | 2 | ||||
-rw-r--r-- | svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx | 8 | ||||
-rw-r--r-- | svx/source/svdraw/svdoashp.cxx | 5 |
3 files changed, 12 insertions, 3 deletions
diff --git a/svx/inc/svx/svdoashp.hxx b/svx/inc/svx/svdoashp.hxx index 3d91549fa44d..013e1508239b 100644 --- a/svx/inc/svx/svdoashp.hxx +++ b/svx/inc/svx/svdoashp.hxx @@ -149,7 +149,7 @@ public: void SetMirroredY( const sal_Bool bMirroredY ); double GetObjectRotation() const; - double GetExtraTextRotation() const; + double GetExtraTextRotation( const bool bPreRotation = false ) const; TYPEINFO(); SdrObjCustomShape(); diff --git a/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx b/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx index 2e63da2fb9f7..85628caf7ce3 100644 --- a/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx +++ b/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx @@ -160,6 +160,14 @@ namespace sdr // #i101684# get the text range unrotated and absolute to the object range const basegfx::B2DRange aTextRange(getCorrectedTextBoundRect()); + // Rotation before scaling + if(!basegfx::fTools::equalZero(GetCustomShapeObj().GetExtraTextRotation(true))) + { + basegfx::B2DVector aTranslation(0.5, 0.5); + aTextBoxMatrix.translate( -aTranslation.getX(), -aTranslation.getY() ); + aTextBoxMatrix.rotate((360.0 - GetCustomShapeObj().GetExtraTextRotation(true)) * F_PI180); + aTextBoxMatrix.translate( aTranslation.getX(), aTranslation.getY() ); + } // give text object a size aTextBoxMatrix.scale(aTextRange.getWidth(), aTextRange.getHeight()); diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx index 5599ab3564e5..b810dbdf49a8 100644 --- a/svx/source/svdraw/svdoashp.cxx +++ b/svx/source/svdraw/svdoashp.cxx @@ -537,12 +537,13 @@ double SdrObjCustomShape::GetObjectRotation() const return fObjectRotation; } -double SdrObjCustomShape::GetExtraTextRotation() const +double SdrObjCustomShape::GetExtraTextRotation( const bool bPreRotation ) const { const com::sun::star::uno::Any* pAny; SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&)GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); const rtl::OUString sTextRotateAngle( RTL_CONSTASCII_USTRINGPARAM ( "TextRotateAngle" ) ); - pAny = rGeometryItem.GetPropertyValueByName( sTextRotateAngle ); + const rtl::OUString sTextPreRotateAngle( RTL_CONSTASCII_USTRINGPARAM ( "TextPreRotateAngle" ) ); + pAny = rGeometryItem.GetPropertyValueByName( bPreRotation ? sTextPreRotateAngle : sTextRotateAngle ); double fExtraTextRotateAngle = 0.0; if ( pAny ) *pAny >>= fExtraTextRotateAngle; |