summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-10-08 02:10:04 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-11-19 13:47:34 +0100
commit11699eb826a6477d9d785a1e864469933ba95c14 (patch)
tree5f8851bc71e70357b7a26287f47ffc68f7f53b54
parenta66097b7f92cb91fdc07d3e04bd9eb0d4a821369 (diff)
no createInstance calls any more in chart2/source/view creating shapes
Change-Id: I7978d607ecd9170fff37ff0be02cdfbec7ebb89b
-rw-r--r--chart2/source/view/inc/AbstractShapeFactory.hxx16
-rw-r--r--chart2/source/view/inc/DummyShapeFactory.hxx9
-rw-r--r--chart2/source/view/inc/ShapeFactory.hxx9
-rw-r--r--chart2/source/view/main/DummyShapeFactory.cxx11
-rw-r--r--chart2/source/view/main/ShapeFactory.cxx159
-rw-r--r--chart2/source/view/main/VTitle.cxx177
6 files changed, 221 insertions, 160 deletions
diff --git a/chart2/source/view/inc/AbstractShapeFactory.hxx b/chart2/source/view/inc/AbstractShapeFactory.hxx
index 03780eb3a9e4..5f915f032151 100644
--- a/chart2/source/view/inc/AbstractShapeFactory.hxx
+++ b/chart2/source/view/inc/AbstractShapeFactory.hxx
@@ -13,19 +13,22 @@
#include "PropertyMapper.hxx"
#include "VLineProperties.hxx"
#include "BaseGFXHelper.hxx"
+#include <com/sun/star/awt/Size.hpp>
+#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/chart2/XFormattedString.hpp>
#include <com/sun/star/drawing/Direction3D.hpp>
#include <com/sun/star/drawing/HomogenMatrix.hpp>
#include <com/sun/star/drawing/PointSequenceSequence.hpp>
#include <com/sun/star/drawing/PolyPolygonShape3D.hpp>
#include <com/sun/star/drawing/Position3D.hpp>
-#include <com/sun/star/awt/Size.hpp>
-#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/drawing/XDrawPage.hpp>
#include <com/sun/star/drawing/XShapes.hpp>
#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <rtl/ustring.hxx>
+
namespace chart {
@@ -190,6 +193,15 @@ public:
) = 0;
virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
+ createText( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xTarget2D,
+ const com::sun::star::awt::Size& rSize,
+ const com::sun::star::awt::Point& rPosition,
+ com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::chart2::XFormattedString > > xFormattedString,
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertySet > xTextProperties,
+ double nRotation, const OUString& aName ) = 0;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
createInvisibleRectangle(
const ::com::sun::star::uno::Reference<
::com::sun::star::drawing::XShapes >& xTarget
diff --git a/chart2/source/view/inc/DummyShapeFactory.hxx b/chart2/source/view/inc/DummyShapeFactory.hxx
index 0cc7b908f528..e3731f8a2c96 100644
--- a/chart2/source/view/inc/DummyShapeFactory.hxx
+++ b/chart2/source/view/inc/DummyShapeFactory.hxx
@@ -146,6 +146,15 @@ public:
);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
+ createText( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xTarget2D,
+ const com::sun::star::awt::Size& rSize,
+ const com::sun::star::awt::Point& rPosition,
+ com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::chart2::XFormattedString > > xFormattedString,
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertySet > xTextProperties,
+ double nRotation, const OUString& aName );
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
createInvisibleRectangle(
const ::com::sun::star::uno::Reference<
::com::sun::star::drawing::XShapes >& xTarget
diff --git a/chart2/source/view/inc/ShapeFactory.hxx b/chart2/source/view/inc/ShapeFactory.hxx
index fc4368356ad5..1cf87b417c5a 100644
--- a/chart2/source/view/inc/ShapeFactory.hxx
+++ b/chart2/source/view/inc/ShapeFactory.hxx
@@ -161,6 +161,15 @@ public:
);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
+ createText( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xTarget2D,
+ const com::sun::star::awt::Size& rSize,
+ const com::sun::star::awt::Point& rPosition,
+ com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::chart2::XFormattedString > > xFormattedString,
+ const com::sun::star::uno::Reference<
+ com::sun::star::beans::XPropertySet > xTextProperties,
+ double nRotation, const OUString& aName );
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
createInvisibleRectangle(
const ::com::sun::star::uno::Reference<
::com::sun::star::drawing::XShapes >& xTarget
diff --git a/chart2/source/view/main/DummyShapeFactory.cxx b/chart2/source/view/main/DummyShapeFactory.cxx
index eb855356cafd..4eb6283e774b 100644
--- a/chart2/source/view/main/DummyShapeFactory.cxx
+++ b/chart2/source/view/main/DummyShapeFactory.cxx
@@ -269,6 +269,17 @@ uno::Reference< drawing::XShape >
return new DummyXShape();
}
+
+uno::Reference< drawing::XShape >
+ DummyShapeFactory::createText( const uno::Reference< drawing::XShapes >& ,
+ const awt::Size& , const awt::Point& ,
+ uno::Sequence< uno::Reference< chart2::XFormattedString > > ,
+ const uno::Reference< beans::XPropertySet > ,
+ double , const OUString& )
+{
+ return new DummyXShape();
+}
+
} //namespace dummy
} //namespace chart
diff --git a/chart2/source/view/main/ShapeFactory.cxx b/chart2/source/view/main/ShapeFactory.cxx
index 5deac27ad5a9..a0abdafeb46f 100644
--- a/chart2/source/view/main/ShapeFactory.cxx
+++ b/chart2/source/view/main/ShapeFactory.cxx
@@ -22,6 +22,7 @@
#include "Stripe.hxx"
#include "CommonConverters.hxx"
#include "macros.hxx"
+#include "RelativeSizeHelper.hxx"
#include "PropertyMapper.hxx"
#include <comphelper/InlineContainer.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -37,7 +38,9 @@
#include <com/sun/star/drawing/ProjectionMode.hpp>
#include <com/sun/star/drawing/ShadeMode.hpp>
#include <com/sun/star/drawing/TextFitToSizeType.hpp>
+#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
#include <com/sun/star/drawing/TextureProjectionMode.hpp>
+#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/uno/Any.hxx>
@@ -2116,6 +2119,162 @@ uno::Reference< drawing::XShape >
return xShape;
}
+
+uno::Reference< drawing::XShape >
+ ShapeFactory::createText( const uno::Reference< drawing::XShapes >& xTarget,
+ const awt::Size& rSize,
+ const awt::Point& rPos,
+ uno::Sequence< uno::Reference< chart2::XFormattedString > > xFormattedString,
+ const uno::Reference<
+ beans::XPropertySet > xTextProperties,
+ double nRotation, const OUString& aName )
+{
+ //create shape and add to page
+ uno::Reference< drawing::XShape > xShape(
+ m_xShapeFactory->createInstance(
+ "com.sun.star.drawing.TextShape" ), uno::UNO_QUERY );
+ try
+ {
+ xTarget->add(xShape);
+
+ //set text and text properties
+ uno::Reference< text::XText > xText( xShape, uno::UNO_QUERY );
+ uno::Reference< text::XTextCursor > xTextCursor( xText->createTextCursor() );
+ uno::Reference< text::XTextRange > xTextRange( xTextCursor, uno::UNO_QUERY );
+ uno::Reference< beans::XPropertySet > xShapeProp( xShape, uno::UNO_QUERY );
+ if( !xText.is() || !xTextRange.is() || !xTextCursor.is() || !xShapeProp.is() || !xTextProperties.is() )
+ return xShape;
+
+ tPropertyNameValueMap aValueMap;
+ //fill line-, fill- and paragraph-properties into the ValueMap
+ {
+ tMakePropertyNameMap aNameMap = PropertyMapper::getPropertyNameMapForParagraphProperties();
+ aNameMap( PropertyMapper::getPropertyNameMapForFillAndLineProperties() );
+
+ PropertyMapper::getValueMap( aValueMap, aNameMap, xTextProperties );
+ }
+
+ //fill some more shape properties into the ValueMap
+ {
+ drawing::TextHorizontalAdjust eHorizontalAdjust = drawing::TextHorizontalAdjust_CENTER;
+ drawing::TextVerticalAdjust eVerticalAdjust = drawing::TextVerticalAdjust_CENTER;
+
+ aValueMap.insert( tPropertyNameValueMap::value_type( "TextHorizontalAdjust", uno::makeAny(eHorizontalAdjust) ) ); // drawing::TextHorizontalAdjust
+ aValueMap.insert( tPropertyNameValueMap::value_type( "TextVerticalAdjust", uno::makeAny(eVerticalAdjust) ) ); //drawing::TextVerticalAdjust
+ aValueMap.insert( tPropertyNameValueMap::value_type( "TextAutoGrowHeight", uno::makeAny(sal_True) ) ); // sal_Bool
+ aValueMap.insert( tPropertyNameValueMap::value_type( "TextAutoGrowWidth", uno::makeAny(sal_True) ) ); // sal_Bool
+
+ //set name/classified ObjectID (CID)
+ if( !aName.isEmpty() )
+ aValueMap.insert( tPropertyNameValueMap::value_type( "Name", uno::makeAny( aName ) ) ); //CID OUString
+ }
+
+ //set global title properties
+ {
+ tNameSequence aPropNames;
+ tAnySequence aPropValues;
+ PropertyMapper::getMultiPropertyListsFromValueMap( aPropNames, aPropValues, aValueMap );
+ PropertyMapper::setMultiProperties( aPropNames, aPropValues, xShapeProp );
+ }
+
+ sal_Bool bStackCharacters(sal_False);
+ try
+ {
+ xTextProperties->getPropertyValue( "StackCharacters" ) >>= bStackCharacters;
+ }
+ catch( const uno::Exception& e )
+ {
+ ASSERT_EXCEPTION( e );
+ }
+
+ if(bStackCharacters)
+ {
+ //if the characters should be stacked we use only the first character properties for code simplicity
+ if( xFormattedString.getLength()>0 )
+ {
+ OUString aLabel;
+ for( sal_Int32 nN=0; nN<xFormattedString.getLength();nN++ )
+ aLabel += xFormattedString[nN]->getString();
+ aLabel = ShapeFactory::getStackedString( aLabel, bStackCharacters );
+
+ xTextCursor->gotoEnd(false);
+ xText->insertString( xTextRange, aLabel, false );
+ xTextCursor->gotoEnd(true);
+ uno::Reference< beans::XPropertySet > xTargetProps( xShape, uno::UNO_QUERY );
+ uno::Reference< beans::XPropertySet > xSourceProps( xFormattedString[0], uno::UNO_QUERY );
+
+ PropertyMapper::setMappedProperties( xTargetProps, xSourceProps
+ , PropertyMapper::getPropertyNameMapForCharacterProperties() );
+
+ // adapt font size according to page size
+ awt::Size aOldRefSize;
+ if( xTextProperties->getPropertyValue( "ReferencePageSize") >>= aOldRefSize )
+ {
+ RelativeSizeHelper::adaptFontSizes( xTargetProps, aOldRefSize, rSize );
+ }
+ }
+ }
+ else
+ {
+ uno::Sequence< uno::Reference< text::XTextCursor > > aCursorList( xFormattedString.getLength() );
+ sal_Int32 nN = 0;
+ for( nN=0; nN<xFormattedString.getLength();nN++ )
+ {
+ xTextCursor->gotoEnd(false);
+ xText->insertString( xTextRange, xFormattedString[nN]->getString(), false );
+ xTextCursor->gotoEnd(true);
+ aCursorList[nN] = xText->createTextCursorByRange( uno::Reference< text::XTextRange >(xTextCursor,uno::UNO_QUERY) );
+ }
+ awt::Size aOldRefSize;
+ bool bHasRefPageSize =
+ ( xTextProperties->getPropertyValue( "ReferencePageSize") >>= aOldRefSize );
+
+ if( xFormattedString.getLength()>0 )
+ {
+ uno::Reference< beans::XPropertySet > xTargetProps( xShape, uno::UNO_QUERY );
+ uno::Reference< beans::XPropertySet > xSourceProps( xFormattedString[0], uno::UNO_QUERY );
+ PropertyMapper::setMappedProperties( xTargetProps, xSourceProps, PropertyMapper::getPropertyNameMapForCharacterProperties() );
+
+ // adapt font size according to page size
+ if( bHasRefPageSize )
+ {
+ RelativeSizeHelper::adaptFontSizes( xTargetProps, aOldRefSize, rSize );
+ }
+ }
+ }
+
+ // #i109336# Improve auto positioning in chart
+ float fFontHeight = 0.0;
+ if ( xShapeProp.is() && ( xShapeProp->getPropertyValue( "CharHeight" ) >>= fFontHeight ) )
+ {
+ fFontHeight *= ( 2540.0f / 72.0f ); // pt -> 1/100 mm
+ float fXFraction = 0.18f;
+ sal_Int32 nXDistance = static_cast< sal_Int32 >( ::rtl::math::round( fFontHeight * fXFraction ) );
+ float fYFraction = 0.30f;
+ sal_Int32 nYDistance = static_cast< sal_Int32 >( ::rtl::math::round( fFontHeight * fYFraction ) );
+ xShapeProp->setPropertyValue( "TextLeftDistance", uno::makeAny( nXDistance ) );
+ xShapeProp->setPropertyValue( "TextRightDistance", uno::makeAny( nXDistance ) );
+ xShapeProp->setPropertyValue( "TextUpperDistance", uno::makeAny( nYDistance ) );
+ xShapeProp->setPropertyValue( "TextLowerDistance", uno::makeAny( nYDistance ) );
+ }
+ sal_Int32 nXPos = rPos.X;
+ sal_Int32 nYPos = rPos.Y;
+
+ //set position matrix
+ //the matrix needs to be set at the end behind autogrow and such position influencing properties
+ ::basegfx::B2DHomMatrix aM;
+ aM.rotate( -nRotation*F_PI/180.0 );//#i78696#->#i80521#
+ aM.translate( nXPos, nYPos );
+ xShapeProp->setPropertyValue( "Transformation", uno::makeAny( B2DHomMatrixToHomogenMatrix3(aM) ) );
+ }
+ catch( const uno::Exception& e )
+ {
+ ASSERT_EXCEPTION( e );
+ }
+ return xShape;
+}
+
+
} //namespace chart
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/view/main/VTitle.cxx b/chart2/source/view/main/VTitle.cxx
index c95ff24b8c36..41d7eebeea23 100644
--- a/chart2/source/view/main/VTitle.cxx
+++ b/chart2/source/view/main/VTitle.cxx
@@ -21,13 +21,10 @@
#include "CommonConverters.hxx"
#include "macros.hxx"
#include "PropertyMapper.hxx"
-#include "ShapeFactory.hxx"
-#include "RelativeSizeHelper.hxx"
+#include "AbstractShapeFactory.hxx"
#include <com/sun/star/chart2/XFormattedString.hpp>
#include <rtl/math.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
-#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
#include <com/sun/star/text/ControlCharacter.hpp>
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/text/XTextCursor.hpp>
@@ -78,7 +75,7 @@ awt::Size VTitle::getUnrotatedSize() const //size before rotation
awt::Size VTitle::getFinalSize() const //size after rotation
{
- return ShapeFactory::getSizeAfterRotation(
+ return AbstractShapeFactory::getSizeAfterRotation(
m_xShape, m_fRotationAngleDegree );
}
@@ -111,168 +108,32 @@ void VTitle::createShapes(
const awt::Point& rPos
, const awt::Size& rReferenceSize )
{
- try
- {
- if(!m_xTitle.is())
- return;
-
- uno::Sequence< uno::Reference< XFormattedString > > aStringList = m_xTitle->getText();
- if(aStringList.getLength()<=0)
- return;
-
- //create shape and add to page
- uno::Reference< drawing::XShape > xShape(
- m_xShapeFactory->createInstance(
- "com.sun.star.drawing.TextShape" ), uno::UNO_QUERY );
- m_xTarget->add(xShape);
- m_xShape = xShape;
-
- //set text and text properties
- uno::Reference< text::XText > xText( xShape, uno::UNO_QUERY );
- uno::Reference< text::XTextCursor > xTextCursor( xText->createTextCursor() );
- uno::Reference< text::XTextRange > xTextRange( xTextCursor, uno::UNO_QUERY );
- uno::Reference< beans::XPropertySet > xShapeProp( xShape, uno::UNO_QUERY );
- uno::Reference< beans::XPropertySet > xTitleProperties( m_xTitle, uno::UNO_QUERY );
- if( !xText.is() || !xTextRange.is() || !xTextCursor.is() || !xShapeProp.is() || !xTitleProperties.is() )
- return;
-
- tPropertyNameValueMap aValueMap;
- //fill line-, fill- and paragraph-properties into the ValueMap
- {
- tMakePropertyNameMap aNameMap = PropertyMapper::getPropertyNameMapForParagraphProperties();
- aNameMap( PropertyMapper::getPropertyNameMapForFillAndLineProperties() );
-
- PropertyMapper::getValueMap( aValueMap, aNameMap, xTitleProperties );
- }
-
- //fill some more shape properties into the ValueMap
- {
- drawing::TextHorizontalAdjust eHorizontalAdjust = drawing::TextHorizontalAdjust_CENTER;
- drawing::TextVerticalAdjust eVerticalAdjust = drawing::TextVerticalAdjust_CENTER;
-
- aValueMap.insert( tPropertyNameValueMap::value_type( "TextHorizontalAdjust", uno::makeAny(eHorizontalAdjust) ) ); // drawing::TextHorizontalAdjust
- aValueMap.insert( tPropertyNameValueMap::value_type( "TextVerticalAdjust", uno::makeAny(eVerticalAdjust) ) ); //drawing::TextVerticalAdjust
- aValueMap.insert( tPropertyNameValueMap::value_type( "TextAutoGrowHeight", uno::makeAny(sal_True) ) ); // sal_Bool
- aValueMap.insert( tPropertyNameValueMap::value_type( "TextAutoGrowWidth", uno::makeAny(sal_True) ) ); // sal_Bool
-
- //set name/classified ObjectID (CID)
- if( !m_aCID.isEmpty() )
- aValueMap.insert( tPropertyNameValueMap::value_type( "Name", uno::makeAny( m_aCID ) ) ); //CID OUString
- }
-
- //set global title properties
- {
- tNameSequence aPropNames;
- tAnySequence aPropValues;
- PropertyMapper::getMultiPropertyListsFromValueMap( aPropNames, aPropValues, aValueMap );
- PropertyMapper::setMultiProperties( aPropNames, aPropValues, xShapeProp );
- }
-
- sal_Bool bStackCharacters(sal_False);
- try
- {
- xTitleProperties->getPropertyValue( "StackCharacters" ) >>= bStackCharacters;
- }
- catch( const uno::Exception& e )
- {
- ASSERT_EXCEPTION( e );
- }
-
- if(bStackCharacters)
- {
- //if the characters should be stacked we use only the first character properties for code simplicity
- if( aStringList.getLength()>0 )
- {
- OUString aLabel;
- for( sal_Int32 nN=0; nN<aStringList.getLength();nN++ )
- aLabel += aStringList[nN]->getString();
- aLabel = ShapeFactory::getStackedString( aLabel, bStackCharacters );
-
- xTextCursor->gotoEnd(false);
- xText->insertString( xTextRange, aLabel, false );
- xTextCursor->gotoEnd(true);
- uno::Reference< beans::XPropertySet > xTargetProps( xShape, uno::UNO_QUERY );
- uno::Reference< beans::XPropertySet > xSourceProps( aStringList[0], uno::UNO_QUERY );
-
- PropertyMapper::setMappedProperties( xTargetProps, xSourceProps
- , PropertyMapper::getPropertyNameMapForCharacterProperties() );
-
- // adapt font size according to page size
- awt::Size aOldRefSize;
- if( xTitleProperties->getPropertyValue( "ReferencePageSize") >>= aOldRefSize )
- {
- RelativeSizeHelper::adaptFontSizes( xTargetProps, aOldRefSize, rReferenceSize );
- }
- }
- }
- else
- {
- uno::Sequence< uno::Reference< text::XTextCursor > > aCursorList( aStringList.getLength() );
- sal_Int32 nN = 0;
- for( nN=0; nN<aStringList.getLength();nN++ )
- {
- xTextCursor->gotoEnd(false);
- xText->insertString( xTextRange, aStringList[nN]->getString(), false );
- xTextCursor->gotoEnd(true);
- aCursorList[nN] = xText->createTextCursorByRange( uno::Reference< text::XTextRange >(xTextCursor,uno::UNO_QUERY) );
- }
- awt::Size aOldRefSize;
- bool bHasRefPageSize =
- ( xTitleProperties->getPropertyValue( "ReferencePageSize") >>= aOldRefSize );
+ if(!m_xTitle.is())
+ return;
- if( aStringList.getLength()>0 )
- {
- uno::Reference< beans::XPropertySet > xTargetProps( xShape, uno::UNO_QUERY );
- uno::Reference< beans::XPropertySet > xSourceProps( aStringList[0], uno::UNO_QUERY );
- PropertyMapper::setMappedProperties( xTargetProps, xSourceProps, PropertyMapper::getPropertyNameMapForCharacterProperties() );
+ uno::Sequence< uno::Reference< XFormattedString > > aStringList = m_xTitle->getText();
+ if(aStringList.getLength()<=0)
+ return;
- // adapt font size according to page size
- if( bHasRefPageSize )
- {
- RelativeSizeHelper::adaptFontSizes( xTargetProps, aOldRefSize, rReferenceSize );
- }
- }
- }
+ m_nXPos = rPos.X;
+ m_nYPos = rPos.Y;
- // #i109336# Improve auto positioning in chart
- float fFontHeight = 0.0;
- if ( xShapeProp.is() && ( xShapeProp->getPropertyValue( "CharHeight" ) >>= fFontHeight ) )
- {
- fFontHeight *= ( 2540.0f / 72.0f ); // pt -> 1/100 mm
- float fXFraction = 0.18f;
- sal_Int32 nXDistance = static_cast< sal_Int32 >( ::rtl::math::round( fFontHeight * fXFraction ) );
- float fYFraction = 0.30f;
- sal_Int32 nYDistance = static_cast< sal_Int32 >( ::rtl::math::round( fFontHeight * fYFraction ) );
- xShapeProp->setPropertyValue( "TextLeftDistance", uno::makeAny( nXDistance ) );
- xShapeProp->setPropertyValue( "TextRightDistance", uno::makeAny( nXDistance ) );
- xShapeProp->setPropertyValue( "TextUpperDistance", uno::makeAny( nYDistance ) );
- xShapeProp->setPropertyValue( "TextLowerDistance", uno::makeAny( nYDistance ) );
- }
+ uno::Reference< beans::XPropertySet > xTitleProperties( m_xTitle, uno::UNO_QUERY );
- try
- {
- double fAngleDegree = 0;
- xTitleProperties->getPropertyValue( "TextRotation" ) >>= fAngleDegree;
- m_fRotationAngleDegree += fAngleDegree;
- }
- catch( const uno::Exception& e )
- {
- ASSERT_EXCEPTION( e );
- }
- m_nXPos = rPos.X;
- m_nYPos = rPos.Y;
-
- //set position matrix
- //the matrix needs to be set at the end behind autogrow and such position influencing properties
- ::basegfx::B2DHomMatrix aM;
- aM.rotate( -m_fRotationAngleDegree*F_PI/180.0 );//#i78696#->#i80521#
- aM.translate( m_nXPos, m_nYPos );
- xShapeProp->setPropertyValue( "Transformation", uno::makeAny( B2DHomMatrixToHomogenMatrix3(aM) ) );
+ try
+ {
+ double fAngleDegree = 0;
+ xTitleProperties->getPropertyValue( "TextRotation" ) >>= fAngleDegree;
+ m_fRotationAngleDegree += fAngleDegree;
}
catch( const uno::Exception& e )
{
ASSERT_EXCEPTION( e );
}
+
+ AbstractShapeFactory* pShapeFactory = AbstractShapeFactory::getOrCreateShapeFactory(m_xShapeFactory);
+ m_xShape =pShapeFactory->createText( m_xTarget, rReferenceSize, rPos, aStringList,
+ xTitleProperties, m_fRotationAngleDegree, m_aCID );
}
} //namespace chart