26#include <com/sun/star/uno/Reference.h>
27#include <com/sun/star/drawing/XCustomShapeEngine.hpp>
28#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
36 class CustomShapeProperties;
47 css::uno::Sequence< css::drawing::EnhancedCustomShapeAdjustmentValue >
aAdjustmentSeq;
69 css::uno::Reference< css::drawing::XCustomShapeHandle >
xInteraction;
83 virtual void setUnoShape(
const css::uno::Reference<css::drawing::XShape>& rxUnoShape)
override;
98 css::uno::Reference< css::drawing::XCustomShapeEngine >
const & GetCustomShapeEngine()
const;
100 std::vector< SdrCustomShapeInteraction > GetInteractionHandles()
const;
103 void DragMoveCustomShapeHdl(
const Point& rDestination,
104 const sal_uInt16 nCustomShapeHdlNum,
bool bMoveCalloutRectangle );
107 void InvalidateRenderGeometry();
110 void ImpCheckCustomGluePointsAreAdded();
117 const SdrObject* GetSdrObjectFromCustomShape()
const;
118 const SdrObject* GetSdrObjectShadowFromCustomShape()
const;
134 bool UseNoFillStyle()
const;
136 bool IsMirroredX()
const;
137 bool IsMirroredY()
const;
138 void SetMirroredX(
const bool bMirroredX );
139 void SetMirroredY(
const bool bMirroredY );
142 double GetExtraTextRotation(
const bool bPreRotation =
false )
const;
151 void MergeDefaultAttributes(
const OUString* pType =
nullptr );
165 bool IsDefaultGeometry(
const DefaultType eDefaultType )
const;
170 virtual void Move(
const Size& rSiz)
override;
199 void SuggestTextFrameSize(
Size aSuggestedTextFrameSize);
228 virtual std::unique_ptr<SdrObjGeoData>
NewGeoData()
const override;
244 static bool doConstructOrthogonal(std::u16string_view rName);
248 OUString GetCustomShapeName()
const;
css::uno::Sequence< css::drawing::EnhancedCustomShapeAdjustmentValue > aAdjustmentSeq
double GetObjectRotation() const
bool mbAdjustingTextFrameWidthAndHeight
rtl::Reference< SdrObject > mpLastShadowGeometry
css::uno::Reference< css::drawing::XShape > mXRenderedCustomShape
Size m_aSuggestedTextFrameSize
css::uno::Reference< css::drawing::XCustomShapeEngine > mxCustomShapeEngine
All geometrical data of an arbitrary object for use in undo/redo.
virtual SdrGluePointList * ForceGluePointList()
virtual bool beginSpecialDrag(SdrDragStat &rDrag) const
virtual void Shear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear)
virtual void InternalSetStyleSheet(SfxStyleSheet *pNewStyleSheet, bool bDontRemoveHardAttr, bool bBroadcast)
virtual void setUnoShape(const css::uno::Reference< css::drawing::XShape > &_rxUnoShape)
Sets a new UNO representation of the shape.
virtual void Move(const Size &rSiz)
virtual void SetLogicRect(const tools::Rectangle &rRect)
virtual void AdjustToMaxRect(const tools::Rectangle &rMaxRect, bool bShrinkOnly=false)
virtual bool IsTextPath() const
virtual const SdrGluePointList * GetGluePointList() const
virtual void SetSnapRect(const tools::Rectangle &rRect)
virtual SdrGluePoint GetVertexGluePoint(sal_uInt16 nNum) const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
virtual std::unique_ptr< sdr::properties::BaseProperties > CreateObjectSpecificProperties() override
virtual rtl::Reference< SdrObject > CloneSdrObject(SdrModel &rTargetModel) const override
virtual std::unique_ptr< SdrObjGeoData > NewGeoData() const override
A derived class must override these 3 methods if it has own geometric data that must be saved for Und...
virtual void AdaptTextMinSize()
virtual bool IsAutoGrowWidth() const
virtual void SaveGeoData(SdrObjGeoData &rGeo) const override
virtual void NbcMirror(const Point &rRef1, const Point &rRef2) override
virtual void NbcSetSnapRect(const tools::Rectangle &rRect) override
friend class SdrObjCustomShape
virtual void RestoreGeoData(const SdrObjGeoData &rGeo) override
virtual void NbcShear(const Point &rRef, Degree100 nAngle, double tn, bool bVShear) override
virtual void NbcMove(const Size &rSiz) override
The methods Move, Resize, Rotate, Mirror, Shear, SetSnapRect and SetLogicRect call the corresponding ...
virtual bool applySpecialDrag(SdrDragStat &rDrag) override
virtual bool MovCreate(SdrDragStat &rStat) override
virtual void TakeTextEditArea(Size *pPaperMin, Size *pPaperMax, tools::Rectangle *pViewInit, tools::Rectangle *pViewMin) const
virtual sal_uInt32 GetHdlCount() const override
Via GetHdlCount the number of Handles can be retrieved.
virtual OUString TakeObjNameSingul() const override
virtual void TakeObjInfo(SdrObjTransformInfoRec &rInfo) const override
virtual void TakeTextAnchorRect(::tools::Rectangle &rAnchorRect) const
virtual OUString TakeObjNamePlural() const override
virtual basegfx::B2DPolyPolygon TakeContour() const override
contour for TextToContour
virtual bool IsAutoGrowHeight() const
virtual void TRSetBaseGeometry(const basegfx::B2DHomMatrix &rMatrix, const basegfx::B2DPolyPolygon &rPolyPolygon) override
virtual bool NbcAdjustTextFrameWidthAndHeight(bool bHgt=true, bool bWdt=true)
virtual basegfx::B2DPolyPolygon TakeXorPoly() const override
The Xor-Polygon is required by the View to drag the object.
virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat &rDrag) const override
Polygon dragged by the user when creating the object.
virtual std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact() override
virtual void handlePageChange(SdrPage *pOldPage, SdrPage *pNewPage) override
virtual void SetVerticalWriting(bool bVertical)
virtual void TakeTextRect(SdrOutliner &rOutliner, tools::Rectangle &rTextRect, bool bNoEditText, tools::Rectangle *pAnchorRect, bool bLineWidth=true) const
virtual bool AdjustTextFrameWidthAndHeight()
virtual void NbcSetOutlinerParaObject(std::optional< OutlinerParaObject > pTextObject) override
virtual void AddToHdlList(SdrHdlList &rHdlList) const override
virtual SdrObjKind GetObjIdentifier() const override
virtual rtl::Reference< SdrObject > DoConvertToPolyObj(bool bBezier, bool bAddText) const override
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
virtual void EndTextEdit(SdrOutliner &rOutl)
virtual bool TRGetBaseGeometry(basegfx::B2DHomMatrix &rMatrix, basegfx::B2DPolyPolygon &rPolyPolygon) const override
virtual bool hasSpecialDrag() const override
The standard transformations (Move,Resize,Rotate,Mirror,Shear) are taken over by the View (TakeXorPol...
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
virtual void NbcRotate(const Point &rRef, Degree100 nAngle, double sn, double cs) override
css::awt::Point aPosition
css::uno::Reference< css::drawing::XCustomShapeHandle > xInteraction
CustomShapeHandleModes nMode
#define SVXCORE_DLLPUBLIC