21 #include <osl/diagnose.h>
30 #include <svx/strings.hrc>
48 , mpInsPointUndo(nullptr)
51 , mbMarkedHitMovesAlways(
false)
54 , mbDragStripes(
false)
56 , mbResizeAtCenter(
false)
57 , mbCrookAtCenter(
false)
58 , mbDragWithCopy(
false)
59 , mbInsGluePoint(
false)
60 , mbInsObjPointMode(
false)
61 , mbInsGluePointMode(
false)
62 , mbNoDragXorPolys(
false)
119 if (aBoundRange.isEmpty())
152 if (
auto pCaptionObj = dynamic_cast<SdrCaptionObj*>(pObj))
154 Point aPt(pCaptionObj->GetTailPos());
188 std::unique_ptr<SdrDragMethod> pForcedMeth(_pForcedMeth);
203 (pHdl==
nullptr || pHdl->
GetObj()==
nullptr)) {
257 else if(!bNotDraggable)
269 bool b3DObjSelected =
false;
273 if(dynamic_cast< const E3dObject* >(pObj))
274 b3DObjSelected =
true;
417 bool bSingleTextObjMark =
false;
422 dynamic_cast<const SdrTextObj*>(
mpMarkedObj) !=
nullptr &&
423 static_cast<SdrTextObj*>(
mpMarkedObj)->IsTextFrame() )
424 bSingleTextObjMark =
true;
426 if ( bSingleTextObjMark )
438 if(bCustomShapeSelected)
447 if(bConnectorSelected)
538 sal_Int32 nSavedHdlCount=0;
641 if(
auto pMarkedPath = dynamic_cast<SdrPathObj*>(
mpMarkedObj))
656 bool bClosed0 = pMarkedPath->IsClosedObj();
658 const sal_uInt32 nInsPointNum { bIdxZwang
659 ? pMarkedPath->NbcInsPoint(aPt, bNewObj)
660 : pMarkedPath->NbcInsPointOld(aPt, bNewObj)
663 if(bClosed0 != pMarkedPath->IsClosedObj())
667 pMarkedPath->SetChanged();
668 pMarkedPath->BroadcastObjectChange();
720 if (dynamic_cast<const SdrEdgeObj *>(pObj) ==
nullptr)
753 sal_uInt16 nGlueId=rGP.
GetId();
779 OSL_FAIL(
"BegInsGluePoint(): GluePoint handle not found.");
806 if(
nullptr != pPageView)
813 if(rPaintWindow.OutputToWindow())
816 rPaintWindow.GetOverlayManager());
818 if(xOverlayManager.is())
822 rPageWindow.GetObjectContact());
825 xOverlayManager->flush();
friend class SdrDragCrook
OUString maInsPointUndoStr
void SetMinMove(sal_uInt16 nDist)
virtual bool BegDragObj(const Point &rPnt, OutputDevice *pOut, SdrHdl *pHdl, short nMinMov=-3, SdrDragMethod *pForcedMeth=nullptr)
virtual sal_Int32 GetMarkablePointCount() const
virtual void SetMarkHandles(SfxViewShell *pOtherShell)
virtual bool IsAction() const override
std::unique_ptr< SdrDragMethod > mpCurrentSdrDragMethod
virtual void BrkAction() override
bool UnmarkAllGluePoints()
bool IsResizeAllowed(bool bProp=false) const
virtual void TakeActionRect(tools::Rectangle &rRect) const override
virtual bool IsPolyObj() const
bool AreObjectsMarked() const
bool IsUndoEnabled() const
void SetDragMethod(SdrDragMethod *pMth)
bool ImpIsFrameHandles() const
bool EndDragObj(bool bCopy=false)
bool IsInsObjPoint() const
bool IsDraggingPoints() const
bool IsTransparenceAllowed() const
bool IsCropAllowed() const
virtual bool hasSpecialDrag() const
The standard transformations (Move,Resize,Rotate,Mirror,Shear) are taken over by the View (TakeXorPol...
SdrObject * GetObj() const
Changing the geometry of an object.
virtual OUString TakeObjNameSingul() const
const Point & GetPos() const
SdrUndoGeoObj * mpInsPointUndo
bool IsDraggingGluePoints() const
virtual void SetMarkHandles(SfxViewShell *pOtherShell) override
sal_uInt16 ImpGetMinMovLogic(short nMinMov, const OutputDevice *pOut) const
bool IsMoveAllowed() const
friend class SdrDragDistort
VclPtr< OutputDevice > mpDragWin
bool MarkGluePoint(const SdrObject *pObj, sal_uInt16 nId, bool bUnmark)
virtual void BckAction() override
SdrPageWindow * GetPageWindow(sal_uInt32 nIndex) const
void SetInsertGluePoint(bool bOn)
virtual void MovAction(const Point &rPnt) override
Point GetSnapPos(const Point &rPnt, const SdrPageView *pPV) const
void SetDragWithCopy(bool bOn)
OUString SvxResId(TranslateId aId)
bool IsRotateAllowed(bool b90Deg=false) const
B2IRange fround(const B2DRange &rRange)
bool IsInsObjPointPossible() const
virtual void BckAction() override
virtual void EndAction() override
bool PickMarkedObj(const Point &rPnt, SdrObject *&rpObj, SdrPageView *&rpPV, SdrSearchOptions nOptions) const
bool ImpLimitToWorkArea(Point &rPt) const
bool getPossibleGridOffsetForPosition(basegfx::B2DVector &rOffset, const basegfx::B2DPoint &rPoint, const SdrPageView *pPV) const
void AddUndo(std::unique_ptr< SdrUndoAction > pUndo)
bool IsShearAllowed() const
virtual ~SdrDragView() override
SdrDragView(SdrModel &rSdrModel, OutputDevice *pOut)
bool HasMarkedObjPageView() const
#define DBG_ASSERT(sCon, aError)
bool bEliminatePolyPoints
bool IsInsGluePointPossible() const
virtual void TakeActionRect(tools::Rectangle &rRect) const override
size_t GetMarkedObjectCount() const
void MovDragObj(const Point &rPnt)
const tools::Rectangle & GetActionRect() const
bool BegInsGluePoint(const Point &rPnt)
virtual bool TakeDragLimit(SdrDragMode eMode, tools::Rectangle &rRect) const
bool TakeDragObjAnchorPos(Point &rPos, bool bTopRight) const
void SetAbsolutePos(const Point &rNewPos, const SdrObject &rObj)
void SetSolidDragging(bool bOn)
bool getPossibleGridOffsetForSdrObject(basegfx::B2DVector &rOffset, const SdrObject *pObj, const SdrPageView *pPV) const
virtual void Undo() override
SdrUndoFactory & GetSdrUndoFactory() const
returns the models undo factory.
virtual std::unique_ptr< SdrUndoAction > CreateUndoGeoObject(SdrObject &rObject)
sal_uInt16 Insert(const SdrGluePoint &rGP)
const Point & GetPrev() const
tools::Rectangle maDragLimit
bool IsInsGluePointMode() const
SdrHdl * GetHdl(size_t nNum) const
void SetNoDragXorPolys(bool bOn)
bool IsMirrorAllowed(bool b45Deg=false, bool b90Deg=false) const
sal_uInt32 GetObjHdlNum() const
virtual SdrGluePointList * ForceGluePointList()
bool IsSolidDragging() const
void AdjustMarkHdl(SfxViewShell *pOtherShell=nullptr)
SdrHdl * GetGluePointHdl(const SdrObject *pObj, sal_uInt16 nId) const
bool IsGradientAllowed() const
SdrObject * GetMarkedObjectByIndex(size_t nNum) const
const Point & GetNow() const
bool IsCrookAllowed(bool bNoContortion=false) const
void SetView(SdrView *pV)
SdrPageView * GetSdrPageView() const
virtual void BrkAction() override
bool m_bOrthoDesiredOnMarked
bool IsMarkedHitMovesAlways() const
bool IsNoDragXorPolys() const
void SetPageView(SdrPageView *pPV)
void SetDragStripes(bool bOn)
bool IsInsertGluePoint() const
SdrModel * GetModel() const
bool EndInsObjPoint(SdrCreateCmd eCmd)
virtual void EndAction() override
SdrHdlKind GetKind() const
bool IsDistortAllowed(bool bNoContortion=false) const
virtual void MovAction(const Point &rPnt) override
bool IsOrthoDesired() const
bool m_bDetectedRangeSegmentation false
virtual bool IsAction() const override
sal_uInt32 PageWindowCount() const
bool ImpBegInsObjPoint(bool bIdxZwang, const Point &rPnt, bool bNewObj, OutputDevice *pOut)