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/06/01 19:57:51 UTC
svn commit: r1345289 [3/3] - in /incubator/ooo/branches/alg/aw080/main:
basegfx/source/numeric/ basegfx/source/polygon/ filter/inc/filter/msfilter/
filter/source/msfilter/ oox/inc/oox/export/ sc/source/filter/excel/
sc/source/filter/inc/ sc/source/filt...
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdocirc.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdocirc.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdocirc.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdocirc.cxx Fri Jun 1 17:57:48 2012
@@ -68,6 +68,15 @@ namespace
const double fSnapAngle(((rView.GetSnapAngle() % 36000) * F_PI) / 18000.0);
fAngle = basegfx::snapToNearestMultiple(fAngle, fSnapAngle);
+
+ if(basegfx::fTools::equalZero(fAngle))
+ {
+ fAngle = 0.0;
+ }
+ else if(basegfx::fTools::equal(fAngle, F_2PI))
+ {
+ fAngle = F_2PI;
+ }
}
return fAngle;
@@ -473,7 +482,7 @@ bool SdrCircObj::applySpecialDrag(SdrDra
fNewAngle = impSnapAngle(fNewAngle, rDrag.GetSdrViewFromSdrDragStat());
if(1 == rDrag.GetActiveHdl()->GetPointNum())
- {
+ {
SetStartAngle(fNewAngle);
}
else // (2 == rDrag.GetActiveHdl()->GetPointNum())
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxat.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxat.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxat.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxat.cxx Fri Jun 1 17:57:48 2012
@@ -30,8 +30,8 @@
#include <svx/svdmodel.hxx>
#include <svx/svditext.hxx>
#include <svx/svdoutl.hxx>
-#include <svx/svdorect.hxx> // fuer SetDirty bei AdjustTextFrameWidthAndHeight
-#include <svx/svdocapt.hxx> // fuer SetDirty bei AdjustTextFrameWidthAndHeight
+#include <svx/svdorect.hxx>
+#include <svx/svdocapt.hxx>
#include <svx/svdetc.hxx>
#include <editeng/writingmodeitem.hxx>
#include <editeng/editeng.hxx>
@@ -59,221 +59,286 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
-bool SdrTextObj::AdjustTextFrameWidthAndHeight(Rectangle& rR, bool bHgt, bool bWdt) const
+bool SdrTextObj::AdjustTextFrameWidthAndHeight(basegfx::B2DRange& o_rRange, bool bHgt, bool bWdt) const
{
- if(bTextFrame)
- {
- if(!rR.IsEmpty())
- {
- SdrFitToSizeType eFit=GetFitToSize();
- bool bFitToSize=(eFit==SDRTEXTFIT_PROPORTIONAL || eFit==SDRTEXTFIT_ALLLINES);
- bool bWdtGrow=bWdt && IsAutoGrowWidth();
- bool bHgtGrow=bHgt && IsAutoGrowHeight();
- SdrTextAniKind eAniKind=GetTextAniKind();
- SdrTextAniDirection eAniDir=GetTextAniDirection();
- bool bScroll=eAniKind==SDRTEXTANI_SCROLL || eAniKind==SDRTEXTANI_ALTERNATE || eAniKind==SDRTEXTANI_SLIDE;
- bool bHScroll=bScroll && (eAniDir==SDRTEXTANI_LEFT || eAniDir==SDRTEXTANI_RIGHT);
- bool bVScroll=bScroll && (eAniDir==SDRTEXTANI_UP || eAniDir==SDRTEXTANI_DOWN);
+ if(IsTextFrame() && !o_rRange.isEmpty())
+ {
+ const SdrFitToSizeType eFit(GetFitToSize());
+ const bool bFitToSize(SDRTEXTFIT_PROPORTIONAL == eFit || SDRTEXTFIT_ALLLINES == eFit);
+
+ if(!bFitToSize)
+ {
+ return ImpAdjustTextFrameWidthAndHeight(o_rRange, bHgt, bWdt, true);
+ }
+ }
+
+ return false;
+}
+
+bool SdrTextObj::ImpAdjustTextFrameWidthAndHeight(basegfx::B2DRange& o_rRange, bool bHgt, bool bWdt, bool bCheckAnimation) const
+{
+ bool bWdtGrow(bWdt && IsAutoGrowWidth());
+ bool bHgtGrow(bHgt && IsAutoGrowHeight());
- if (!bFitToSize && (bWdtGrow || bHgtGrow))
- {
- Rectangle aR0(rR);
- sal_Int32 nHgt=0,nMinHgt=0,nMaxHgt=0;
- sal_Int32 nWdt=0,nMinWdt=0,nMaxWdt=0;
- Size aSiz(rR.GetSize()); aSiz.Width()--; aSiz.Height()--;
- Size aMaxSiz(100000,100000);
-
- if(!basegfx::fTools::equalZero(getSdrModelFromSdrObject().GetMaxObjectScale().getX()))
- {
- aMaxSiz.Width() = basegfx::fround(getSdrModelFromSdrObject().GetMaxObjectScale().getX());
- }
+ if(bWdtGrow || bHgtGrow)
+ {
+ basegfx::B2DVector aSize(o_rRange.getRange());
+ basegfx::B2DVector aMaxSize(100000.0, 100000.0);
+ double fHeight(0.0), fMinHeight(0.0), fMaxHeight(0.0);
+ double fWidth(0.0), fMinWidth(0.0), fMaxWidth(0.0);
+ const basegfx::B2DPoint aOriginalMinimum(o_rRange.getMinimum());
- if(!basegfx::fTools::equalZero(getSdrModelFromSdrObject().GetMaxObjectScale().getY()))
- {
- aMaxSiz.Height() = basegfx::fround(getSdrModelFromSdrObject().GetMaxObjectScale().getY());
- }
+ if(!basegfx::fTools::equalZero(getSdrModelFromSdrObject().GetMaxObjectScale().getX()))
+ {
+ aMaxSize.setX(fabs(getSdrModelFromSdrObject().GetMaxObjectScale().getX()));
+ }
+
+ if(!basegfx::fTools::equalZero(getSdrModelFromSdrObject().GetMaxObjectScale().getY()))
+ {
+ aMaxSize.setY(fabs(getSdrModelFromSdrObject().GetMaxObjectScale().getY()));
+ }
- if (bWdtGrow)
- {
- nMinWdt=GetMinTextFrameWidth();
- nMaxWdt=GetMaxTextFrameWidth();
- if (nMaxWdt==0 || nMaxWdt>aMaxSiz.Width()) nMaxWdt=aMaxSiz.Width();
- if (nMinWdt<=0) nMinWdt=1;
- aSiz.Width()=nMaxWdt;
- }
- if (bHgtGrow)
- {
- nMinHgt=GetMinTextFrameHeight();
- nMaxHgt=GetMaxTextFrameHeight();
- if (nMaxHgt==0 || nMaxHgt>aMaxSiz.Height()) nMaxHgt=aMaxSiz.Height();
- if (nMinHgt<=0) nMinHgt=1;
- aSiz.Height()=nMaxHgt;
- }
-
- sal_Int32 nHDist=GetTextLeftDistance()+GetTextRightDistance();
- sal_Int32 nVDist=GetTextUpperDistance()+GetTextLowerDistance();
- aSiz.Width()-=nHDist;
- aSiz.Height()-=nVDist;
- if (aSiz.Width()<2) aSiz.Width()=2; // Mindestgroesse 2
- if (aSiz.Height()<2) aSiz.Height()=2; // Mindestgroesse 2
-
- // #101684#
- bool bInEditMode = IsInEditMode();
-
- if(!bInEditMode)
- {
- if (bHScroll) aSiz.Width()=0x0FFFFFFF; // Laufschrift nicht umbrechen
- if (bVScroll) aSiz.Height()=0x0FFFFFFF;
- }
-
- if(pEdtOutl)
- {
- pEdtOutl->SetMaxAutoPaperSize(aSiz);
+ if(bWdtGrow)
+ {
+ fMinWidth = GetMinTextFrameWidth();
+ fMaxWidth = GetMaxTextFrameWidth();
+
+ if(basegfx::fTools::equalZero(fMaxWidth) || basegfx::fTools::more(fMaxWidth, aMaxSize.getX()))
+ {
+ fMaxWidth = aMaxSize.getX();
+ }
+
+ if(basegfx::fTools::less(fMinWidth, 1.0))
+ {
+ fMinWidth = 1.0;
+ }
- if (bWdtGrow)
- {
- Size aSiz2(pEdtOutl->CalcTextSize());
- nWdt=aSiz2.Width()+1; // lieber etwas Tolleranz
- if (bHgtGrow) nHgt=aSiz2.Height()+1; // lieber etwas Tolleranz
- }
- else
- {
- nHgt=pEdtOutl->GetTextHeight()+1; // lieber etwas Tolleranz
- }
- }
- else
+ aSize.setX(fMaxWidth);
+ }
+
+ if(bHgtGrow)
+ {
+ fMinHeight = GetMinTextFrameHeight();
+ fMaxHeight = GetMaxTextFrameHeight();
+
+ if(basegfx::fTools::equalZero(fMaxHeight) || basegfx::fTools::more(fMaxHeight, aMaxSize.getY()))
+ {
+ fMaxHeight = aMaxSize.getY();
+ }
+
+ if(basegfx::fTools::less(fMinHeight, 1.0))
+ {
+ fMinHeight = 1.0;
+ }
+
+ aSize.setY(fMaxHeight);
+ }
+
+ const basegfx::B2DVector aBorders(
+ GetTextLeftDistance() + GetTextRightDistance(),
+ GetTextUpperDistance() + GetTextLowerDistance());
+
+ // substract orders
+ aSize -= aBorders;
+
+ // minimum size is 2.0
+ aSize = basegfx::maximum(basegfx::B2DTuple(2.0, 2.0), aSize);
+
+ if(bCheckAnimation && !IsInEditMode())
+ {
+ // do not wrap animated text
+ const SdrTextAniKind eAniKind(GetTextAniKind());
+ const SdrTextAniDirection eAniDir(GetTextAniDirection());
+ const bool bScroll(SDRTEXTANI_SCROLL == eAniKind || SDRTEXTANI_ALTERNATE == eAniKind || SDRTEXTANI_SLIDE == eAniKind);
+ const bool bHScroll(bScroll && (SDRTEXTANI_LEFT == eAniDir || SDRTEXTANI_RIGHT == eAniDir));
+ const bool bVScroll(bScroll && (SDRTEXTANI_UP == eAniDir || SDRTEXTANI_DOWN == eAniDir));
+
+ if(bHScroll)
+ {
+ aSize.setX(268435455.0);
+ }
+
+ if(bVScroll)
+ {
+ aSize.setY(268435455.0);
+ }
+ }
+
+ if(IsTextEditActive())
+ {
+ GetTextEditOutliner()->SetMaxAutoPaperSize(Size(basegfx::fround(aSize.getX()), basegfx::fround(aSize.getY())));
+
+ if(bWdtGrow)
+ {
+ const Size aSiz2(GetTextEditOutliner()->CalcTextSize());
+
+ fWidth = aSiz2.Width() + 1; // lieber etwas Tolleranz
+
+ if(bHgtGrow)
{
- Outliner& rOutliner=ImpGetDrawOutliner();
- rOutliner.SetPaperSize(aSiz);
- rOutliner.SetUpdateMode(true);
- // !!! hier sollte ich wohl auch noch mal die Optimierung mit
- // bPortionInfoChecked usw einbauen
- OutlinerParaObject* pOutlinerParaObject = GetOutlinerParaObject();
+ fHeight = aSiz2.Height() + 1; // lieber etwas Tolleranz
+ }
+ }
+ else
+ {
+ fHeight = GetTextEditOutliner()->GetTextHeight() + 1; // lieber etwas Tolleranz
+ }
+ }
+ else
+ {
+ Outliner& rOutliner = ImpGetDrawOutliner();
+
+ rOutliner.SetPaperSize(Size(basegfx::fround(aSize.getX()), basegfx::fround(aSize.getY())));
+ rOutliner.SetUpdateMode(true);
+ OutlinerParaObject* pOutlinerParaObject = GetOutlinerParaObject();
- if ( pOutlinerParaObject != 0 )
- {
- rOutliner.SetText(*pOutlinerParaObject);
- rOutliner.SetFixedCellHeight(((const SdrTextFixedCellHeightItem&)GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT)).GetValue());
- }
- if (bWdtGrow)
- {
- Size aSiz2(rOutliner.CalcTextSize());
- nWdt=aSiz2.Width()+1; // lieber etwas Tolleranz
- if (bHgtGrow) nHgt=aSiz2.Height()+1; // lieber etwas Tolleranz
- }
- else
- {
- nHgt=rOutliner.GetTextHeight()+1; // lieber etwas Tolleranz
- }
-
- rOutliner.Clear();
- }
+ if(pOutlinerParaObject)
+ {
+ rOutliner.SetText(*pOutlinerParaObject);
+ rOutliner.SetFixedCellHeight(((const SdrTextFixedCellHeightItem&)GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT)).GetValue());
+ }
+
+ if(bWdtGrow)
+ {
+ const Size aSiz2(rOutliner.CalcTextSize());
- if (nWdt<nMinWdt)
- nWdt=nMinWdt;
+ fWidth = aSiz2.Width() + 1; // lieber etwas Tolleranz
- if (nWdt>nMaxWdt)
- nWdt=nMaxWdt;
+ if(bHgtGrow)
+ {
+ fHeight = aSiz2.Height() + 1; // lieber etwas Tolleranz
+ }
+ }
+ else
+ {
+ fHeight = rOutliner.GetTextHeight() + 1; // lieber etwas Tolleranz
+ }
+
+ rOutliner.Clear();
+ }
- nWdt+=nHDist;
-
- // nHDist kann auch negativ sein
- if (nWdt<1)
- nWdt=1;
-
- if (nHgt<nMinHgt)
- nHgt=nMinHgt;
-
- if (nHgt>nMaxHgt)
- nHgt=nMaxHgt;
-
- nHgt+=nVDist;
-
- // nVDist kann auch negativ sein
- if (nHgt<1)
- nHgt=1;
+ // fMinWidth < fWidth < fMaxWidth
+ fWidth = std::min(fMaxWidth, std::max(fWidth, fMinWidth));
+ fWidth = std::min(1.0, fWidth += aBorders.getX()); // aBorders.getX() may be negative
+
+ // fMinHeight < fHeight < fMaxHeight
+ fHeight = std::min(fMaxHeight, std::max(fHeight, fMinHeight));
+ fHeight = std::min(1.0, fHeight += aBorders.getY()); // aBorders.getY() may be negative
+
+ // get grow sizes
+ const double fWidthGrow(fWidth - o_rRange.getWidth());
+ const double fHeightGrow(fHeight - o_rRange.getHeight());
- sal_Int32 nWdtGrow=nWdt-(rR.Right()-rR.Left());
- sal_Int32 nHgtGrow=nHgt-(rR.Bottom()-rR.Top());
-
- if (nWdtGrow==0)
- bWdtGrow=false;
+ if(basegfx::fTools::equalZero(fWidthGrow))
+ {
+ bWdtGrow = false;
+ }
- if (nHgtGrow==0)
- bHgtGrow=false;
+ if(basegfx::fTools::equalZero(fHeightGrow))
+ {
+ bHgtGrow = false;
+ }
- if (bWdtGrow || bHgtGrow)
+ if(bWdtGrow || bHgtGrow)
+ {
+ if(bWdtGrow)
+ {
+ const SdrTextHorzAdjust eHAdj(GetTextHorizontalAdjust());
+
+ if(SDRTEXTHORZADJUST_LEFT == eHAdj)
{
- if (bWdtGrow)
- {
- SdrTextHorzAdjust eHAdj=GetTextHorizontalAdjust();
- if (eHAdj==SDRTEXTHORZADJUST_LEFT)
- rR.Right()+=nWdtGrow;
- else if (eHAdj==SDRTEXTHORZADJUST_RIGHT)
- rR.Left()-=nWdtGrow;
- else
- {
- sal_Int32 nWdtGrow2=nWdtGrow/2;
- rR.Left()-=nWdtGrow2;
- rR.Right()=rR.Left()+nWdt;
- }
- }
- if (bHgtGrow)
- {
- SdrTextVertAdjust eVAdj=GetTextVerticalAdjust();
- if (eVAdj==SDRTEXTVERTADJUST_TOP)
- rR.Bottom()+=nHgtGrow;
- else if (eVAdj==SDRTEXTVERTADJUST_BOTTOM)
- rR.Top()-=nHgtGrow;
- else
- {
- sal_Int32 nHgtGrow2=nHgtGrow/2;
- rR.Top()-=nHgtGrow2;
- rR.Bottom()=rR.Top()+nHgt;
- }
- }
-
- const sal_Int32 aOldRotation(sdr::legacy::GetRotateAngle(*this));
-
- if (aOldRotation)
- {
- Point aD1(rR.TopLeft());
- aD1-=aR0.TopLeft();
- Point aD2(aD1);
- RotatePoint(aD2,Point(),sin(aOldRotation*nPi180), cos(aOldRotation*nPi180));
- aD2-=aD1;
- rR.Move(aD2.X(),aD2.Y());
- }
-
- return true;
- }
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMaxX() + fWidthGrow, o_rRange.getMinY()));
+ }
+ else if(SDRTEXTHORZADJUST_RIGHT == eHAdj)
+ {
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMinX() - fWidthGrow, o_rRange.getMinY()));
+ }
+ else
+ {
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMinX() - (fWidthGrow * 0.5), o_rRange.getMinY()));
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMaxX() + (fWidthGrow * 0.5), o_rRange.getMinY()));
+ }
+ }
+
+ if(bHgtGrow)
+ {
+ const SdrTextVertAdjust eVAdj(GetTextVerticalAdjust());
+
+ if(SDRTEXTVERTADJUST_TOP == eVAdj)
+ {
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMinX(), o_rRange.getMaxY() + fHeightGrow));
+ }
+ else if(SDRTEXTVERTADJUST_BOTTOM == eVAdj)
+ {
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMinX(), o_rRange.getMinY() - fHeightGrow));
+ }
+ else
+ {
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMinX(), o_rRange.getMinY() - (fHeightGrow * 0.5)));
+ o_rRange.expand(basegfx::B2DTuple(o_rRange.getMinX(), o_rRange.getMaxY() + (fHeightGrow * 0.5)));
+ }
+ }
+
+ if(!aOriginalMinimum.equal(o_rRange.getMinimum()) && isRotatedOrSheared())
+ {
+ basegfx::B2DHomMatrix aCorrector(
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ getSdrObjectScale(),
+ getSdrObjectTranslate()));
+
+ aCorrector.invert();
+ aCorrector = getSdrObjectTransformation() * aCorrector;
+
+ const basegfx::B2DPoint aCorrectedTopLeft(aCorrector * o_rRange.getMinimum());
+
+ aCorrector.identity();
+ aCorrector.translate(aCorrectedTopLeft - o_rRange.getMinimum());
+
+ o_rRange.transform(aCorrector);
+
+ // TTTT: Check if the above solution works
+ //
+ //const sal_Int32 aOldRotation(sdr::legacy::GetRotateAngle(*this));
+ //
+ //if (aOldRotation)
+ //{
+ // Point aD1(rR.TopLeft());
+ // aD1-=aOriginalMinimum;
+ // Point aD2(aD1);
+ // RotatePoint(aD2,Point(),sin(aOldRotation*nPi180), cos(aOldRotation*nPi180));
+ // aD2-=aD1;
+ // rR.Move(aD2.X(),aD2.Y());
+ //}
}
- }
- }
+
+ return true;
+ }
+ }
return false;
}
bool SdrTextObj::AdjustTextFrameWidthAndHeight(bool bHgt, bool bWdt)
{
- Rectangle aNeuRect(sdr::legacy::GetLogicRect(*this));
- bool bRet=AdjustTextFrameWidthAndHeight(aNeuRect,bHgt,bWdt);
+ basegfx::B2DRange aNewRange(getSdrObjectTranslate(), getSdrObjectTranslate() + getSdrObjectScale());
- if (bRet)
+ if(AdjustTextFrameWidthAndHeight(aNewRange, bHgt, bWdt))
{
const SdrObjectChangeBroadcaster aSdrObjectChangeBroadcaster(*this);
- sdr::legacy::SetLogicRect(*this, aNeuRect);
+ sdr::legacy::SetLogicRange(*this, aNewRange);
- if (dynamic_cast< SdrCaptionObj* >(this))
+ if(dynamic_cast< SdrCaptionObj* >(this))
{
// mal wieder 'nen Hack
((SdrCaptionObj*)this)->ImpRecalcTail();
}
SetChanged();
+
+ return true;
}
- return bRet;
+ return false;
}
void SdrTextObj::ImpSetTextStyleSheetListeners()
@@ -490,8 +555,8 @@ void SdrTextObj::RemoveOutlinerCharacter
{
Outliner* pOutliner = 0;
- if( pEdtOutl || (pText == getActiveText()) )
- pOutliner = pEdtOutl;
+ if( IsTextEditActive() || (pText == getActiveText()) )
+ pOutliner = GetTextEditOutliner();
if(!pOutliner)
{
@@ -506,7 +571,7 @@ void SdrTextObj::RemoveOutlinerCharacter
pOutliner->RemoveAttribs( aSelAll, false, (*aIter++) );
}
- if(!pEdtOutl || (pText != getActiveText()) )
+ if(!IsTextEditActive() || (pText != getActiveText()) )
{
const sal_uInt32 nParaCount = pOutliner->GetParagraphCount();
OutlinerParaObject* pTemp = pOutliner->CreateParaObject(0, (sal_uInt16)nParaCount);
@@ -519,7 +584,7 @@ void SdrTextObj::RemoveOutlinerCharacter
bool SdrTextObj::HasText() const
{
- if( pEdtOutl )
+ if( IsTextEditActive() )
return HasEditText();
OutlinerParaObject* pOPO = GetOutlinerParaObject();
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxtr.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxtr.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxtr.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdotxtr.cxx Fri Jun 1 17:57:48 2012
@@ -49,24 +49,66 @@
void SdrTextObj::setSdrObjectTransformation(const basegfx::B2DHomMatrix& rTransformation)
{
- // call parent
+ const bool bTextAdaption(bTextFrame && !IsPasteResize());
+ basegfx::B2DVector aOldSize;
+
+ if(bTextAdaption)
+ {
+ aOldSize = basegfx::absolute(getSdrObjectScale());
+ }
+
+ // call parent
SdrAttrObj::setSdrObjectTransformation(rTransformation);
- // TTTT: check if needed and how to emulate; maybe exclusive to resize...?
+ // TTTT: check if the rebuild works
+ //
//sal_Int32 nHDist=GetTextLeftDistance()+GetTextRightDistance();
//sal_Int32 nVDist=GetTextUpperDistance()+GetTextLowerDistance();
//sal_Int32 nTWdt0=aRect.GetWidth ()-1-nHDist; if (nTWdt0<0) nTWdt0=0;
//sal_Int32 nTHgt0=aRect.GetHeight()-1-nVDist; if (nTHgt0<0) nTHgt0=0;
- //sal_Int32 nTWdt1=aRect.GetWidth ()-1-nHDist; if (nTWdt1<0) nTWdt1=0;
- //sal_Int32 nTHgt1=aRect.GetHeight()-1-nVDist; if (nTHgt1<0) nTHgt1=0;
- //if (bTextFram4e && !IsPasteResize()) { // #51139#
+ //sal_Int32 nTWdt1=rRect.GetWidth ()-1-nHDist; if (nTWdt1<0) nTWdt1=0;
+ //sal_Int32 nTHgt1=rRect.GetHeight()-1-nVDist; if (nTHgt1<0) nTHgt1=0;
// if (nTWdt0!=nTWdt1 && IsAutoGrowWidth() ) SetMinTextFrameWidth(nTWdt1);
// if (nTHgt0!=nTHgt1 && IsAutoGrowHeight()) SetMinTextFrameHeight(nTHgt1);
// if (GetFitToSize()==SDRTEXTFIT_RESIZEATTR) {
// ResizeTextAttributes(Fraction(nTWdt1,nTWdt0),Fraction(nTHgt1,nTHgt0));
// }
// AdjustTextFrameWidthAndHeight();
- //}
+
+ if(bTextAdaption)
+ {
+ basegfx::B2DVector aNewSize(basegfx::absolute(getSdrObjectScale()));
+
+ if(!aNewSize.equal(aOldSize))
+ {
+ const basegfx::B2DVector aBorders(
+ GetTextLeftDistance() + GetTextRightDistance(),
+ GetTextUpperDistance() + GetTextLowerDistance());
+
+ aNewSize -= aBorders;
+ aOldSize -= aBorders;
+
+ if(IsAutoGrowWidth() && !basegfx::fTools::equal(aOldSize.getX(), aNewSize.getX()))
+ {
+ SetMinTextFrameWidth(aNewSize.getX());
+ }
+
+ if(IsAutoGrowHeight() && !basegfx::fTools::equal(aOldSize.getY(), aNewSize.getY()))
+ {
+ SetMinTextFrameHeight(aNewSize.getY());
+ }
+
+ if(SDRTEXTFIT_RESIZEATTR == GetFitToSize())
+ {
+ const double fFactorX(aNewSize.getX() / (basegfx::fTools::equalZero(aOldSize.getX()) ? 1.0 : aOldSize.getX()));
+ const double fFactorY(aNewSize.getY() / (basegfx::fTools::equalZero(aOldSize.getY()) ? 1.0 : aOldSize.getY()));
+
+ ResizeTextAttributes(fFactorX, fFactorY);
+ }
+
+ AdjustTextFrameWidthAndHeight();
+ }
+ }
}
//////////////////////////////////////////////////////////////////////////////
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.cxx Fri Jun 1 17:57:48 2012
@@ -156,8 +156,6 @@ public:
Point PixelToLogic( const Point&, const MapMode& rMapMode );
DECL_LINK( NotifyHdl, EENotify* );
-
-//CMCX void ChangeModel( SdrModel* pNewModel );
};
//------------------------------------------------------------------------
@@ -256,44 +254,6 @@ void SAL_CALL CellEditSourceImpl::releas
delete this;
}
-//CMCXvoid CellEditSourceImpl::ChangeModel( SdrModel* pNewModel )
-//CMCX{
-//CMCX if( mpModel != pNewModel )
-//CMCX {
-//CMCX if( mpOutliner )
-//CMCX {
-//CMCX if( mpModel )
-//CMCX mpModel->disposeOutliner( mpOutliner );
-//CMCX else
-//CMCX delete mpOutliner;
-//CMCX mpOutliner = 0;
-//CMCX }
-//CMCX
-//CMCX if( mpView )
-//CMCX {
-//CMCX EndListening( *mpView );
-//CMCX mpView = 0;
-//CMCX }
-//CMCX
-//CMCX mpWindow = 0;
-//CMCX mxLinguServiceManager.clear();
-//CMCX
-//CMCX mpModel = pNewModel;
-//CMCX
-//CMCX if( mpTextForwarder )
-//CMCX {
-//CMCX delete mpTextForwarder;
-//CMCX mpTextForwarder = 0;
-//CMCX }
-//CMCX
-//CMCX if( mpViewForwarder )
-//CMCX {
-//CMCX delete mpViewForwarder;
-//CMCX mpViewForwarder = 0;
-//CMCX }
-//CMCX }
-//CMCX}
-
//------------------------------------------------------------------------
void CellEditSourceImpl::Notify( SfxBroadcaster&, const SfxHint& rHint )
@@ -1044,11 +1004,4 @@ const SvxUnoTextRangeBaseList& CellEditS
//------------------------------------------------------------------------
-//CMCXvoid CellEditSource::ChangeModel( SdrModel* pNewModel )
-//CMCX{
-//CMCX mpImpl->ChangeModel( pNewModel );
-//CMCX}
-
-//------------------------------------------------------------------------
-
} }
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.hxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/table/celleditsource.hxx Fri Jun 1 17:57:48 2012
@@ -72,8 +72,6 @@ public:
virtual Point LogicToPixel( const Point&, const MapMode& ) const;
virtual Point PixelToLogic( const Point&, const MapMode& ) const;
-//CMCX void ChangeModel( SdrModel* pNewModel );
-
private:
CellEditSource( CellEditSourceImpl* pImpl );
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/table/svdotable.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/table/svdotable.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/table/svdotable.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/table/svdotable.cxx Fri Jun 1 17:57:48 2012
@@ -217,7 +217,7 @@ public:
bool mbModifyPending;
CellRef getCell( const CellPos& rPos ) const;
- void LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHeight );
+ void LayoutTable( basegfx::B2DRange& o_aArea, bool bFitWidth, bool bFitHeight );
bool ApplyCellStyles();
void UpdateCells( Rectangle& rArea );
@@ -277,8 +277,12 @@ void SdrTableObjImpl::init( SdrTableObj*
Reference< XModifyListener > xListener( static_cast< ::com::sun::star::util::XModifyListener* >(this) );
mxTable->addModifyListener( xListener );
UpdateWritingMode();
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*mpTableObj));
- LayoutTable( aRectangle, true, true );
+
+ basegfx::B2DRange aObjectRange(
+ mpTableObj->getSdrObjectTranslate(),
+ mpTableObj->getSdrObjectTranslate() + mpTableObj->getSdrObjectScale());
+
+ LayoutTable( aObjectRange, true, true );
}
// -----------------------------------------------------------------------------
@@ -308,8 +312,12 @@ void SdrTableObjImpl::operator=( const S
mxTableStyle = rSource.mxTableStyle;
UpdateWritingMode();
ApplyCellStyles();
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*mpTableObj));
- LayoutTable( aRectangle, false, false );
+
+ basegfx::B2DRange aObjectRange(
+ mpTableObj->getSdrObjectTranslate(),
+ mpTableObj->getSdrObjectTranslate() + mpTableObj->getSdrObjectScale());
+
+ LayoutTable( aObjectRange, false, false );
}
// -----------------------------------------------------------------------------
@@ -504,8 +512,12 @@ void SdrTableObjImpl::update()
}
ApplyCellStyles();
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*mpTableObj));
- LayoutTable( aRectangle, false, false );
+
+ basegfx::B2DRange aObjectRange(
+ mpTableObj->getSdrObjectTranslate(),
+ mpTableObj->getSdrObjectTranslate() + mpTableObj->getSdrObjectScale());
+
+ LayoutTable( aObjectRange, false, false );
}
}
@@ -594,12 +606,13 @@ sal_Int32 SdrTableObjImpl::getRowCount()
// -----------------------------------------------------------------------------
-void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHeight )
+void SdrTableObjImpl::LayoutTable( basegfx::B2DRange& o_aArea, bool bFitWidth, bool bFitHeight )
{
if( mpTableObj && mpLayouter )
{
TableModelNotifyGuard aGuard( mxTable.get() );
- mpLayouter->LayoutTable( rArea, bFitWidth, bFitHeight );
+
+ mpLayouter->LayoutTable( o_aArea, bFitWidth, bFitHeight );
}
}
@@ -1368,8 +1381,11 @@ void SdrTableObj::onEditOutlinerStatusEv
if( (pEditStatus->GetStatusWord() & EE_STAT_TEXTHEIGHTCHANGED) && mpImpl && mpImpl->mpLayouter )
{
const SdrObjectChangeBroadcaster aSdrObjectChangeBroadcaster(*this);
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*this));
- mpImpl->LayoutTable( aRectangle, false, false );
+ basegfx::B2DRange aObjectRange(
+ getSdrObjectTranslate(),
+ getSdrObjectTranslate() + getSdrObjectScale());
+
+ mpImpl->LayoutTable( aObjectRange, false, false );
}
}
@@ -1583,16 +1599,20 @@ basegfx::B2DRange SdrTableObj::getUnifie
if(mpImpl)
{
basegfx::B2DRange aRange;
-
+
+ // get the absolute range
TakeTextAnchorRangeFromCell(mpImpl->maEditPos, aRange);
+ // scale back to unit range, could also be done by using an inverse of object
+ // transformation's simplified scale and translate
const double fAbsInvScaleX(basegfx::fTools::equalZero(getSdrObjectScale().getX()) ? 1.0 : 1.0 / fabs(getSdrObjectScale().getX()));
const double fAbsInvScaleY(basegfx::fTools::equalZero(getSdrObjectScale().getY()) ? 1.0 : 1.0 / fabs(getSdrObjectScale().getY()));
const basegfx::B2DPoint aTopLeft(aRange.getMinimum() - getSdrObjectTranslate());
+ const basegfx::B2DPoint aUnitTopLeft(aTopLeft.getX() * fAbsInvScaleX, aTopLeft.getY() * fAbsInvScaleY);
aRetval = basegfx::B2DRange(
- aTopLeft,
- aTopLeft + basegfx::B2DVector(
+ aUnitTopLeft,
+ aUnitTopLeft + basegfx::B2DVector(
aRange.getWidth() * fAbsInvScaleX,
aRange.getHeight() * fAbsInvScaleY));
}
@@ -2112,29 +2132,36 @@ void SdrTableObj::setSdrObjectTransforma
bool SdrTableObj::AdjustTextFrameWidthAndHeight(bool bHgt, bool bWdt)
{
- Rectangle aNeuRect(sdr::legacy::GetLogicRect(*this));
- bool bRet=AdjustTextFrameWidthAndHeight(aNeuRect,bHgt,bWdt);
- if (bRet)
+ basegfx::B2DRange aNewRange(getSdrObjectTranslate(), getSdrObjectTranslate() + getSdrObjectScale());
+
+ if(AdjustTextFrameWidthAndHeight(aNewRange, bHgt, bWdt))
{
- sdr::legacy::SetLogicRect(*this, aNeuRect);
+ sdr::legacy::SetLogicRange(*this, aNewRange);
+
+ return true;
}
- return bRet;
+
+ return false;
}
// --------------------------------------------------------------------
-bool SdrTableObj::AdjustTextFrameWidthAndHeight(Rectangle& rR, bool bHeight, bool bWidth) const
+bool SdrTableObj::AdjustTextFrameWidthAndHeight(basegfx::B2DRange& o_rRange, bool bHeight, bool bWidth) const
{
- if(rR.IsEmpty() || !mpImpl || !mpImpl->mxTable.is() )
+ if(o_rRange.isEmpty() || !mpImpl || !mpImpl->mxTable.is())
+ {
return false;
+ }
+
+ basegfx::B2DRange aNewRange(o_rRange);
- Rectangle aRectangle( rR );
- mpImpl->LayoutTable( aRectangle, !bWidth, !bHeight );
+ mpImpl->LayoutTable(o_rRange, !bWidth, !bHeight);
- if( aRectangle != rR )
+ if(!o_rRange.equal(aNewRange))
{
- rR = aRectangle;
- return true;
+ o_rRange = aNewRange;
+
+ return true;
}
else
{
@@ -2504,8 +2531,11 @@ void SdrTableObj::DistributeColumns( sal
if( mpImpl && mpImpl->mpLayouter )
{
TableModelNotifyGuard aGuard( mpImpl->mxTable.get() );
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*this));
- mpImpl->mpLayouter->DistributeColumns( aRectangle, nFirstColumn, nLastColumn );
+ basegfx::B2DRange aObjectRange(
+ getSdrObjectTranslate(),
+ getSdrObjectTranslate() + getSdrObjectScale());
+
+ mpImpl->mpLayouter->DistributeColumns( aObjectRange, nFirstColumn, nLastColumn );
}
}
@@ -2516,8 +2546,11 @@ void SdrTableObj::DistributeRows( sal_In
if( mpImpl && mpImpl->mpLayouter )
{
TableModelNotifyGuard aGuard( mpImpl->mxTable.get() );
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*this));
- mpImpl->mpLayouter->DistributeRows( aRectangle, nFirstRow, nLastRow );
+ basegfx::B2DRange aObjectRange(
+ getSdrObjectTranslate(),
+ getSdrObjectTranslate() + getSdrObjectScale());
+
+ mpImpl->mpLayouter->DistributeRows( aObjectRange, nFirstRow, nLastRow );
}
}
@@ -2529,8 +2562,11 @@ void SdrTableObj::SetChanged()
{
if( mpImpl->UpdateWritingMode() )
{
- Rectangle aRectangle(sdr::legacy::GetLogicRect(*this));
- mpImpl->LayoutTable( aRectangle, false, false );
+ basegfx::B2DRange aObjectRange(
+ getSdrObjectTranslate(),
+ getSdrObjectTranslate() + getSdrObjectScale());
+
+ mpImpl->LayoutTable( aObjectRange, false, false );
}
}
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.cxx Fri Jun 1 17:57:48 2012
@@ -839,7 +839,7 @@ void TableLayouter::LayoutTableHeight( R
/** try to fit the table into the given rectangle.
If the rectangle is to small, it will be grown to fit the table. */
-void TableLayouter::LayoutTable( Rectangle& rRectangle, bool bFitWidth, bool bFitHeight )
+void TableLayouter::LayoutTable( basegfx::B2DRange& o_aArea, bool bFitWidth, bool bFitHeight )
{
if( !mxTable.is() )
return;
@@ -863,9 +863,20 @@ void TableLayouter::LayoutTable( Rectang
maColumns[nCol].clear();
}
- LayoutTableWidth( rRectangle, bFitWidth );
- LayoutTableHeight( rRectangle, bFitHeight );
- UpdateBorderLayout();
+ // here TableLayout could be changed to double precision,
+ // but for now this will not be needed
+ Rectangle aTableArea(
+ basegfx::fround(o_aArea.getMinX()), basegfx::fround(o_aArea.getMinY()),
+ basegfx::fround(o_aArea.getMaxX()), basegfx::fround(o_aArea.getMaxY()));
+
+ // layout with integer
+ LayoutTableWidth( aTableArea, bFitWidth );
+ LayoutTableHeight( aTableArea, bFitHeight );
+
+ // copy back evtl. changed area
+ o_aArea = basegfx::B2DRange(aTableArea.Left(), aTableArea.Top(), aTableArea.Right(), aTableArea.Bottom());
+
+ UpdateBorderLayout();
}
// -----------------------------------------------------------------------------
@@ -1109,7 +1120,7 @@ void TableLayouter::SetLayoutToModel()
*/
// -----------------------------------------------------------------------------
-void TableLayouter::DistributeColumns( ::Rectangle& rArea, sal_Int32 nFirstCol, sal_Int32 nLastCol )
+void TableLayouter::DistributeColumns( basegfx::B2DRange& o_aArea, sal_Int32 nFirstCol, sal_Int32 nLastCol )
{
if( mxTable.is() ) try
{
@@ -1137,7 +1148,7 @@ void TableLayouter::DistributeColumns( :
nAllWidth -= nWidth;
}
- LayoutTable( rArea, true, false );
+ LayoutTable( o_aArea, true, false );
}
catch( Exception& e )
{
@@ -1148,7 +1159,7 @@ void TableLayouter::DistributeColumns( :
// -----------------------------------------------------------------------------
-void TableLayouter::DistributeRows( ::Rectangle& rArea, sal_Int32 nFirstRow, sal_Int32 nLastRow )
+void TableLayouter::DistributeRows( basegfx::B2DRange& o_aArea, sal_Int32 nFirstRow, sal_Int32 nLastRow )
{
if( mxTable.is() ) try
{
@@ -1172,8 +1183,14 @@ void TableLayouter::DistributeRows( ::Re
if( nHeight < nMinHeight )
{
sal_Int32 nNeededHeight = nRows * nMinHeight;
- rArea.nBottom += nNeededHeight - nAllHeight;
- nHeight = nMinHeight;
+
+ o_aArea = basegfx::B2DRange(
+ o_aArea.getMinX(),
+ o_aArea.getMinY(),
+ o_aArea.getMaxX(),
+ o_aArea.getMinY() + (nNeededHeight - nAllHeight));
+
+ nHeight = nMinHeight;
nAllHeight = nRows * nMinHeight;
}
@@ -1189,7 +1206,7 @@ void TableLayouter::DistributeRows( ::Re
nAllHeight -= nHeight;
}
- LayoutTable( rArea, false, true );
+ LayoutTable( o_aArea, false, true );
}
catch( Exception& e )
{
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.hxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/table/tablelayouter.hxx Fri Jun 1 17:57:48 2012
@@ -76,7 +76,7 @@ public:
if bFitWidth or bFitHeight is set, the model is changed.
*/
- void LayoutTable( ::Rectangle& rRectangle, bool bFitWidth, bool bFitHeight );
+ void LayoutTable( basegfx::B2DRange& o_aArea, bool bFitWidth, bool bFitHeight );
/** after a call to LayoutTable, this method can be used to set the new
column and row sizes back to the model. */
@@ -119,8 +119,8 @@ public:
sal_Int32 getHorizontalEdge( int nEdgeY, sal_Int32* pnMin = 0, sal_Int32* pnMax = 0 );
sal_Int32 getVerticalEdge( int nEdgeX , sal_Int32* pnMin = 0, sal_Int32* pnMax = 0);
- void DistributeColumns( ::Rectangle& rArea, sal_Int32 nFirstCol, sal_Int32 nLastCol );
- void DistributeRows( ::Rectangle& rArea, sal_Int32 nFirstRow, sal_Int32 nLastRow );
+ void DistributeColumns( basegfx::B2DRange& o_aArea, sal_Int32 nFirstCol, sal_Int32 nLastCol );
+ void DistributeRows( basegfx::B2DRange& o_aArea, sal_Int32 nFirstRow, sal_Int32 nLastRow );
com::sun::star::text::WritingMode GetWritingMode() const { return meWritingMode; }
void SetWritingMode( com::sun::star::text::WritingMode eWritingMode );
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unopage.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unopage.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unopage.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unopage.cxx Fri Jun 1 17:57:48 2012
@@ -925,31 +925,6 @@ SvxShape* CreateSvxShapeByTypeAndInvento
return SvxDrawPage::CreateShapeByTypeAndInventor( nType, nInventor );
}
-//CMCXvoid SvxDrawPage::ChangeModel( SdrModel* pNewModel )
-//CMCX{
-//CMCX if( pNewModel != mpModel )
-//CMCX {
-//CMCX if( mpModel )
-//CMCX EndListening( *mpModel );
-//CMCX
-//CMCX if( pNewModel )
-//CMCX StartListening( *pNewModel );
-//CMCX
-//CMCX mpModel = pNewModel;
-//CMCX
-//CMCX if( mpView )
-//CMCX {
-//CMCX delete mpView;
-//CMCX
-//CMCX if(mpModel)
-//CMCX mpView = new SdrView( *mpModel );
-//CMCX
-//CMCX if( mpView )
-//CMCX mpView->SetDesignMode(true);
-//CMCX }
-//CMCX }
-//CMCX}
-
/** returns a StarOffice API wrapper for the given SdrPage */
uno::Reference< drawing::XDrawPage > GetXDrawPageForSdrPage( SdrPage* pPage ) throw ()
{
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshape.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshape.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshape.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshape.cxx Fri Jun 1 17:57:48 2012
@@ -528,41 +528,6 @@ void SvxShape::Create( SdrObject* pNewOb
//----------------------------------------------------------------------
-//CMCXvoid SvxShape::ChangeModel( SdrModel* pNewModel ) // TTTT: Needed anymore?
-//CMCX{
-//CMCX DBG_TESTSOLARMUTEX();
-//CMCX if( mpObj.is() )
-//CMCX {
-//CMCX if( &mpObj->getSdrModelFromSdrObject() != pNewModel )
-//CMCX {
-//CMCX EndListening( mpObj->getSdrModelFromSdrObject() );
-//CMCX }
-//CMCX }
-//CMCX
-//CMCX // --> CL, OD 2005-07-19 #i52126# - always listen to new model
-//CMCX if( pNewModel )
-//CMCX {
-//CMCX StartListening( *pNewModel );
-//CMCX }
-//CMCX // <--
-//CMCX
-//CMCX // HACK #i53696# ChangeModel should be virtual, but it isn't. can't change that for 2.0.1
-//CMCX SvxShapeText* pShapeText = dynamic_cast< SvxShapeText* >( this );
-//CMCX if( pShapeText )
-//CMCX {
-//CMCX SvxTextEditSource* pTextEditSource = dynamic_cast< SvxTextEditSource* >( pShapeText->GetEditSource() );
-//CMCX if( pTextEditSource )
-//CMCX pTextEditSource->ChangeModel( pNewModel );
-//CMCX }
-//CMCX
-//CMCX mpModel = pNewModel;
-//CMCX
-//CMCX if( mpImpl->mpMaster )
-//CMCX mpImpl->mpMaster->modelChanged( pNewModel );
-//CMCX}
-
-//----------------------------------------------------------------------
-
void SvxShape::ForceMetricToItemPoolMetric(basegfx::B2DPoint& rPoint) const throw()
{
DBG_TESTSOLARMUTEX();
Modified: incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshtxt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshtxt.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshtxt.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/svx/source/unodraw/unoshtxt.cxx Fri Jun 1 17:57:48 2012
@@ -162,8 +162,6 @@ public:
DECL_LINK( NotifyHdl, EENotify* );
-//CMCX void ChangeModel( SdrModel* pNewModel );
-
void UpdateOutliner();
};
@@ -310,51 +308,6 @@ void SAL_CALL SvxTextEditSourceImpl::rel
delete this;
}
-//CMCXvoid SvxTextEditSourceImpl::ChangeModel( SdrModel* pNewModel )
-//CMCX{
-//CMCX if( mpModel != pNewModel )
-//CMCX {
-//CMCX if( mpModel )
-//CMCX EndListening( *mpModel );
-//CMCX
-//CMCX if( mpOutliner )
-//CMCX {
-//CMCX if( mpModel )
-//CMCX mpModel->disposeOutliner( mpOutliner );
-//CMCX else
-//CMCX delete mpOutliner;
-//CMCX mpOutliner = 0;
-//CMCX }
-//CMCX
-//CMCX if( mpView )
-//CMCX {
-//CMCX EndListening( *mpView );
-//CMCX mpView = 0;
-//CMCX }
-//CMCX
-//CMCX mpWindow = 0;
-//CMCX m_xLinguServiceManager.clear();
-//CMCX mpOwner = 0;
-//CMCX
-//CMCX mpModel = pNewModel;
-//CMCX
-//CMCX if( mpTextForwarder )
-//CMCX {
-//CMCX delete mpTextForwarder;
-//CMCX mpTextForwarder = 0;
-//CMCX }
-//CMCX
-//CMCX if( mpViewForwarder )
-//CMCX {
-//CMCX delete mpViewForwarder;
-//CMCX mpViewForwarder = 0;
-//CMCX }
-//CMCX
-//CMCX if( mpModel )
-//CMCX StartListening( *mpModel );
-//CMCX }
-//CMCX}
-
//------------------------------------------------------------------------
void SvxTextEditSourceImpl::Notify( SfxBroadcaster&, const SfxHint& rHint )
@@ -1163,11 +1116,6 @@ const SvxUnoTextRangeBaseList& SvxTextEd
return mpImpl->getRanges();
}
-//CMCXvoid SvxTextEditSource::ChangeModel( SdrModel* pNewModel )
-//CMCX{
-//CMCX mpImpl->ChangeModel( pNewModel );
-//CMCX}
-
void SvxTextEditSource::UpdateOutliner()
{
mpImpl->UpdateOutliner();
Modified: incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/escher.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/escher.hxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/escher.hxx (original)
+++ incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/escher.hxx Fri Jun 1 17:57:48 2012
@@ -173,8 +173,10 @@ public:
virtual void WriteFrmExtraData(const SwFrmFmt& rFmt);
- virtual EscherExHostAppData* StartShape(const com::sun::star::uno::Reference<
- com::sun::star::drawing::XShape > &, const basegfx::B2DRange*);
+ virtual EscherExHostAppData* StartShape(
+ const com::sun::star::uno::Reference< com::sun::star::drawing::XShape > &,
+ const basegfx::B2DPoint* pObjectPosition,
+ const basegfx::B2DVector* pObjectScale);
private:
//No copying
SwEscherEx(const SwEscherEx&);
Modified: incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/wrtw8esh.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/wrtw8esh.cxx?rev=1345289&r1=1345288&r2=1345289&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/wrtw8esh.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/sw/source/filter/ww8/wrtw8esh.cxx Fri Jun 1 17:57:48 2012
@@ -1258,7 +1258,10 @@ void WW8Export::WriteEscher()
}
}
-EscherExHostAppData* SwEscherEx::StartShape(const com::sun::star::uno::Reference< com::sun::star::drawing::XShape > &, const basegfx::B2DRange*)
+EscherExHostAppData* SwEscherEx::StartShape(
+ const com::sun::star::uno::Reference< com::sun::star::drawing::XShape > &,
+ const basegfx::B2DPoint* /*pObjectPosition*/,
+ const basegfx::B2DVector* /*pObjectScale*/)
{
return &aHostData;
}
@@ -1405,10 +1408,16 @@ sal_Int32 SwBasicEscherEx::WriteGrfFlyFr
aScale *= OutputDevice::GetFactorLogicToLogic(aGraphic.GetPrefMapMode().GetMapUnit(), MAP_100TH_MM);
}
- const basegfx::B2DRange aRange(basegfx::B2DPoint(0.0, 0.0), aScale);
+ const basegfx::B2DPoint aPoint(0.0, 0.0);
- sal_uInt32 nBlibId = mxGlobal->GetBlibID( *QueryPictureStream(),
- aUniqueId, aRange, NULL, 0 );
+ sal_uInt32 nBlibId = mxGlobal->GetBlibID(
+ *QueryPictureStream(),
+ aUniqueId,
+ aPoint,
+ aScale,
+ NULL,
+ 0 );
+
if (nBlibId)
aPropOpt.AddOpt(ESCHER_Prop_pib, nBlibId, sal_True);
}
@@ -1611,10 +1620,16 @@ void SwBasicEscherEx::WriteBrushAttr(con
aScale *= OutputDevice::GetFactorLogicToLogic(rGraphic.GetPrefMapMode().GetMapUnit(), MAP_100TH_MM);
}
- const basegfx::B2DRange aRange(basegfx::B2DPoint(0.0, 0.0), aScale);
+ const basegfx::B2DPoint aPoint(0.0, 0.0);
+
+ sal_uInt32 nBlibId = mxGlobal->GetBlibID(
+ *QueryPictureStream(),
+ aUniqueId,
+ aPoint,
+ aScale,
+ NULL,
+ 0);
- sal_uInt32 nBlibId = mxGlobal->GetBlibID( *QueryPictureStream(),
- aUniqueId, aRange, NULL, 0);
if (nBlibId)
rPropOpt.AddOpt(ESCHER_Prop_fillBlip,nBlibId,sal_True);
}
@@ -2648,11 +2663,16 @@ void SwBasicEscherEx::WriteOLEPicture(Es
if (aId.Len())
{
const basegfx::B2DRange aObjectRange(sdr::legacy::GetLogicRange(rObj));
- const basegfx::B2DRange aRange(0.0, 0.0,
- DrawModelToEmu(aObjectRange.getWidth()),
- DrawModelToEmu(aObjectRange.getHeight()));
- sal_uInt32 nBlibId = mxGlobal->GetBlibID( *QueryPictureStream(),
- aId, aRange, pVisArea, 0); // SJ: the fourth parameter (VisArea) should be set..
+ const basegfx::B2DPoint aPoint(0.0, 0.0);
+ const basegfx::B2DVector aScale(DrawModelToEmu(aObjectRange.getWidth()), DrawModelToEmu(aObjectRange.getHeight()));
+ sal_uInt32 nBlibId = mxGlobal->GetBlibID(
+ *QueryPictureStream(),
+ aId,
+ aPoint,
+ aScale,
+ pVisArea,
+ 0); // SJ: the fifth parameter (VisArea) should be set..
+
if (nBlibId)
rPropOpt.AddOpt(ESCHER_Prop_pib, nBlibId, sal_True);
}