73 if(xTargetOverlay.is())
75 float fScalingFactor = xTargetOverlay->getOutputDevice().GetDPIScaleFactor();
76 Size aHalfLogicSize(xTargetOverlay->getOutputDevice().PixelToLogic(
Size(4 * fScalingFactor, 4 * fScalingFactor)));
81 xTargetOverlay->add(*pNew);
85 for(sal_uInt16
i(0);
i < 4;
i++)
88 const Point& rPosition = aGluePoint.GetAbsolutePos(rObject);
90 basegfx::B2DPoint aTopLeft(rPosition.X() - aHalfLogicSize.Width(), rPosition.Y() - aHalfLogicSize.Height());
91 basegfx::B2DPoint aBottomRight(rPosition.X() + aHalfLogicSize.Width(), rPosition.Y() + aHalfLogicSize.Height());
94 aTempPoly.
append(aTopLeft);
96 aTempPoly.append(aBottomRight);
98 aTempPoly.setClosed(
true);
101 aTempPolyPoly.
append(aTempPoly);
105 xTargetOverlay->add(*pNew2);
141 if (xOverlayManager.is())
149 xOverlayManager->add(*pNew);
153 if(rPolyPoly.
count())
157 xOverlayManager->add(*pNew);
182 , pCurrentCreate(nullptr)
186 , nAutoCloseDistPix(5)
187 , nFreeHandMinDistPix(10)
190 , b1stPointAsCenter(false)
191 , bUseIncompatiblePathCreateInterface(false)
392 if(pPreparedFactoryObject)
450 if(aPnt.X() < rWorkArea.
Left())
452 aPnt.setX( rWorkArea.
Left() );
455 if(aPnt.X() > rWorkArea.
Right())
457 aPnt.setX( rWorkArea.
Right() );
460 if(aPnt.Y() < rWorkArea.
Top())
462 aPnt.setY( rWorkArea.
Top() );
465 if(aPnt.Y() > rWorkArea.
Bottom())
467 aPnt.setY( rWorkArea.
Bottom() );
503 if(pPreparedFactoryObject)
569 if(dynamic_cast<const FmFormObj*>( pObj) !=
nullptr)
602 bool bPntsEq=nCount>1;
620 bool bSceneIntoScene(
false);
626 bool bDidInsert =
static_cast<E3dView*
>(
this)->ImpCloneAll3DObjectsToDestScene(
627 pObjScene, pCurrentScene,
Point(0, 0));
633 pObjCreated =
nullptr;
634 bSceneIntoScene =
true;
750 bUseSolidDragging =
false;
754 if(bUseSolidDragging)
760 if(drawing::LineStyle_NONE == eLine && drawing::FillStyle_NONE == eFill)
762 bUseSolidDragging =
false;
767 if(bUseSolidDragging)
771 bUseSolidDragging =
false;
776 if(bUseSolidDragging)
785 bUseSolidDragging =
false;
790 if(bUseSolidDragging)
800 if(aCurrentSnapRect.GetWidth() <= 1 || aCurrentSnapRect.GetHeight() <= 1)
813 if(aCurrentPolyPolygon.count())
815 pPathObj->NbcSetPathPoly(aCurrentPolyPolygon);
818 aDragPolyPolygon = pPathObj->getDragPolyPolygon(
maDragStat);
837 if (xOverlayManager.is())
839 xOverlayManager->flush();
void UnmarkAllObj(SdrPageView const *pPV=nullptr)
virtual bool BckCreate(SdrDragStat &rStat)
virtual basegfx::B2DPolyPolygon TakeXorPoly() const
The Xor-Polygon is required by the View to drag the object.
std::unique_ptr< ImplConnectMarkerOverlay > mpCoMaOverlay
void SetMinMove(sal_uInt16 nDist)
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
Utility class SdrObjConnection.
bool EndCreateObj(SdrCreateCmd eCmd)
virtual bool BegCreate(SdrDragStat &rStat)
Every object must be able to create itself interactively.
virtual bool IsAction() const override
rtl::Reference< sdr::overlay::OverlayManager > const & GetOverlayManager() const
virtual void TakeActionRect(tools::Rectangle &rRect) const override
bool BegCreateObj(const Point &rPnt, OutputDevice *pOut=nullptr, short nMinMov=-3)
const Point & GetStart() const
void ImpClearConnectMarker()
rectangle (round corners optional)
bool BegCreatePreparedObject(const Point &rPnt, sal_Int16 nMinMov, SdrObject *pPreparedFactoryObject)
SfxStyleSheet * GetStyleSheet() const
bool CheckMinMoved(const Point &rPnt)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
void SetStyleSheet(SfxStyleSheet *pNewStyleSheet, bool bDontRemoveHardAttr)
static SdrObject * MakeNewObject(SdrModel &rSdrModel, SdrInventor nInventor, SdrObjKind nObjIdentifier, const tools::Rectangle *pSnapRect=nullptr)
constexpr TypedWhichId< XLineStyleItem > XATTR_LINESTYLE(XATTR_LINE_FIRST)
const Point & GetPoint(sal_Int32 nNum) const
void GetAttributes(SfxItemSet &rTargetSet, bool bOnlyHardAttr) const
void append(std::unique_ptr< OverlayObject > pOverlayObject)
SfxStyleSheet * GetStyleSheet() const
virtual bool MouseMove(const MouseEvent &rMEvt, OutputDevice *pWin) override
handle mouse over effects for handles
static void Free(SdrObject *&_rpObject)
virtual SdrObjKind GetObjIdentifier() const
bool IsMeasureTool() const
sal_uInt16 ImpGetMinMovLogic(short nMinMov, const OutputDevice *pOut) const
bool IsOrtho8Possible() const
bool InsertObjectAtView(SdrObject *pObj, SdrPageView &rPV, SdrInsertFlags nOptions=SdrInsertFlags::NONE)
VclPtr< OutputDevice > mpDragWin
sdr::contact::ViewContact & GetViewContact() const
virtual const tools::Rectangle & GetSnapRect() const
virtual void BckAction() override
static void SetupObjLayer(const SdrPageView *pPageView, const OUString &aActiveLayer, SdrObject *pObj)
Setup layer (eg. foreground / background) of the given object.
virtual void BrkCreate(SdrDragStat &rStat)
virtual ~SdrCreateView() override
virtual void MovAction(const Point &rPnt) override
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd)
virtual SdrGluePoint GetVertexGluePoint(sal_uInt16 nNum) const
sdr::overlay::OverlayObjectList maObjects
Point GetSnapPos(const Point &rPnt, const SdrPageView *pPV) const
SfxStyleSheet * GetStyleSheet() const
void SetMergedItemSet(const SfxItemSet &rSet, bool bClearAllItems=false)
void MovCreateObj(const Point &rPnt)
constexpr SdrLayerID SDRLAYER_NOTFOUND(0xff)
o3tl::strong_int< sal_uInt8, struct SdrLayerIDTag > SdrLayerID
B2IRange fround(const B2DRange &rRange)
sal_uInt32 PaintWindowCount() const
virtual void EndAction() override
bool ImpLimitToWorkArea(Point &rPt) const
virtual bool MouseMove(const MouseEvent &rMEvt, OutputDevice *pWin) override
handle mouse over effects for handles
virtual bool MovCreate(SdrDragStat &rStat)
SfxStyleSheet * mpDefaultStyleSheet
const SdrLayerIDSet & GetVisibleLayers() const
virtual void SetLayer(SdrLayerID nLayer)
void ImpSetGlueVisible3(bool bOn)
const OUString & GetControlLayerName() const
virtual SdrObjKind GetObjIdentifier() const override
bool ImpBegCreateObj(SdrInventor nInvent, SdrObjKind nIdent, const Point &rPnt, OutputDevice *pOut, sal_Int16 nMinMov, const tools::Rectangle &rLogRect, SdrObject *pPreparedFactoryObject)
bool IsMarkedObjHit(const Point &rPnt, short nTol=-2) const
const tools::Rectangle & GetActionRect() const
sal_Int32 GetPointCount() const
void ActionChanged() const
SdrObject * pCurrentCreate
tools::Long Width() const
SdrCreateView(SdrModel &rSdrModel, OutputDevice *pOut)
void SetMergedItemSetAndBroadcast(const SfxItemSet &rSet, bool bClearAllItems=false)
PointerStyle aCurrentCreatePointer
SdrHdl * PickHandle(const Point &rPnt) const
void OrthoDistance8(const Point &rPt0, Point &rPt, bool bBigOrtho)
void SetCurrentObj(SdrObjKind nIdent, SdrInventor nInvent=SdrInventor::Default)
const SdrLayerAdmin & GetLayerAdmin() const
changing the layers does not set the modified-flag!
void NextMove(const Point &rPnt)
void SetStyleSheet(SfxStyleSheet *pStyleSheet, bool bDontRemoveHardAttr)
static bool ImpFindConnector(const Point &rPt, const SdrPageView &rPV, SdrObjConnection &rCon, const SdrEdgeObj *pThis, OutputDevice *pOut=nullptr)
bool IsCreateMode() const
bool getPossibleGridOffsetForSdrObject(basegfx::B2DVector &rOffset, const SdrObject *pObj, const SdrPageView *pPV) const
virtual SdrInventor GetObjInventor() const
const Point & GetPrev() const
Point PixelToLogic(const Point &rDevicePt) const
const SdrLayerIDSet & GetLockedLayers() const
virtual bool IsAction() const override
void append(const B2DPolygon &rPolygon, sal_uInt32 nCount=1)
bool IsSet(SdrLayerID a) const
SdrInventor nCurrentInvent
SdrViewEditMode meEditMode
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
Derived class of SdrView to edit 3D objects.
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
virtual void NbcSetSnapRect(const tools::Rectangle &rRect)
virtual void NbcSetLogicRect(const tools::Rectangle &rRect)
SdrPage * GetPage() const
const SdrObject & mrObject
object that represents a SdrPage
virtual void NbcMove(const Size &rSiz)
The methods Move, Resize, Rotate, Mirror, Shear, SetSnapRect and SetLogicRect call the corresponding ...
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
bool IsSolidDragging() const
const SfxItemSet & GetMergedItemSet() const
virtual PointerStyle GetCreatePointer() const
get the cursor/pointer that signals creating this object
bool IsOrtho4Possible() const
bool SetAttributes(const SfxItemSet &rSet, bool bReplaceAll)
tools::Long Height() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
const Point & GetPosPixel() const
const Point & GetNow() const
void SetView(SdrView *pV)
SdrPageView * GetSdrPageView() const
virtual void BrkAction() override
virtual void TakeActionRect(tools::Rectangle &rRect) const override
void SetConnectMarker(const SdrObjConnection &rCon)
bool SetAttributes(const SfxItemSet &rSet, bool bReplaceAll)
bool BegCreateCaptionObj(const Point &rPnt, const Size &rObjSiz, OutputDevice *pOut=nullptr, short nMinMov=-3)
virtual void MovAction(const Point &rPnt) override
std::unique_ptr< ImpSdrCreateViewExtraData > mpCreateViewExtraData
const SfxItemPool & GetItemPool() const
void SetPageView(SdrPageView *pPV)
ImplConnectMarkerOverlay(const SdrCreateView &rView, SdrObject const &rObject)
virtual void BrkAction() override
virtual void NbcSetStyleSheet(SfxStyleSheet *pNewStyleSheet, bool bDontRemoveHardAttr)
void SetStyleSheet(SfxStyleSheet *pStyleSheet, bool bDontRemoveHardAttr)
TitleText, special text object for StarDraw.
void GetAttributes(SfxItemSet &rTargetSet, bool bOnlyHardAttr) const
SdrLayerID GetLayerID(const OUString &rName) const
periodic cubic Spline (ni)
void OrthoDistance4(const Point &rPt0, Point &rPt, bool bBigOrtho)
SdrModel * GetModel() const
const SdrObject & GetTargetObject() const
virtual void BckAction() override
const tools::Rectangle & GetWorkArea() const
SdrPaintWindow * GetPaintWindow(sal_uInt32 nIndex) const
virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat &rDrag) const
Polygon dragged by the user when creating the object.
virtual void EndAction() override
SdrObject * GetCurrentGroup() const
Return current Group.