20 #ifndef INCLUDED_SVX_SVDOTEXT_HXX
21 #define INCLUDED_SVX_SVDOTEXT_HXX
29 #include <tools/datetime.hxx>
37 #include <com/sun/star/drawing/TextFitToSizeType.hpp>
62 class SdrContourTextPrimitive2D;
63 class SdrPathTextPrimitive2D;
64 class SdrBlockTextPrimitive2D;
65 class SdrAutoFitTextPrimitive2D;
66 class SdrStretchTextPrimitive2D;
67 class SdrChainedTextPrimitive2D;
71 class AnimationEntryList;
75 class ViewInformation2D;
80 class SdrTableRtfExporter;
81 class SdrTableRTFParser;
88 #define SDRUSERDATA_OBJTEXTLINK (1)
121 virtual std::unique_ptr<SdrObjUserData>
Clone(
SdrObject* pObj1)
const override;
128 class CustomShapeProperties;
129 class CellProperties;
141 friend class sdr::table::Cell;
220 bool mbIsUnchainableClone =
false;
233 bool bTextSizeDirty : 1;
235 bool mbInEditMode : 1;
245 bool bDisableAutoWidthOnDragging : 1;
248 bool mbTextAnimationAllowed : 1;
251 bool mbInDownScale : 1;
259 SVX_DLLPRIVATE void ImpSetupDrawOutlinerForPaint(
bool bContourFrame,
265 void ImpAutoFitText(
SdrOutliner& rOutliner )
const;
266 void ImpAutoFitText(
SdrOutliner& rOutliner,
const Size& rShapeSize,
bool bIsVerticalWriting )
const;
273 static void AppendFamilyToStyleName(OUString& styleName,
SfxStyleFamily family);
276 static SfxStyleFamily ReadFamilyFromStyleName(
const OUString& styleName);
279 bool ImpCanConvTextToCurve()
const;
282 void ImpSetTextStyleSheetListeners();
283 static void ImpSetCharStretching(
SdrOutliner& rOutliner,
const Size& rTextSize,
const Size& rShapeSize,
Fraction& rFitXCorrection);
285 void ImpCheckShear();
287 void ImpSetTextEditParams()
const;
293 virtual std::unique_ptr<SdrObjGeoData>
NewGeoData()
const override;
301 virtual void AdaptTextMinSize();
337 void SetTextLink(
const OUString& rFileName,
const OUString& rFilterName);
338 void ReleaseTextLink();
339 bool IsLinkedText()
const {
return pPlusData!=
nullptr && GetLinkUserData()!=
nullptr; }
340 bool ReloadLinkedText(
bool bForceLoad);
341 bool LoadText(
const OUString& rFileName, rtl_TextEncoding eCharSet);
343 virtual bool AdjustTextFrameWidthAndHeight(
tools::Rectangle& rR,
bool bHgt =
true,
bool bWdt =
true)
const;
344 virtual bool NbcAdjustTextFrameWidthAndHeight(
bool bHgt =
true,
bool bWdt =
true);
345 virtual bool AdjustTextFrameWidthAndHeight();
349 bool IsAutoFit()
const;
351 bool IsFitToSize()
const;
357 bool IsChainable()
const;
358 bool GetPreventChainable()
const;
364 virtual bool HasText()
const override;
369 virtual SdrText* getActiveText()
const;
378 virtual bool IsReallyEdited()
const;
381 virtual void setActiveText( sal_Int32 nIndex );
384 virtual sal_Int32 CheckTextHit(
const Point& rPnt)
const;
387 void NbcSetText(
const OUString& rStr);
388 void SetText(
const OUString& rStr);
394 void FitFrameToTextSize();
395 double GetFontScaleY()
const;
406 virtual bool IsAutoGrowHeight()
const;
409 virtual bool IsAutoGrowWidth()
const;
413 css::drawing::TextFitToSizeType GetFitToSize()
const;
417 virtual bool IsFontwork()
const;
420 bool IsHideContour()
const;
423 bool IsContourTextFrame()
const;
483 virtual void NbcRotate(
const Point& rRef,
Degree100 nAngle,
double sn,
double cs)
override;
484 virtual void NbcMirror(
const Point& rRef1,
const Point& rRef2)
override;
485 virtual void NbcShear(
const Point& rRef,
Degree100 nAngle,
double tn,
bool bVShear)
override;
495 void NbcSetOutlinerParaObjectForText( std::unique_ptr<OutlinerParaObject> pTextObject,
SdrText* pText );
497 bool CanCreateEditOutlinerParaObject()
const;
498 std::unique_ptr<OutlinerParaObject> CreateEditOutlinerParaObject()
const;
502 virtual bool CalcFieldValue(
const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos,
503 bool bEdit, std::optional<Color>& rpTxtColor, std::optional<Color>& rpFldColor, OUString& rRet)
const;
541 virtual bool IsVerticalWriting()
const;
542 virtual void SetVerticalWriting(
bool bVertical);
545 virtual void onEditOutlinerStatusEvent(
EditStatus* pEditStatus );
548 void onChainingEvent();
569 void RemoveOutlinerCharacterAttribs(
const std::vector<sal_uInt16>& rCharWhichIds );
576 void SetTextAnimationAllowed(
bool bNew);
581 void SetObjectItemNoBroadcast(
const SfxPoolItem& rItem);
582 double GetCameraZRotation()
const;
587 void impDecomposeContourTextPrimitive(
591 void impDecomposePathTextPrimitive(
595 void impDecomposeBlockTextPrimitive(
599 void impDecomposeAutoFitTextPrimitive(
603 void impDecomposeStretchTextPrimitive(
607 void impDecomposeChainedTextPrimitive(
611 void impHandleChainingEventsDuringDecomposition(
SdrOutliner &rOutliner)
const;
619 static void impDecomposeBlockTextPrimitiveDirect(
630 static bool HasTextImpl(
SdrOutliner const * pOutliner );
632 friend class ::SdrTextObjTest;
636 #endif // INCLUDED_SVX_SVDOTEXT_HXX
virtual bool HasTextEdit() const
virtual bool BckCreate(SdrDragStat &rStat)
User data of a drawing object, e.g.
virtual basegfx::B2DPolyPolygon TakeXorPoly() const
The Xor-Polygon is required by the View to drag the object.
virtual std::unique_ptr< SdrObjGeoData > NewGeoData() const
A derived class must override these 3 methods if it has own geometric data that must be saved for Und...
virtual void TakeObjInfo(SdrObjTransformInfoRec &rInfo) const
virtual bool BegCreate(SdrDragStat &rStat)
Every object must be able to create itself interactively.
virtual OUString getSpecialDragComment(const SdrDragStat &rDrag) const
TextVerticalAdjust GetTextVerticalAdjust(sal_Int32 nToken)
virtual void handlePageChange(SdrPage *pOldPage, SdrPage *pNewPage)
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact)
void SetTextEditOffset(const Point &rNew)
virtual void NbcRotate(const Point &rRef, Degree100 nAngle, double sn, double cs)
bool IsLinkedText() const
virtual SdrObjectUniquePtr DoConvertToPolyObj(bool bBezier, bool bAddText) const
std::unique_ptr< SdrText > mpText
virtual void NbcShear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear)
virtual bool HasText() const
bool IsInEditMode() const
void SetDisableAutoWidthOnDragging(bool bOn)
virtual bool hasSpecialDrag() const
The standard transformations (Move,Resize,Rotate,Mirror,Shear) are taken over by the View (TakeXorPol...
virtual OUString TakeObjNameSingul() const
tools::Rectangle ImpDragCalcRect(const SdrDragStat &rDrag) const
virtual void AddToHdlList(SdrHdlList &rHdlList) const
virtual SdrObjKind GetObjIdentifier() const
bool IsTextEditActive() const
virtual sal_Int32 getTextCount() const =0
Return the number of texts available for this object.
All geometrical data of an arbitrary object for use in undo/redo.
std::unique_ptr< SdrPathObj, SdrObjectFreeOp > SdrPathObjUniquePtr
SdrTextAniKind
Animation type for text frame.
ImpSdrObjTextLinkUserData()
virtual void BrkCreate(SdrDragStat &rStat)
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd)
virtual Point GetSnapPoint(sal_uInt32 i) const
The transformation of a rectangle into a polygon, by using angle parameters from GeoStat.
This interface provides access to text object(s) in an SdrObject.
virtual void RecalcSnapRect()
Snap is not done on the BoundRect but if possible on logic coordinates (i.e.
const Point & GetTextEditOffset() const
const GeoStat & GetGeoStat() const
void SetTextEditOutliner(SdrOutliner *pOutl)
SVX_DLLPRIVATE SdrOutliner * GetTextEditOutliner() const
virtual bool MovCreate(SdrDragStat &rStat)
virtual void RestoreGeoData(const SdrObjGeoData &rGeo)
virtual void NbcMirror(const Point &rRef1, const Point &rRef2)
virtual void TRSetBaseGeometry(const basegfx::B2DHomMatrix &rMatrix, const basegfx::B2DPolyPolygon &rPolyPolygon)
virtual Degree100 GetShearAngle(bool bVertical=false) const
virtual void SaveGeoData(SdrObjGeoData &rGeo) const
virtual basegfx::B2DPolyPolygon TakeContour() const
contour for TextToContour
virtual sal_uInt32 GetHdlCount() const
Via GetHdlCount the number of Handles can be retrieved.
tools::SvRef< ImpSdrObjTextLink > pLink
virtual std::unique_ptr< sdr::properties::BaseProperties > CreateObjectSpecificProperties() override
void ForceOutlinerParaObject(OutlinerMode nOutlMode)
virtual void NbcReformatText()
rtl_TextEncoding eCharSet
virtual std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact()
virtual void NbcSetOutlinerParaObject(std::unique_ptr< OutlinerParaObject > pTextObject)
virtual void NbcSetSnapRect(const tools::Rectangle &rRect)
virtual void NbcSetLogicRect(const tools::Rectangle &rRect)
virtual void NbcMove(const Size &rSiz)
The methods Move, Resize, Rotate, Mirror, Shear, SetSnapRect and SetLogicRect call the corresponding ...
virtual PointerStyle GetCreatePointer() const
get the cursor/pointer that signals creating this object
#define SVXCORE_DLLPUBLIC
virtual ~ImpSdrObjTextLinkUserData() override
virtual SdrObject * CloneSdrObject(SdrModel &rTargetModel) const
std::unique_ptr< SdrObject, SdrObjectFreeOp > SdrObjectUniquePtr
virtual SdrObjectUniquePtr getFullDragClone() const
virtual OUString TakeObjNamePlural() const
virtual std::unique_ptr< SdrObjUserData > Clone(SdrObject *pObj1) const override
virtual bool applySpecialDrag(SdrDragStat &rDrag)
virtual Degree100 GetRotateAngle() const
virtual const tools::Rectangle & GetLogicRect() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
SdrObjKind GetTextKind() const
virtual bool TRGetBaseGeometry(basegfx::B2DHomMatrix &rMatrix, basegfx::B2DPolyPolygon &rPolyPolygon) const
TitleText, special text object for StarDraw.
float GetTextSize(std::u16string_view sValue)
virtual OutlinerParaObject * GetOutlinerParaObject() const
virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat &rDrag) const
Polygon dragged by the user when creating the object.
virtual sal_uInt32 GetSnapPointCount() const
snap to special points of an Object (polygon points, center of circle)
virtual SdrText * getText(sal_Int32 nIndex) const =0
Return the nth available text.