61#include <osl/diagnose.h>
69 class impTextBreakupHandler
99 void impFlushTextPortionPrimitivesToLinePrimitives();
100 void impFlushLinePrimitivesToParagraphPrimitives(sal_Int32 nPara);
105 explicit impTextBreakupHandler(
SdrOutliner& rOutliner)
106 : mrOutliner(rOutliner)
113 maNewTransformA = rNewTransformA;
114 maNewTransformB = rNewTransformB;
116 mrOutliner.
SetDrawBulletHdl(
LINK(
this, impTextBreakupHandler, decomposeContourBulletPrimitive));
122 void decomposeBlockTextPrimitive(
127 maNewTransformA = rNewTransformA;
128 maNewTransformB = rNewTransformB;
129 maClipRange = rClipRange;
139 maNewTransformA = rNewTransformA;
140 maNewTransformB = rNewTransformB;
142 mrOutliner.
SetDrawBulletHdl(
LINK(
this, impTextBreakupHandler, decomposeStretchBulletPrimitive));
151 void impTextBreakupHandler::impCreateTextPortionPrimitive(
const DrawPortionInfo& rInfo)
167 aNewTransform.
scale(aFontScaling.
getX(), aFontScaling.
getY());
174 aNewTransform.
scale(fFactor, fFactor);
178 if(rInfo.
mrFont.GetOrientation())
188 if(DFLT_ESC_AUTO_SUPER == nEsc)
190 nEsc = .8 * (100 - nPropr);
191 assert (nEsc == DFLT_ESC_SUPER &&
"I'm sure this formula needs to be changed, but how to confirm that???");
194 else if(DFLT_ESC_AUTO_SUB == nEsc)
196 nEsc = .2 * -(100 - nPropr);
197 assert (nEsc == -20 &&
"I'm sure this formula needs to be changed, but how to confirm that???");
201 if(nEsc > MAX_ESC_POS)
205 else if(nEsc < -MAX_ESC_POS)
210 const double fEscapement(nEsc / -100.0);
211 aNewTransform.
translate(0.0, fEscapement * aFontScaling.
getY());
215 aNewTransform *= maNewTransformA;
221 aNewTransform *= maNewTransformB;
225 ::std::vector< double > aDXArray;
233 aDXArray.push_back(
static_cast<double>(rInfo.
mpDXArray[a]));
237 ::std::vector< sal_Bool > aKashidaArray;
253 const Color aTextFillColor(rInfo.
mrFont.GetFillColor());
262 const bool bDecoratedIsNeeded(
263 LINESTYLE_NONE != rInfo.
mrFont.GetOverline()
264 || LINESTYLE_NONE != rInfo.
mrFont.GetUnderline()
265 || STRIKEOUT_NONE != rInfo.
mrFont.GetStrikeout()
266 || FontEmphasisMark::NONE != (rInfo.
mrFont.GetEmphasisMark() & FontEmphasisMark::Style)
267 || FontRelief::NONE != rInfo.
mrFont.GetRelief()
268 || rInfo.
mrFont.IsShadow()
271 if(bDecoratedIsNeeded)
276 const basegfx::BColor aBUnderlineColor((aUnderlineColor == COL_AUTO) ? aBFontColor : aUnderlineColor.getBColor());
278 const basegfx::BColor aBOverlineColor((aOverlineColor == COL_AUTO) ? aBFontColor : aOverlineColor.getBColor());
287 const bool bUnderlineAbove(
297 switch(rInfo.
mrFont.GetEmphasisMark() & FontEmphasisMark::Style)
306 const bool bEmphasisMarkAbove(rInfo.
mrFont.GetEmphasisMark() & FontEmphasisMark::PosAbove);
307 const bool bEmphasisMarkBelow(rInfo.
mrFont.GetEmphasisMark() & FontEmphasisMark::PosBelow);
312 switch(rInfo.
mrFont.GetRelief())
320 const bool bShadow(rInfo.
mrFont.IsShadow());
330 std::vector(aDXArray),
331 std::vector(aKashidaArray),
359 std::vector(aDXArray),
360 std::vector(aKashidaArray),
361 std::move(aFontAttribute),
369 if (aFontColor.IsTransparent())
374 (255 - aFontColor.GetAlpha()) / 255.0);
387 pNewPrimitive = impCheckFieldPrimitive(pNewPrimitive.get(), rInfo);
390 maTextPortionPrimitives.push_back(pNewPrimitive);
397 const sal_Int32 nDXCount(aDXArray.size());
400 for(sal_Int32
a(0);
a < nSize;
a++)
411 if(nStart > 0 && nStart - 1 < nDXCount)
413 fStart = aDXArray[nStart - 1];
416 if(nEnd > 0 && nEnd - 1 < nDXCount)
418 fEnd = aDXArray[nEnd - 1];
428 const double fTextWidth(aDXArray[aDXArray.size() - 1]);
430 fStart = fTextWidth - fStart;
431 fEnd = fTextWidth - fEnd;
437 std::swap(fStart, fEnd);
442 const double fFontScaleX(aFontScaling.
getX());
447 fStart /= fFontScaleX;
484 std::vector< std::pair< OUString, OUString>> meValues;
485 meValues.emplace_back(
"URL", pURLField->
GetURL());
487 meValues.emplace_back(
"TargetFrame", pURLField->
GetTargetFrame());
488 meValues.emplace_back(
"SvxURLFormat", OUString::number(
static_cast<sal_uInt16
>(pURLField->
GetFormat())));
504 void impTextBreakupHandler::impFlushTextPortionPrimitivesToLinePrimitives()
508 if(!maTextPortionPrimitives.empty())
514 void impTextBreakupHandler::impFlushLinePrimitivesToParagraphPrimitives(sal_Int32 nPara)
516 sal_Int16 nDepth = mrOutliner.
GetDepth(nPara);
520 const sal_Int16 nOutlineLevel( eInfo.
bVisible ? nDepth : -1);
525 maParagraphPrimitives.push_back(
527 std::move(maLinePrimitives),
531 void impTextBreakupHandler::impHandleDrawPortionInfo(
const DrawPortionInfo& rInfo)
533 impCreateTextPortionPrimitive(rInfo);
537 impFlushTextPortionPrimitivesToLinePrimitives();
542 impFlushLinePrimitivesToParagraphPrimitives(rInfo.
mnPara);
546 void impTextBreakupHandler::impHandleDrawBulletInfo(
const DrawBulletInfo& rInfo)
554 aNewTransform *= maNewTransformA;
560 aNewTransform *= maNewTransformB;
576 maTextPortionPrimitives.push_back(pNewPrimitive);
583 if(pInfo &&
static_cast<double>(pInfo->mrStartPos.Y()) < maScale.
getY())
585 impHandleDrawPortionInfo(*pInfo);
600 const basegfx::B2DPoint aStartPosition(pInfo->mrStartPos.X(), pInfo->mrStartPos.Y());
602 if(!maClipRange.
isInside(aStartPosition))
609 aTextLayouterDevice.
setFont(pInfo->mrFont);
613 pInfo->maText, pInfo->mnTextStart, pInfo->mnTextLen));
622 const basegfx::B2DPoint aBottomRight(aTextBoundRect.getMaximum() + aStartPosition);
624 if(!maClipRange.
isInside(aBottomRight))
631 impHandleDrawPortionInfo(*pInfo);
638 impHandleDrawPortionInfo(*pInfo);
646 impHandleDrawBulletInfo(*pInfo);
654 impHandleDrawBulletInfo(*pInfo);
662 impHandleDrawBulletInfo(*pInfo);
668 if(!maTextPortionPrimitives.empty())
671 impFlushTextPortionPrimitivesToLinePrimitives();
674 if(!maLinePrimitives.empty())
680 return std::move(maParagraphPrimitives);
694 double fRotate, fShearX;
704 const Size aNullSize;
724 bMirrorX ? -1.0 : 1.0, bMirrorY ? -1.0 : 1.0,
725 fShearX, fRotate, aTranslate.
getX(), aTranslate.
getY()));
728 impTextBreakupHandler aConverter(rOutliner);
729 aConverter.decomposeContourTextPrimitive(aNewTransformA, aNewTransformB, aScale);
735 rTarget = aConverter.extractPrimitive2DSequence();
745 double fRotate, fShearX;
750 aAnchorTextRange.
expand(aTranslate + aScale);
759 const Size aNullSize;
764 rOutliner.
SetControlWord(nOriginalControlWord|EEControlBits::AUTOPAGESIZE|EEControlBits::STRETCHING);
773 const sal_uInt32 nAnchorTextWidth(
FRound(aAnchorTextRange.
getWidth() + 1));
774 const sal_uInt32 nAnchorTextHeight(
FRound(aAnchorTextRange.
getHeight() + 1));
776 OSL_ENSURE(pOutlinerParaObject,
"impDecomposeBlockTextPrimitive used with no OutlinerParaObject (!)");
778 const bool bTopToBottom(pOutlinerParaObject->
IsTopToBottom());
779 const Size aAnchorTextSize(
Size(nAnchorTextWidth, nAnchorTextHeight));
800 rOutliner.
SetText(*pOutlinerParaObject);
814 const double fFree(aAnchorTextRange.
getWidth() - aOutlinerScale.
getX());
818 aAdjustTranslate.
setX(fFree / 2.0);
823 aAdjustTranslate.
setX(fFree);
830 const double fFree(aAnchorTextRange.
getHeight() - aOutlinerScale.
getY());
834 aAdjustTranslate.
setY(fFree / 2.0);
839 aAdjustTranslate.
setY(fFree);
851 const double fStartInX(bVerticalWriting && bTopToBottom ? aAdjustTranslate.
getX() + aOutlinerScale.
getX() : aAdjustTranslate.
getX());
852 const double fStartInY(bVerticalWriting && !bTopToBottom ? aAdjustTranslate.
getY() + aOutlinerScale.
getY() : aAdjustTranslate.
getY());
853 aNewTransformA.
translate(fStartInX, fStartInY);
859 aNewTransformB.
scale(bMirrorX ? -1.0 : 1.0, bMirrorY ? -1.0 : 1.0);
863 aNewTransformB.
shearX(fShearX);
864 aNewTransformB.
rotate(fRotate);
870 impTextBreakupHandler aConverter(rOutliner);
871 aConverter.decomposeBlockTextPrimitive(aNewTransformA, aNewTransformB, aClipRange);
879 rTarget = aConverter.extractPrimitive2DSequence();
917 return pBackgroundFillSet;
937 double fRotate, fShearX;
942 aAnchorTextRange.
expand(aTranslate + aScale);
945 const bool bIsCell(rSdrBlockTextPrimitive.
getCellText());
951 const Size aNullSize;
956 rOutliner.
SetControlWord(nOriginalControlWord|EEControlBits::AUTOPAGESIZE);
965 const sal_uInt32 nAnchorTextWidth(
FRound(aAnchorTextRange.
getWidth() + 1));
966 const sal_uInt32 nAnchorTextHeight(
FRound(aAnchorTextRange.
getHeight() + 1));
969 const Size aAnchorTextSize(
Size(nAnchorTextWidth, nAnchorTextHeight));
1004 if(bHorizontalIsBlock)
1009 else if(bVerticalIsBlock)
1023 Size aMaxAutoPaperSize(aAnchorTextSize);
1026 bool bAllowGrowVertical = !bVerticalWriting;
1027 bool bAllowGrowHorizontal = bVerticalWriting;
1033 bAllowGrowVertical = bHorizontalIsBlock;
1034 bAllowGrowHorizontal = bVerticalIsBlock;
1037 if (bAllowGrowVertical)
1042 else if (bAllowGrowHorizontal)
1045 aMaxAutoPaperSize.
setWidth(1000000);
1068 if(aAnchorTextRange.
getWidth() < aOutlinerScale.
getX() && !bVerticalWriting)
1085 if(aAnchorTextRange.
getHeight() < aOutlinerScale.
getY() && bVerticalWriting)
1099 const double fFree(aAnchorTextRange.
getWidth() - aOutlinerScale.
getX());
1103 aAdjustTranslate.
setX(fFree / 2.0);
1108 aAdjustTranslate.
setX(fFree);
1112 const double fFreeVerticalSpace(aAnchorTextRange.
getHeight() - aOutlinerScale.
getY());
1113 bool bClipVerticalTextOverflow = fFreeVerticalSpace < 0
1117 && !bClipVerticalTextOverflow)
1121 aAdjustTranslate.
setY(fFreeVerticalSpace / 2.0);
1126 aAdjustTranslate.
setY(fFreeVerticalSpace);
1135 const double fStartInX(bVerticalWriting && bTopToBottom ? aAdjustTranslate.
getX() + aOutlinerScale.
getX() : aAdjustTranslate.
getX());
1136 const double fStartInY(bVerticalWriting && !bTopToBottom ? aAdjustTranslate.
getY() + aOutlinerScale.
getY() : aAdjustTranslate.
getY());
1145 aTranslate.
getY() + aAdjustTranslate.
getY(),
1146 aTranslate.
getX() + aOutlinerScale.
getX() - aAdjustTranslate.
getX(),
1147 aTranslate.
getY() + aOutlinerScale.
getY() - aAdjustTranslate.
getY());
1151 aNewTransformA.
translate(-aTranslateToCenter.
getX(), -aTranslateToCenter.
getY());
1164 bMirrorX ? -1.0 : 1.0, bMirrorY ? -1.0 : 1.0,
1165 fShearX, fRotate, aTranslate.
getX(), aTranslate.
getY()));
1170 if(bClipVerticalTextOverflow)
1171 aClipRange = {0, 0, std::numeric_limits<double>::max(), aAnchorTextRange.
getHeight()};
1174 impTextBreakupHandler aConverter(rOutliner);
1175 aConverter.decomposeBlockTextPrimitive(aNewTransformA, aNewTransformB, aClipRange);
1182 rTarget = aConverter.extractPrimitive2DSequence();
1192 double fRotate, fShearX;
1199 const Size aNullSize;
1201 rOutliner.
SetControlWord(nOriginalControlWord|EEControlBits::STRETCHING|EEControlBits::AUTOPAGESIZE);
1237 const double fScaleX(fabs(aScale.
getX()) / aOutlinerScale.
getX());
1238 const double fScaleY(fabs(aScale.
getY()) / aOutlinerScale.
getY());
1239 rOutliner.
setGlobalScale(fScaleX * 100.0, fScaleY * 100.0, 100.0, 100.0);
1249 bMirrorX ? -1.0 : 1.0, bMirrorY ? -1.0 : 1.0,
1250 fShearX, fRotate, aTranslate.
getX(), aTranslate.
getY()));
1253 impTextBreakupHandler aConverter(rOutliner);
1254 aConverter.decomposeStretchTextPrimitive(aNewTransformA, aNewTransformB);
1261 rTarget = aConverter.extractPrimitive2DSequence();
1266#define ENDLESS_LOOP (0xffffffff)
1267#define ENDLESS_TIME (double(0xffffffff))
1268#define PIXEL_DPI (96.0)
1309 if(bVisibleWhenStarted)
1313 rAnimList.
append(aInOut);
1322 if(0 != nRepeat && bVisibleWhenStopped)
1326 rAnimList.
append(aOutIn);
1340 bForward = !bForward;
1343 const double fStartPosition(bForward ? fRelativeTextLength : 1.0 - fRelativeTextLength);
1344 const double fEndPosition(bForward ? 1.0 - fRelativeTextLength : fRelativeTextLength);
1348 if(!bVisibleWhenStarted)
1352 rAnimList.
append(aOutIn);
1357 const double fInnerMovePath(fabs(1.0 - (fRelativeTextLength * 2.0)));
1358 const double fTimeForInnerPath(fTimeFullPath * fInnerMovePath);
1359 const double fHalfInnerPath(fTimeForInnerPath * 0.5);
1360 const sal_uInt32 nDoubleRepeat(nRepeat / 2L);
1362 if(nDoubleRepeat || 0 == nRepeat)
1379 rAnimList.
append(aTime0);
1381 rAnimList.
append(aTime1);
1388 if(bVisibleWhenStopped)
1398 rAnimList.
append(aInOut);
1405 const double fStartPosition(bForward ? 0.0 : 1.0);
1410 rAnimList.
append(aOutIn);
1413 if(nRepeat > 1 || 0 == nRepeat)
1449 fAnimationDelay = 50.0;
1457 fSingleStepWidth = (-fSingleStepWidth * (2540.0 /
PIXEL_DPI));
1463 fSingleStepWidth = 100.0;
1468 const double fFullPathLength(fFrameLength + fTextLength);
1469 const double fNumberOfSteps(fFullPathLength / fSingleStepWidth);
1470 double fTimeFullPath(fNumberOfSteps * fAnimationDelay);
1472 if(fTimeFullPath < fAnimationDelay)
1474 fTimeFullPath = fAnimationDelay;
1486 double fRelativeTextLength(fTextLength / (fFrameLength + fTextLength));
1512 for (
size_t i = 0;
i < nObjCount;
i++)
1517 SAL_INFO(
"svx.chaining",
"Working on TextBox " <<
i);
1554 double fRotate, fShearX;
1559 aAnchorTextRange.
expand(aTranslate + aScale);
1569 const Size aNullSize;
1574 rOutliner.
SetControlWord(nOriginalControlWord|EEControlBits::AUTOPAGESIZE|EEControlBits::STRETCHING);
1579 const sal_uInt32 nAnchorTextWidth(
FRound(aAnchorTextRange.
getWidth() + 1));
1580 const sal_uInt32 nAnchorTextHeight(
FRound(aAnchorTextRange.
getHeight() + 1));
1584 OSL_ENSURE(pOutlinerParaObject,
"impDecomposeBlockTextPrimitive used with no OutlinerParaObject (!)");
1587 const bool bTopToBottom(pOutlinerParaObject->
IsTopToBottom());
1588 const Size aAnchorTextSize(
Size(nAnchorTextWidth, nAnchorTextHeight));
1608 rOutliner.
SetText(*pOutlinerParaObject);
1627 const double fFree(aAnchorTextRange.
getWidth() - aOutlinerScale.
getX());
1631 aAdjustTranslate.
setX(fFree / 2.0);
1636 aAdjustTranslate.
setX(fFree);
1643 const double fFree(aAnchorTextRange.
getHeight() - aOutlinerScale.
getY());
1647 aAdjustTranslate.
setY(fFree / 2.0);
1652 aAdjustTranslate.
setY(fFree);
1664 const double fStartInX(bVerticalWriting && bTopToBottom ? aAdjustTranslate.
getX() + aOutlinerScale.
getX() : aAdjustTranslate.
getX());
1665 const double fStartInY(bVerticalWriting && !bTopToBottom ? aAdjustTranslate.
getY() + aOutlinerScale.
getY() : aAdjustTranslate.
getY());
1666 aNewTransformA.
translate(fStartInX, fStartInY);
1672 aNewTransformB.
scale(bMirrorX ? -1.0 : 1.0, bMirrorY ? -1.0 : 1.0);
1676 aNewTransformB.
shearX(fShearX);
1677 aNewTransformB.
rotate(fRotate);
1683 impTextBreakupHandler aConverter(rOutliner);
1684 aConverter.decomposeBlockTextPrimitive(aNewTransformA, aNewTransformB, aClipRange);
1691 rTarget = aConverter.extractPrimitive2DSequence();
1703 impTextBreakupHandler aConverter(rOutliner);
1704 aConverter.decomposeBlockTextPrimitive(rNewTransformA, rNewTransformB, rClipRange);
1705 rTarget.append(aConverter.extractPrimitive2DSequence());
1710 const css::uno::Any* pAny;
1711 double fTextCameraZRotateAngle = 0.0;
1718 *pAny >>= fTextCameraZRotateAngle;
1720 return fTextCameraZRotateAngle;
IMPL_LINK(MaskData, PipetteHdl, const OUString &, rId, void)
const GraphicObject maBulletGraphicObject
o3tl::span< const sal_Bool > mpKashidaArray
const SvxFieldData * mpFieldData
const Color maOverlineColor
const EEngineData::WrongSpellVector * mpWrongSpellVector
const Color maTextLineColor
tools::Long mnWidthToFill
const css::lang::Locale * mpLocale
o3tl::span< const sal_Int32 > mpDXArray
bool IsTopToBottom() const
bool IsEffectivelyVertical() const
void SetMaxAutoPaperSize(const Size &rSz)
void SetText(const OutlinerParaObject &)
const Size & GetPaperSize() const
void SetDrawPortionHdl(const Link< DrawPortionInfo *, void > &rLink)
void SetMinColumnWrapHeight(tools::Long nVal)
void SetMinAutoPaperSize(const Size &rSz)
void SetPaperSize(const Size &rSize)
sal_Int16 GetDepth(sal_Int32 nPara) const
bool SetUpdateLayout(bool bUpdate)
void SetDrawBulletHdl(const Link< DrawBulletInfo *, void > &rLink)
void SetFixedCellHeight(bool bUseFixedCellHeight)
EEControlBits GetControlWord() const
EBulletInfo GetBulletInfo(sal_Int32 nPara)
Color const & GetBackgroundColor() const
void SetControlWord(EEControlBits nWord)
void SetPolygon(const basegfx::B2DPolyPolygon &rPolyPolygon)
void setGlobalScale(double rFontX=100.0, double rFontY=100.0, double rSpacingX=100.0, double rSpacingY=100.0)
void SetBackgroundColor(const Color &rColor)
sal_Int32 GetParagraphCount() const
constexpr tools::Long Y() const
constexpr tools::Long X() const
css::uno::Any * GetPropertyValueByName(const OUString &rPropName)
bool setSuitableOutlinerBg(Outliner &rOutliner) const
SdrModel & getSdrModelFromSdrObject() const
const Graphic * getFillGraphic() const
bool IsGroupObject() const
SdrPage * getSdrPageFromSdrObject() const
const SfxItemSet * getBackgroundFillSet() const
const SfxItemSet & GetObjectItemSet() const
void setVisualizedPage(const SdrPage *pPage)
const SfxItemSet & GetItemSet() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
SdrPage & TRG_GetMasterPage() const
bool IsMasterPage() const
bool TRG_HasMasterPage() const
SdrPageProperties & getSdrPageProperties()
SdrTextHorzAdjust GetTextHorizontalAdjust() const
double GetCameraZRotation() const
SdrOutliner & ImpGetDrawOutliner() const
bool IsInEditMode() const
void impDecomposeContourTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrContourTextPrimitive2D &rSdrContourTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
void impDecomposeBlockTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrBlockTextPrimitive2D &rSdrBlockTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
void impDecomposeStretchTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrStretchTextPrimitive2D &rSdrStretchTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
void impDecomposeChainedTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrChainedTextPrimitive2D &rSdrChainedTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
void ImpAutoFitText(SdrOutliner &rOutliner) const
SVX_DLLPRIVATE void ImpInitDrawOutliner(SdrOutliner &rOutl) const
SdrTextAniDirection GetTextAniDirection() const
void impGetScrollTextTiming(drawinglayer::animation::AnimationEntryList &rAnimList, double fFrameLength, double fTextLength) const
void impDecomposeAutoFitTextPrimitive(drawinglayer::primitive2d::Primitive2DContainer &rTarget, const drawinglayer::primitive2d::SdrAutoFitTextPrimitive2D &rSdrAutofitTextPrimitive, const drawinglayer::geometry::ViewInformation2D &aViewInformation) const
static void impDecomposeBlockTextPrimitiveDirect(drawinglayer::primitive2d::Primitive2DContainer &rTarget, SdrOutliner &rOutliner, const basegfx::B2DHomMatrix &rNewTransformA, const basegfx::B2DHomMatrix &rNewTransformB, const basegfx::B2DRange &rClipRange)
SdrTextVertAdjust GetTextVerticalAdjust() const
TextChain * GetTextChain() const
SdrTextAniKind GetTextAniKind() const
void impGetBlinkTextTiming(drawinglayer::animation::AnimationEntryList &rAnimList) const
void impHandleChainingEventsDuringDecomposition(SdrOutliner &rOutliner) const
OutlinerParaObject * GetOutlinerParaObject()
const SfxItemSet & GetItemSet() const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
constexpr tools::Long getHeight() const
constexpr tools::Long Height() const
constexpr tools::Long getWidth() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
sal_uInt8 GetPropr() const
short GetEscapement() const
OUString CalcCaseMap(const OUString &rTxt) const
const OUString & GetRepresentation() const
SvxURLFormat GetFormat() const
const OUString & GetTargetFrame() const
const OUString & GetURL() const
void ExecuteUnderflow(SdrOutliner *)
void ExecuteOverflow(SdrOutliner *, SdrOutliner *)
virtual void CheckForFlowEvents(SdrOutliner *)
void SetNilChainingEvent(const SdrTextObj *, bool)
bool decompose(B2DTuple &rScale, B2DTuple &rTranslate, double &rRotate, double &rShearX) const
void rotate(double fRadiant)
void translate(double fX, double fY)
void scale(double fX, double fY)
void transform(const basegfx::B2DHomMatrix &rMatrix)
void expand(const Tuple2D< TYPE > &rTuple)
bool isInside(const Tuple2D< TYPE > &rTuple) const
void append(const AnimationEntry &rCandidate)
const basegfx::B2DHomMatrix & getTextRangeTransform() const
const basegfx::B2DHomMatrix & getTextRangeTransform() const
bool isFixedCellHeight() const
SdrTextHorzAdjust getSdrTextHorzAdjust() const
SdrTextVertAdjust getSdrTextVertAdjust() const
bool getUnlimitedPage() const
const basegfx::B2DHomMatrix & getTextRangeTransform() const
const basegfx::B2DPolyPolygon & getUnitPolyPolygon() const
const basegfx::B2DHomMatrix & getObjectTransform() const
bool isFixedCellHeight() const
const basegfx::B2DHomMatrix & getTextRangeTransform() const
const OutlinerParaObject & getOutlinerParaObject() const
const SdrText * getSdrText() const
basegfx::B2DRange getTextBoundRect(const OUString &rText, sal_uInt32 nIndex, sal_uInt32 nLength) const
void setFont(const vcl::Font &rFont)
constexpr bool empty() const noexcept
@ AnchoredTextOverflowLegacy
for tdf#99729
DECL_LINK(CheckNameHdl, SvxNameDialog &, bool)
constexpr TypedWhichId< SvxAdjustItem > EE_PARA_JUST(EE_PARA_START+16)
tools::Long FRound(double fVal)
#define LINK(Instance, Class, Member)
#define SAL_INFO(area, stream)
B2DHomMatrix createScaleB2DHomMatrix(double fScaleX, double fScaleY)
B2DHomMatrix createTranslateB2DHomMatrix(double fTranslateX, double fTranslateY)
B2DHomMatrix createScaleShearXRotateTranslateB2DHomMatrix(double fScaleX, double fScaleY, double fShearX, double fRadiant, double fTranslateX, double fTranslateY)
constexpr double deg2rad(double v)
rtl::Reference< BasePrimitive2D > Primitive2DReference
TextLine mapFontLineStyleToTextLine(FontLineStyle eLineStyle)
TextStrikeout mapFontStrikeoutToTextStrikeout(FontStrikeout eFontStrikeout)
TEXT_FONT_EMPHASIS_MARK_DISC
TEXT_FONT_EMPHASIS_MARK_CIRCLE
TEXT_FONT_EMPHASIS_MARK_ACCENT
TEXT_FONT_EMPHASIS_MARK_NONE
TEXT_FONT_EMPHASIS_MARK_DOT
attribute::FontAttribute getFontAttributeFromVclFont(basegfx::B2DVector &o_rSize, const vcl::Font &rFont, bool bRTL, bool bBiDiStrong)
@ SDRTEXTVERTADJUST_BOTTOM
@ SDRTEXTVERTADJUST_BLOCK
@ SDRTEXTVERTADJUST_CENTER
@ SDRTEXTHORZADJUST_BLOCK
@ SDRTEXTHORZADJUST_CENTER
@ SDRTEXTHORZADJUST_RIGHT
SdrTextAniKind
Animation type for text frame.
@ Slide
scroll back and forth
@ Alternate
scroll through
constexpr TypedWhichId< SdrTextAniDelayItem > SDRATTR_TEXT_ANIDELAY(SDRATTR_MISC_FIRST+19)
constexpr TypedWhichId< SdrOnOffItem > SDRATTR_TEXT_CLIPVERTOVERFLOW(SDRATTR_MISC_FIRST+26)
constexpr TypedWhichId< SdrTextAniStartInsideItem > SDRATTR_TEXT_ANISTARTINSIDE(SDRATTR_MISC_FIRST+16)
constexpr TypedWhichId< SdrTextAniStopInsideItem > SDRATTR_TEXT_ANISTOPINSIDE(SDRATTR_MISC_FIRST+17)
constexpr TypedWhichId< SdrTextAniCountItem > SDRATTR_TEXT_ANICOUNT(SDRATTR_MISC_FIRST+18)
constexpr TypedWhichId< SdrTextAniAmountItem > SDRATTR_TEXT_ANIAMOUNT(SDRATTR_MISC_FIRST+20)
constexpr TypedWhichId< SdrCustomShapeGeometryItem > SDRATTR_CUSTOMSHAPE_GEOMETRY(SDRATTR_CUSTOMSHAPE_FIRST+2)
bool GetDraftFillColor(const SfxItemSet &rSet, Color &rCol)
Returns a replacement for an XFillStyle.
SdrTextObj * DynCastSdrTextObj(SdrObject *pObj)
static void impCreateSlideTiming(const SfxItemSet &rSet, drawinglayer::animation::AnimationEntryList &rAnimList, bool bForward, double fTimeFullPath, double fFrequency)
static void impCreateAlternateTiming(const SfxItemSet &rSet, drawinglayer::animation::AnimationEntryList &rAnimList, double fRelativeTextLength, bool bForward, double fTimeFullPath, double fFrequency)
static void impCreateScrollTiming(const SfxItemSet &rSet, drawinglayer::animation::AnimationEntryList &rAnimList, bool bForward, double fTimeFullPath, double fFrequency)
SdrPage * GetSdrPageFromXDrawPage(const uno::Reference< drawing::XDrawPage > &xDrawPage) noexcept
returns the SdrObject from the given StarOffice API wrapper
constexpr TypedWhichId< XFillBitmapItem > XATTR_FILLBITMAP(XATTR_FILL_FIRST+4)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)