20#include <com/sun/star/i18n/WordType.hpp>
22#include <editeng/editeng.hxx>
64#include <svx/strings.hrc>
76 , mpTextEditPV(nullptr)
77 , mpTextEditOutlinerView(nullptr)
78 , mpTextEditWin(nullptr)
79 , pTextEditCursorBuffer(nullptr)
84 , mbTextEditDontDelete(false)
85 , mbTextEditOnlyOneView(false)
86 , mbTextEditNewObj(false)
87 , mbQuickTextEditMode(true)
89 , mpOldTextEditUndoManager(nullptr)
140 if (pView == this || !pView->IsTextEdit())
143 OutputDevice* pOutDev = GetFirstOutputDevice();
144 if (!pOutDev || pOutDev->GetOutDevType() != OUTDEV_WINDOW)
152 OutlinerView* pOutlinerView
153 = pView->ImpMakeOutlinerView(pOutDev->GetOwnerWindow(), nullptr, GetSfxViewShell());
154 pOutlinerView->HideCursor();
155 pView->GetTextEditOutliner()->InsertView(pOutlinerView);
174 if (!pOutputDevice || pOutputDevice->
GetOutDevType() != OUTDEV_WINDOW)
178 if (pView == pThis || !pView->IsTextEdit())
181 SdrOutliner* pOutliner = pView->GetTextEditOutliner();
182 for (size_t nView = 0; nView < pOutliner->GetViewCount(); ++nView)
184 OutlinerView* pOutlinerView = pOutliner->GetView(nView);
185 if (pOutlinerView->GetWindow()->GetOutDev() != pOutputDevice)
188 pOutliner->RemoveView(pOutlinerView);
189 delete pOutlinerView;
227 if (rHint.
GetId() != SfxHintId::ThisIsAnSdrHint)
246 if (pTextObj && !pTextObj->IsInserted())
252 if (pTextObj !=
nullptr)
255 bool bAreaChg =
false;
256 bool bAnchorChg =
false;
257 bool bColorChg =
false;
258 bool bContourFrame = pTextObj->IsContourTextFrame();
268 pTextObj->TakeTextEditArea(&aPaperMin1, &aPaperMax1, &aEditArea1, &aMinArea1);
269 Point aPvOfs(pTextObj->GetTextEditOffset());
278 aEditArea1 += aOffset;
279 aMinArea1 += aOffset;
282 aEditArea1.
Move(aPvOfs.
X(), aPvOfs.
Y());
283 aMinArea1.
Move(aPvOfs.
X(), aPvOfs.
Y());
285 aNewArea.
Union(aEditArea1);
303 nStat |= EEControlBits::AUTOPAGESIZE;
312 pTextObj->TakeTextAnchorRect(aAnchorRect);
315 for (
size_t nOV = 0; nOV < nOutlViewCnt; nOV++)
322 nStat |= EVControlBits::AUTOSIZE;
336 eNewAnchor = pTextObj->GetOutlinerViewAnchorMode();
337 bAnchorChg = eOldAnchor != eNewAnchor;
340 bColorChg = aOldColor != aNewColor;
357 if (bContourFrame || bAreaChg || bAnchorChg || bColorChg)
359 for (
size_t nOV = 0; nOV < nOutlViewCnt; nOV++)
390class TextEditFrameOverlayObject;
391class TextEditHighContrastOverlaySelection;
410 std::unique_ptr<sdr::overlay::OverlaySelection> mxOverlayTransparentSelection;
411 std::unique_ptr<TextEditHighContrastOverlaySelection> mxOverlayHighContrastSelection;
412 std::unique_ptr<TextEditFrameOverlayObject> mxOverlayFrame;
431 virtual ~TextEditOverlayObject()
override;
436 const OutlinerView& getOutlinerView()
const {
return mrOutlinerView; }
445 void checkSelectionChange();
450 return maTextPrimitives;
457 const TextEditOverlayObject& mrTextEditOverlayObject;
464 TextEditFrameOverlayObject(
const TextEditOverlayObject& rTextEditOverlayObject);
466 virtual ~TextEditFrameOverlayObject()
override;
472 const TextEditOverlayObject& mrTextEditOverlayObject;
473 std::vector<basegfx::B2DRange> maRanges;
480 TextEditHighContrastOverlaySelection(
const TextEditOverlayObject& rTextEditOverlayObject);
481 void setRanges(std::vector<basegfx::B2DRange>&& rNew);
482 virtual ~TextEditHighContrastOverlaySelection()
override;
485TextEditHighContrastOverlaySelection::TextEditHighContrastOverlaySelection(
486 const TextEditOverlayObject& rTextEditOverlayObject)
487 : OverlayObject(rTextEditOverlayObject.getBaseColor())
488 , mrTextEditOverlayObject(rTextEditOverlayObject)
490 allowAntiAliase(rTextEditOverlayObject.allowsAntiAliase());
492 mbHighContrastSelection =
true;
495void TextEditHighContrastOverlaySelection::setRanges(std::vector<basegfx::B2DRange>&& rNew)
497 if (rNew != maRanges)
499 maRanges = std::move(rNew);
505TextEditHighContrastOverlaySelection::createOverlayObjectPrimitive2DSequence()
509 size_t nCount = maRanges.size();
528 aRetval.
append(mrTextEditOverlayObject.getTextPrimitives());
536TextEditHighContrastOverlaySelection::~TextEditHighContrastOverlaySelection()
538 if (getOverlayManager())
540 getOverlayManager()->remove(*
this);
546 if (mxOverlayTransparentSelection)
547 return mxOverlayTransparentSelection.get();
548 return mxOverlayHighContrastSelection.get();
554 mxOverlayFrame.reset(
new TextEditFrameOverlayObject(*
this));
555 return mxOverlayFrame.get();
559TextEditOverlayObject::createOverlayObjectPrimitive2DSequence()
564 aRetval.
append(maTextPrimitives);
570TextEditFrameOverlayObject::createOverlayObjectPrimitive2DSequence()
576 const sal_uInt16 nPixSiz(mrTextEditOverlayObject.getOutlinerView().GetInvalidateMore() - 1);
579 mrTextEditOverlayObject.getRange(), getBaseColor().getBColor(), fTransparence,
580 std::max(6, nPixSiz - 2),
587TextEditOverlayObject::TextEditOverlayObject(
const Color& rColor,
OutlinerView& rOutlinerView)
588 : OverlayObject(rColor)
589 , mrOutlinerView(rOutlinerView)
592 allowAntiAliase(
false);
598 mxOverlayHighContrastSelection.reset(
new TextEditHighContrastOverlaySelection(*
this));
602 std::vector<basegfx::B2DRange> aEmptySelection{};
608TextEditOverlayObject::~TextEditOverlayObject()
610 mxOverlayTransparentSelection.reset();
611 mxOverlayHighContrastSelection.reset();
613 if (getOverlayManager())
615 getOverlayManager()->remove(*
this);
619TextEditFrameOverlayObject::TextEditFrameOverlayObject(
620 const TextEditOverlayObject& rTextEditOverlayObject)
621 : OverlayObject(rTextEditOverlayObject.getBaseColor())
622 , mrTextEditOverlayObject(rTextEditOverlayObject)
624 allowAntiAliase(rTextEditOverlayObject.allowsAntiAliase());
626 mbHighContrastSelection =
true;
629TextEditFrameOverlayObject::~TextEditFrameOverlayObject()
631 if (getOverlayManager())
633 getOverlayManager()->remove(*
this);
638TextEditOverlayObject::getOverlayObjectPrimitive2DSequence()
const
640 if (!getPrimitive2DSequence().empty())
642 if (!
maRange.equal(maLastRange) || maLastTextPrimitives != maTextPrimitives)
645 const_cast<TextEditOverlayObject*
>(
this)->resetPrimitive2DSequence();
649 if (getPrimitive2DSequence().empty())
652 const_cast<TextEditOverlayObject*
>(
this)->maLastRange = maRange;
653 const_cast<TextEditOverlayObject*
>(
this)->maLastTextPrimitives = maTextPrimitives;
657 return OverlayObject::getOverlayObjectPrimitive2DSequence();
660void TextEditOverlayObject::checkDataChange(
const basegfx::B2DRange& rMinTextEditArea)
662 bool bObjectChange(
false);
667 aNewRange.
expand(rMinTextEditArea);
669 if (aNewRange != maRange)
672 bObjectChange =
true;
690 const bool bVerticalWriting(pSdrOutliner->
IsVertical());
692 const double fStartInX(bVerticalWriting && bTopToBottom
693 ? aOutArea.Right() - aVisArea.Left()
694 : aOutArea.Left() - aVisArea.Left());
695 const double fStartInY(bVerticalWriting && !bTopToBottom
696 ? aOutArea.Bottom() - aVisArea.Top()
697 : aOutArea.Top() - aVisArea.Top());
699 aNewTransformB.
translate(fStartInX, fStartInY);
706 aNewTextPrimitives, *pSdrOutliner, aNewTransformA, aNewTransformB, aClipRange);
708 if (aNewTextPrimitives != maTextPrimitives)
710 maTextPrimitives = std::move(aNewTextPrimitives);
711 bObjectChange =
true;
722 mxOverlayFrame->objectChange();
726 checkSelectionChange();
730void TextEditOverlayObject::checkSelectionChange()
732 if (!(getOverlaySelection() && getOverlayManager()))
735 std::vector<tools::Rectangle> aLogicRects;
736 std::vector<basegfx::B2DRange> aLogicRanges;
737 const Size aLogicPixel(getOverlayManager()->getOutputDevice().PixelToLogic(
Size(1, 1)));
740 getOutlinerView().GetSelectionRectangles(aLogicRects);
742 aLogicRanges.reserve(aLogicRects.size());
743 for (
const auto& aRect : aLogicRects)
747 aLogicRanges.emplace_back(
748 aRect.Left() - aLogicPixel.Width(), aRect.Top() - aLogicPixel.Height(),
749 aRect.Right() + aLogicPixel.Width(), aRect.Bottom() + aLogicPixel.Height());
752 if (mxOverlayTransparentSelection)
753 mxOverlayTransparentSelection->setRanges(std::move(aLogicRanges));
755 mxOverlayHighContrastSelection->setRanges(std::move(aLogicRanges));
775 TextEditOverlayObject* pCandidate
780 pCandidate->checkDataChange(aMinTextRange);
795 TextEditOverlayObject* pCandidate
800 pCandidate->checkSelectionChange();
858 const sal_uInt32 nViewCount(pActiveOutliner->
GetViewCount());
865 for (sal_uInt32
i(0);
i < nViewCount;
i++)
910 rOutlView.
Paint(aBlankRect, &rTargetDevice);
917 if (bTextFrame && !bFitToSize)
921 std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D>
xProcessor(
923 aViewInformation2D));
932 aRange, aHilightColor.
getBColor(), fTransparence, std::max(6, nPixSiz - 2),
956 if (!bTextFrame || bFitToSize)
976 if (aPixRect.
Left() < -
a)
978 if (aPixRect.
Top() < -
a)
980 if (aPixRect.
Right() > nMaxX)
982 if (aPixRect.
Bottom() > nMaxY)
1004 bool bTextFrame = pText !=
nullptr && pText->IsTextFrame();
1005 bool bContourFrame = pText !=
nullptr && pText->IsContourTextFrame();
1010 if (pOutlView ==
nullptr)
1027 nStat |= EVControlBits::AUTOSIZE;
1031 nStat |= EVControlBits::INVONEMORE;
1044 if (pText !=
nullptr)
1046 pOutlView->
SetAnchorMode(pText->GetOutlinerViewAnchorMode());
1059 if (mpTextEditOutliner)
1064 pTextObj->onEditOutlinerStatusEvent(&rEditStat);
1076 if (pTextObj && pOLV)
1078 TextChain* pTextChain = pTextObj->GetTextChain();
1081 if (!pTextObj->IsChainable())
1099 const int nText = 0;
1102 std::unique_ptr<SdrUndoObjSetText> pTxtUndo;
1106 .GetSdrUndoFactory()
1107 .CreateUndoObjectSetText(*pTextObj, nText)
1111 pTextObj->onChainingEvent();
1115 pTxtUndo->AfterSetText();
1116 if (!pTxtUndo->IsDifferent())
1134 SAL_INFO(
"svx.chaining",
"[OnChaining] No Edit Outliner View");
1143 ImpChainingEventHdl();
1145 ImpMoveCursorAfterChainingEvent(&aCursorManager);
1152 if (!pTextObj || !pCursorManager)
1156 if (!pTextObj || !pTextObj->IsChainable())
1159 TextChain* pTextChain = pTextObj->GetTextChain();
1172 OUString& rStr = pFI->GetRepresentation();
1175 if (pTextObj !=
nullptr)
1177 std::optional<Color> pTxtCol;
1178 std::optional<Color> pFldCol;
1179 std::optional<FontLineStyle> pFldLineStyle;
1180 bOk = pTextObj->CalcFieldValue(pFI->GetField(), pFI->GetPara(), pFI->GetPos(),
true,
1181 pTxtCol, pFldCol, pFldLineStyle, rStr);
1186 pFI->SetTextColor(*pTxtCol);
1190 pFI->SetFontLineStyle(*pFldLineStyle);
1194 pFI->SetFieldColor(*pFldCol);
1202 Outliner& rDrawOutl = GetModel().GetDrawOutliner(pTextObj.get());
1204 if (!bOk && aDrawOutlLink.
IsSet())
1206 aDrawOutlLink.
Call(pFI);
1207 bOk = !rStr.isEmpty();
1211 aOldCalcFieldValueLink.Call(pFI);
1220 SAL_WARN(
"svx",
"SdrObjEditView::createLocalTextUndoManager needs to be overridden");
1221 return std::unique_ptr<SdrUndoManager>();
1226 OutlinerView* pGivenOutlinerView,
bool bDontDeleteOutliner,
1227 bool bOnlyOneView,
bool bGrabFocus)
1240 if (bGrabFocus && pWin)
1255 for (sal_uInt32
i = 0;
i < nWinCount && !pWin;
i++)
1291 OSL_FAIL(
"SdrObjEditView::SdrBeginTextEdit(): Old Outliner still exists.");
1303 pGivenOutliner =
nullptr;
1329 pTextObj->SetTextAnimationAllowed(
false);
1347 if (!pTextObj->IsContourTextFrame())
1350 if (pTextObj->IsFitToSize())
1351 aTextRect = aAnchorRect;
1367 Point aPvOfs(pTextObj->GetTextEditOffset());
1389 const bool bVisualizeSurroundingFrame(
1405 std::unique_ptr<TextEditOverlayObject> pNewTextEditOverlayObject(
1406 new TextEditOverlayObject(aHilightColor,
1409 xManager->add(*pNewTextEditOverlayObject);
1410 if (bVisualizeSurroundingFrame)
1411 xManager->add(*pNewTextEditOverlayObject->getOverlayFrame());
1412 xManager->add(*pNewTextEditOverlayObject->getOverlaySelection());
1423 for (i2 = 0; i2 <
nCount; i2++)
1438 for (sal_uInt32
i = 0;
i < nWinCount;
i++)
1461 for (sal_uInt32 nViewPaintWindow = 0;
1462 nViewPaintWindow < pView->PaintWindowCount(); ++nViewPaintWindow)
1464 SdrPaintWindow* pPaintWindow = pView->GetPaintWindow(nViewPaintWindow);
1465 OutputDevice& rOutDev = pPaintWindow->GetOutputDevice();
1467 if (&rOutDev != pWin->GetOutDev()
1468 && OUTDEV_WINDOW == rOutDev.GetOutDevType())
1470 OutlinerView* pOutlView
1471 = ImpMakeOutlinerView(rOutDev.GetOwnerWindow(), nullptr);
1472 pOutlView->HideCursor();
1473 rOutDev.GetOwnerWindow()->SetCursor(nullptr);
1474 mpTextEditOutliner->InsertView(pOutlView);
1484 if (pTextObj->IsChainable())
1492 if (pTextObj->IsFitToSize())
1513 if (pSdrUndoManager)
1526 "The document undo manager is not derived from SdrUndoManager (!)");
1539 if (mpTextEditOutliner !=
nullptr)
1541 mpTextEditOutliner->setVisualizedPage(
nullptr);
1545 if (!bDontDeleteOutliner)
1547 delete pGivenOutliner;
1548 if (pGivenOutlinerView !=
nullptr)
1550 delete pGivenOutlinerView;
1551 pGivenOutlinerView =
nullptr;
1554 mpTextEditOutliner.reset();
1556 mpTextEditOutlinerView =
nullptr;
1557 mxWeakTextEditObj.clear();
1558 mpTextEditPV =
nullptr;
1559 mpTextEditWin =
nullptr;
1560 maHdlList.SetMoveOutside(
false);
1573 bool bNeedToUndoSavedRedoTextEdit(
false);
1576 && !
GetModel().GetDisableTextEditUsesCommonUndoManager())
1587 if (pSdrUndoManager &&
dynamic_cast<SdrUndoManager*
>(pOriginal) == pSdrUndoManager)
1594 pUndoEditUndoManager = pSdrUndoManager;
1600 while (pSdrUndoManager->GetRedoActionCount()
1603 bNeedToUndoSavedRedoTextEdit =
true;
1604 pSdrUndoManager->
Redo();
1614 OSL_ENSURE(
false,
"Got UndoManager back in SdrEndTextEdit which is NOT the "
1615 "expected document UndoManager (!)");
1621 pUndoEditUndoManager =
nullptr;
1653 bool bModified = pTEOutliner->IsModified();
1654 if (pTEOutlinerView !=
nullptr)
1658 if (pTEObj !=
nullptr)
1660 pTEOutliner->CompleteOnlineSpelling();
1662 std::unique_ptr<SdrUndoObjSetText> pTxtUndo;
1667 for (nText = 0; nText < pTEObj->getTextCount(); ++nText)
1668 if (pTEObj->getText(nText) == pTEObj->getActiveText())
1673 .GetSdrUndoFactory()
1674 .CreateUndoObjectSetText(*pTEObj, nText)
1678 "svx::SdrObjEditView::EndTextEdit(), could not create undo action!");
1688 OUString aObjName(pTEObj->TakeObjNameSingul());
1692 pTEObj->EndTextEdit(*pTEOutliner);
1694 if ((pTEObj->GetRotateAngle() != 0_deg100) || (pTEObj && pTEObj->IsFontwork()))
1696 pTEObj->ActionChanged();
1699 if (pTxtUndo !=
nullptr)
1701 pTxtUndo->AfterSetText();
1702 if (!pTxtUndo->IsDifferent())
1708 std::unique_ptr<SdrUndoAction> pDelUndo;
1709 bool bDelObj =
false;
1712 bDelObj = pTEObj->IsTextFrame() && !pTEObj->HasText() && !pTEObj->IsEmptyPresObj()
1713 && !pTEObj->HasFill() && !pTEObj->HasLine();
1715 if (pTEObj->IsInserted() && bDelObj
1718 SdrObjKind eIdent = pTEObj->GetObjIdentifier();
1731 if (pDelUndo !=
nullptr)
1738 DBG_ASSERT(pTEObj->getParentSdrObjListFromSdrObject() !=
nullptr,
1739 "SdrObjEditView::SdrEndTextEdit(): Fatal: Object edited doesn't have an "
1741 if (pTEObj->getParentSdrObjListFromSdrObject() !=
nullptr)
1743 pTEObj->getParentSdrObjListFromSdrObject()->RemoveObject(pTEObj->GetOrdNum());
1758 pTEObj->SetTextAnimationAllowed(
true);
1766 for (
size_t i = pTEOutliner->GetViewCount();
i > 0;)
1773 pTEOutliner->RemoveView(
i);
1795 pTEOutliner->Clear();
1796 if (pTEWin !=
nullptr)
1808 if (pTEObj && !pTEObj->getSdrModelFromSdrObject().isLocked() && pTEObj->GetBroadcaster())
1814 if (pUndoEditUndoManager)
1816 if (bNeedToUndoSavedRedoTextEdit)
1821 pUndoEditUndoManager->
Undo();
1826 pUndoEditUndoManager->
Undo();
1840 if (pWin ==
nullptr)
1846 for (
size_t i = 0;
i < nWinCount && pNewView ==
nullptr;
i++)
1882 aEditArea.
Union(pOLV->GetOutputArea());
1890 pRef->GetMapMode().GetMapUnit());
1907 if (pText !=
nullptr && pText->IsTextFrame() && pWin !=
nullptr)
1927std::unique_ptr<TextChainCursorManager>
1930 *bOutHandled =
false;
1936 if (!pTextObj->GetNextLinkInChain() && !pTextObj->GetPrevLinkInChain())
1939 std::unique_ptr<TextChainCursorManager> pCursorManager(
1941 if (pCursorManager->HandleKeyEvent(rKEvt))
1945 *bOutHandled =
true;
1948 return pCursorManager;
1957 bool bHandled =
false;
1958 std::unique_ptr<TextChainCursorManager> xCursorManager(
1991 if (pWin !=
nullptr)
2003 if (aPixPos.
X() < aR.
Left())
2005 if (aPixPos.
X() > aR.
Right())
2007 if (aPixPos.
Y() < aR.
Top())
2009 if (aPixPos.
Y() > aR.
Bottom())
2035 if (pWin !=
nullptr)
2041 if (bPostIt && pWin)
2045 if (aPixPos.
X() < aR.
Left())
2047 if (aPixPos.
X() > aR.
Right())
2049 if (aPixPos.
Y() < aR.
Top())
2051 if (aPixPos.
Y() > aR.
Bottom())
2070 bool bPostIt = bSelMode;
2088 if (aPixPos.
X() < aR.
Left())
2090 if (aPixPos.
X() > aR.
Right())
2092 if (aPixPos.
Y() < aR.
Top())
2094 if (aPixPos.
Y() > aR.
Bottom())
2113 if (rCEvt.
GetCommand() == CommandEventId::StartDrag)
2119 if (pWin !=
nullptr)
2132 if (aPixPos.
X() < aR.
Left())
2134 if (aPixPos.
X() > aR.
Right())
2136 if (aPixPos.
Y() < aR.
Top())
2138 if (aPixPos.
Y() > aR.
Bottom())
2204 if (pCsr !=
nullptr)
2222 if (pText->GetOutlinerParaObject())
2223 nScriptType = pText->GetOutlinerParaObject()->GetTextObject().GetScriptType();
2232 for (
size_t i = 0;
i < nMarkCount; ++
i)
2243 if (nScriptType == SvtScriptType::NONE)
2244 nScriptType = SvtScriptType::LATIN;
2258 "SdrObjEditView::GetAttributes(): mpTextEditOutlinerView=NULL");
2260 "SdrObjEditView::GetAttributes(): mpTextEditOutliner=NULL");
2264 if (!bOnlyHardAttr && pText->GetStyleSheet())
2265 rTargetSet.
Put(pText->GetStyleSheet()->GetItemSet());
2268 rTargetSet.
Put(pText->GetMergedItemSet());
2311 bool bHasEEFeatureItems =
false;
2318 sal_uInt16 nW = pItem->Which();
2320 bHasEEFeatureItems =
true;
2324 if (bHasEEFeatureItems)
2327 nullptr, VclMessageType::Info, VclButtonsType::Ok,
2328 "SdrObjEditView::SetAttributes(): Setting EE_FEATURE items "
2329 "at the SdrView does not make sense! It only leads to "
2330 "overhead and unreadable documents."));
2340 if (bAllTextSelected || bNoEEItems)
2352 AddUndo(
GetModel().GetSdrUndoFactory().CreateUndoGeoObject(*pTextEditObj));
2359 bool bRescueText(pTextEditObj);
2362 *pTextEditObj,
false, !bNoEEItems || bRescueText));
2366 pTextEditObj->SetMergedItemSetAndBroadcast(*pSet, bReplaceAll);
2371 else if (!bOnlyEEItems)
2385 if (eState == SfxItemState::SET)
2398 AddUndo(
GetModel().GetSdrUndoFactory().CreateUndoGeoObject(*pTextEditObj));
2399 AddUndo(
GetModel().GetSdrUndoFactory().CreateUndoAttrObject(*pTextEditObj));
2403 pTextEditObj->SetMergedItemSetAndBroadcast(aSet, bReplaceAll);
2422 if (pTEOutliner && pTEOutliner->
IsModified())
2468 for (sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
2507 lcl_RemoveTextEditOutlinerViews(
this,
GetSdrPageView(), &rOldDev);
2521 if (pObj !=
nullptr && pPV !=
nullptr && pWin !=
nullptr && pObj->
HasMacro())
2539 aHitRec.
aPos = rUpPos;
2553 aHitRec.
aPos = rDownPos;
2568 aHitRec.
aPos = rPnt;
2629 css::uno::Reference<css::text::XText> xText(pObj->
getUnoShape(), css::uno::UNO_QUERY);
2632 SvxUnoTextBase* pRange = comphelper::getFromUnoTunnel<SvxUnoTextBase>(xText);
2683 OnEndPasteOrDrop(pInfo);
2688 OnBeginPasteOrDrop(pInfo);
2703 sal_uInt16 nLevel = 0xFFFF;
2707 "SdrObjEditView::GetAttributes(): mpTextEditOutlinerView=NULL");
2709 "SdrObjEditView::GetAttributes(): mpTextEditOutliner=NULL");
2718 for (sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++)
2720 sal_uInt16 nParaDepth
2722 if (!(nLevel & nParaDepth))
2723 nLevel += nParaDepth;
2741 switch (nObjectIdentifier)
2797 return bTextOnly ? gTextOnly : gFull;
2808 rFormatSet = std::make_shared<SfxItemSet>(
GetModel().GetItemPool(),
2816 const bool bOnlyHardAttr =
false;
2835 bool bNoCharacterFormats,
bool bNoParagraphFormats)
2839 for (
const auto& pRange : pRanges)
2841 sal_uInt16 nWhich = pRange.first;
2842 const sal_uInt16 nLastWhich = pRange.second;
2850 for (; nWhich <= nLastWhich; nWhich++)
2855 if ((pSourceItem && !pTargetItem)
2856 || (pSourceItem && pTargetItem && *pSourceItem != *pTargetItem))
2858 aPaintSet.
Put(*pSourceItem);
2866 SdrText* pText,
bool bNoCharacterFormats,
2867 bool bNoParagraphFormats)
2881 for (sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
2883 if (!bNoCharacterFormats)
2888 bNoCharacterFormats, bNoParagraphFormats));
2913 bool bNoParagraphFormats)
2917 bNoParagraphFormats))
2935 bool bTextOnly =
true;
2937 for (
const auto& pRange : pRanges)
2949 rFormatSet, rShapeSet, bNoCharacterFormats,
2950 bNoParagraphFormats));
2960 while (--nText >= 0)
2964 bNoParagraphFormats);
2979 const bool bRemoveParaAttribs = !bNoParagraphFormats;
2983 rFormatSet, aSet, bNoCharacterFormats,
2984 bNoParagraphFormats));
::rtl::Reference< IEventProcessor > xProcessor
static const AllSettings & GetSettings()
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
basegfx::BColor getBColor() const
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
bool IsMouseEvent() const
OUString GetWord(sal_Int32 nPara, sal_Int32 nIndex)
virtual SvtScriptType GetScriptType() const=0
void SetNegativeX(bool bSet)
void setEditViewCallbacks(EditViewCallbacks *pEditViewCallbacks)
MouseEventModifiers GetMode() const
sal_uInt16 GetModifier() const
sal_uInt16 GetClicks() const
sal_uInt16 GetButtons() const
const Point & GetPosPixel() const
const EditTextObject & GetTextObject() const
bool MouseMove(const MouseEvent &)
void SetEndCutPasteLinkHdl(const Link< LinkParamNone *, void > &rLink)
bool Command(const CommandEvent &rCEvt)
void SetSelection(const ESelection &)
SvtScriptType GetSelectedScriptType() const
void Paint(const tools::Rectangle &rRect, OutputDevice *pTargetDevice=nullptr)
void SetControlWord(EVControlBits nWord)
bool HasSelection() const
bool MouseButtonUp(const MouseEvent &)
void RegisterViewShell(OutlinerViewShell *pViewShell)
void SetOutputArea(const tools::Rectangle &rRect)
void SetBackgroundColor(const Color &rColor)
vcl::Window * GetWindow() const
void RemoveAttribs(bool bRemoveParaAttribs, bool bKeepLanguages=false)
const SfxStyleSheet * GetStyleSheet() const
tools::Rectangle const & GetOutputArea() const
void HideCursor(bool bDeactivate=false)
ESelection GetSelection() const
bool PostKeyEvent(const KeyEvent &rKEvt, vcl::Window const *pFrameWin=nullptr)
EVControlBits GetControlWord() const
EEAnchorMode GetAnchorMode() const
void SetWindow(vcl::Window *pWindow)
Outliner * GetOutliner() const
void SetAttribs(const SfxItemSet &)
bool MouseButtonDown(const MouseEvent &)
void RemoveAttribsKeepLanguages(bool bRemoveParaAttribs)
sal_uInt16 GetInvalidateMore() const
void SetAnchorMode(EEAnchorMode eMode)
void SetInvalidateMore(sal_uInt16 nPixel)
Color const & GetBackgroundColor() const
EditView & GetEditView() const
void ShowCursor(bool bGotoCursor=true, bool bActivate=false)
void SetText(const OutlinerParaObject &)
const EditEngine & GetEditEngine() const
std::optional< OutlinerParaObject > CreateParaObject(sal_Int32 nStartPara=0, sal_Int32 nParaCount=EE_PARA_ALL) const
void SetStyleSheet(sal_Int32 nPara, SfxStyleSheet *pStyle)
bool SetUpdateLayout(bool bUpdate)
OutlinerView * GetView(size_t nIndex) const
void SetParaAttribs(sal_Int32 nPara, const SfxItemSet &)
const Link< EditFieldInfo *, void > & GetCalcFieldValueHdl() const
SfxItemSet const & GetParaAttribs(sal_Int32 nPara) const
void RemoveCharAttribs(sal_Int32 nPara, sal_uInt16 nWhich=0)
size_t GetViewCount() const
bool IsTopToBottom() const
sal_Int32 GetParagraphCount() const
void EnableMapMode(bool bEnable=true)
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
SAL_WARN_UNUSED_RESULT Point LogicToPixel(const Point &rLogicPt) const
OutDevType GetOutDevType() const
virtual vcl::Window * GetOwnerWindow() const
bool IsMapModeEnabled() const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
constexpr tools::Long X() const
SfxItemSet GetAttrFromMarked(bool bOnlyHardAttr) const
bool IsUndoEnabled() const
virtual void MarkListHasChanged() override
void SetAttrToMarked(const SfxItemSet &rAttr, bool bReplaceAll)
void SetNotPersistAttrToMarked(const SfxItemSet &rAttr)
SfxStyleSheet * GetStyleSheet() const
void AddUndo(std::unique_ptr< SdrUndoAction > pUndo)
void SetStyleSheet(SfxStyleSheet *pStyleSheet, bool bDontRemoveHardAttr)
void SetAttributes(const SfxItemSet &rSet, bool bReplaceAll)
virtual void ModelHasChanged() override
void MergeNotPersistAttrFromMarked(SfxItemSet &rAttr) const
void GetAttributes(SfxItemSet &rTargetSet, bool bOnlyHardAttr) const
sal_uInt16 GetHdlSize() const
void SetMoveOutside(bool bOn)
SdrHintKind GetKind() const
bool IsSet(SdrLayerID a) const
size_t GetMarkCount() const
SdrMark * GetMark(size_t nNum) const
virtual SfxViewShell * GetSfxViewShell() const
Get access to the view shell owning this draw view, if any.
OUString ImpGetDescriptionString(TranslateId pStrCacheID, ImpGetDescriptionOptions nOpt=ImpGetDescriptionOptions::NONE) const
const SdrMarkList & GetMarkedObjectList() const
virtual void EndAction() override
SdrObject * GetMarkedObjectByIndex(size_t nNum) const
SdrMarkList & GetMarkedObjectListWriteAccess()
virtual bool IsAction() const override
size_t GetMarkedObjectCount() const
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual void BckAction() override
virtual void MovAction(const Point &rPnt) override
virtual void HideSdrPage() override
virtual void BrkAction() override
bool getPossibleGridOffsetForSdrObject(basegfx::B2DVector &rOffset, const SdrObject *pObj, const SdrPageView *pPV) const
void AdjustMarkHdl(SfxViewShell *pOtherShell=nullptr)
virtual void TakeActionRect(tools::Rectangle &rRect) const override
virtual bool MouseMove(const MouseEvent &rMEvt, OutputDevice *pWin) override
handle mouse over effects for handles
SdrObject * GetMarkedSdrObj() const
sal_uInt16 GetDefaultTabulator() const
virtual void SetChanged(bool bFlg=true)
SdrUndoFactory & GetSdrUndoFactory() const
returns the models undo factory.
OutputDevice * GetRefDevice() const
bool SetAttributes(const SfxItemSet &rSet, bool bReplaceAll)
sal_uInt16 GetSelectionLevel() const
bool IsTextEditInSelectionMode() const
SdrTextObj * GetTextEditObject() const
virtual std::unique_ptr< SdrUndoManager > createLocalTextUndoManager()
void ImpChainingEventHdl()
tools::Rectangle aMinTextEditArea
virtual void DeleteDeviceFromPaintView(OutputDevice &rOldWin) override
virtual void EditViewInvalidate(const tools::Rectangle &rRect) override
SfxUndoManager * mpOldTextEditUndoManager
virtual void BrkAction() override
std::unique_ptr< SdrOutliner > mpTextEditOutliner
bool ImpIsTextEditAllSelected() const
vcl::Cursor * pTextEditCursorBuffer
virtual void OnBeginPasteOrDrop(PasteOrDropInfos *pInfo)
virtual ~SdrObjEditView() override
bool mbTextEditDontDelete
OutlinerView * ImpFindOutlinerView(vcl::Window const *pWin) const
virtual void OnEndPasteOrDrop(PasteOrDropInfos *pInfo)
VclPtr< vcl::Window > mpTextEditWin
OutlinerView * mpTextEditOutlinerView
static bool SupportsFormatPaintbrush(SdrInventor nObjectInventor, SdrObjKind nObjectIdentifier)
returns true if the shape identified by its inventor and identifier supports format paint brush opera...
virtual SdrEndTextEditKind SdrEndTextEdit(bool bDontDeleteReally=false)
virtual bool KeyInput(const KeyEvent &rKEvt, vcl::Window *pWin) override
void DisposeUndoManager()
virtual void EditViewInputContext(const InputContext &rInputContext) override
void MovMacroObj(const Point &rPnt)
const OutlinerView * GetTextEditOutlinerView() const
virtual bool MouseButtonUp(const MouseEvent &rMEvt, OutputDevice *pWin) override
virtual OutputDevice & EditViewOutputDevice() const override
static void ApplyFormatPaintBrushToText(SfxItemSet const &rFormatSet, SdrTextObj &rTextObj, SdrText *pText, bool bNoCharacterFormats, bool bNoParagraphFormats)
helper function for selections with multiple SdrText for one SdrTextObj (f.e.
virtual bool MouseMove(const MouseEvent &rMEvt, OutputDevice *pWin) override
handle mouse over effects for handles
std::unique_ptr< TextChainCursorManager > ImpHandleMotionThroughBoxesKeyInput(const KeyEvent &rKEvt, bool *bOutHandled)
void getTextSelection(css::uno::Any &rSelection)
fills the given any with a XTextCursor for the current text selection.
virtual void MovAction(const Point &rPnt) override
void HideSdrPage() override
void GetAttributes(SfxItemSet &rTargetSet, bool bOnlyHardAttr) const
sdr::overlay::OverlayObjectList maTEOverlayGroup
virtual bool IsAction() const override
bool IsTextEditFrameHit(const Point &rHit) const
Link< EditFieldInfo *, void > aOldCalcFieldValueLink
void ImpPaintOutlinerView(OutlinerView &rOutlView, const tools::Rectangle &rRect, OutputDevice &rTargetDevice) const
void SetTextEditWin(vcl::Window *pWin)
rtl::Reference< sdr::SelectionController > mxLastSelectionController
virtual Point EditViewPointerPosPixel() const override
virtual void ModelHasChanged() override
void ImpMakeTextCursorAreaVisible()
virtual void EndAction() override
void TakeFormatPaintBrush(std::shared_ptr< SfxItemSet > &rFormatSet)
returns a format paint brush set from the current selection
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual void TakeActionRect(tools::Rectangle &rRect) const override
virtual bool MouseButtonDown(const MouseEvent &rMEvt, OutputDevice *pWin) override
std::unique_ptr< SdrUndoManager > mpLocalTextEditUndoManager
virtual css::uno::Reference< css::datatransfer::clipboard::XClipboard > GetClipboard() const override
virtual void EditViewCursorRect(const tools::Rectangle &rRect, int nExtTextInputWidth) override
rtl::Reference< sdr::SelectionController > mxSelectionController
void ApplyFormatPaintBrush(SfxItemSet &rFormatSet, bool bNoCharacterFormats, bool bNoParagraphFormats)
applies a format paint brush set from the current selection.
virtual css::uno::Reference< css::datatransfer::dnd::XDropTarget > GetDropTarget() override
void ImpMacroDown(const Point &rDownPos)
SdrPageView * GetTextEditPageView() const
VclPtr< vcl::Window > pMacroWin
void BegMacroObj(const Point &rPnt, short nTol, SdrObject *pObj, SdrPageView *pPV, vcl::Window *pWin)
SfxStyleSheet * GetStyleSheet() const
void SetStyleSheet(SfxStyleSheet *pStyleSheet, bool bDontRemoveHardAttr)
tools::Rectangle aTextEditArea
virtual bool Command(const CommandEvent &rCEvt, vcl::Window *pWin) override
SdrObjEditView(SdrModel &rSdrModel, OutputDevice *pOut)
SdrPageView * ShowSdrPage(SdrPage *pPage) override
OutlinerView * ImpMakeOutlinerView(vcl::Window *pWin, OutlinerView *pGivenView, SfxViewShell *pViewShell=nullptr) const
bool IsTextEditHit(const Point &rHit) const
virtual void AddDeviceToPaintView(OutputDevice &rNewDev, vcl::Window *pWindow) override
void TextEditDrawing(SdrPaintWindow &rPaintWindow)
virtual bool IsTextEdit() const final override
virtual void MarkListHasChanged() override
unotools::WeakReference< SdrTextObj > mxWeakTextEditObj
bool mbTextEditOnlyOneView
virtual void EditViewSelectionChange() override
virtual SvtScriptType GetScriptType() const
void ImpInvalidateOutlinerView(OutlinerView const &rOutlView) const
void ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCursorManager)
virtual bool SdrBeginTextEdit(SdrObject *pObj, SdrPageView *pPV=nullptr, vcl::Window *pWin=nullptr, bool bIsNewObj=false, SdrOutliner *pGivenOutliner=nullptr, OutlinerView *pGivenOutlinerView=nullptr, bool bDontDeleteOutliner=false, bool bOnlyOneView=false, bool bGrabFocus=true)
const SdrOutliner * GetTextEditOutliner() const
SdrPageView * mpTextEditPV
virtual void BckAction() override
void ImpMacroUp(const Point &rUpPos)
const SdrPageView * pPageView
const SdrLayerIDSet * pVisiLayer
virtual bool DoMacro(const SdrObjMacroHitRec &rRec)
virtual SdrInventor GetObjInventor() const
virtual OutlinerParaObject * GetOutlinerParaObject() const
virtual css::uno::Reference< css::drawing::XShape > getUnoShape()
virtual const tools::Rectangle & GetCurrentBoundRect() const
SdrModel & getSdrModelFromSdrObject() const
virtual void PaintMacro(OutputDevice &rOut, const tools::Rectangle &rDirtyRect, const SdrObjMacroHitRec &rRec) const
virtual SdrObjKind GetObjIdentifier() const
SdrPage * getSdrPageFromSdrObject() const
const SfxItemSet & GetMergedItemSet() const
bool IsMacroHit(const SdrObjMacroHitRec &rRec) const
virtual SdrLayerID GetLayer() const
virtual bool HasMacro() const
const SdrLayerIDSet & GetVisibleLayers() const
sal_uInt32 PageWindowCount() const
const SdrLayerIDSet & GetLockedLayers() const
SdrPage * GetPage() const
SdrPageWindow * GetPageWindow(sal_uInt32 nIndex) const
rtl::Reference< sdr::overlay::OverlayManager > const & GetOverlayManager() const
SdrPaintWindow & GetPaintWindow() const
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
virtual void DeleteDeviceFromPaintView(OutputDevice &rOldDev)
virtual void AddDeviceToPaintView(OutputDevice &rNewDev, vcl::Window *pWindow)
virtual bool MouseButtonUp(const MouseEvent &, OutputDevice *)
SdrPaintWindow * GetPaintWindow(sal_uInt32 nIndex) const
OutputDevice * GetFirstOutputDevice() const
virtual SdrPageView * ShowSdrPage(SdrPage *pPage)
virtual void MakeVisible(const tools::Rectangle &rRect, vcl::Window &rWin)
sal_uInt16 ImpGetHitTolLogic(short nHitTol, const OutputDevice *pOut) const
virtual bool Command(const CommandEvent &, vcl::Window *)
virtual void InvalidateOneWin(OutputDevice &rWin)
If the View should not call Invalidate() on the windows, override the following 2 methods and do some...
virtual bool KeyInput(const KeyEvent &rKEvt, vcl::Window *pWin)
sal_uInt32 PaintWindowCount() const
virtual bool MouseButtonDown(const MouseEvent &, OutputDevice *)
SdrPageView * GetSdrPageView() const
SdrModel & GetModel() const
void FlushComeBackTimer() const
const vcl::Region & GetRedrawRegion() const
OutputDevice & GetTargetOutputDevice()
OutputDevice & GetOutputDevice() const
bool OutputToWindow() const
vcl::Window * GetWindow() const
SdrOutliner & ImpGetDrawOutliner() const
bool IsFitToSize() const
returns true if the old feature for fitting shape content should into shape is enabled....
void NbcSetOutlinerParaObjectForText(std::optional< OutlinerParaObject > pTextObject, SdrText *pText)
static bool HasTextImpl(SdrOutliner const *pOutliner)
returns false if the given pointer is NULL or if the given SdrOutliner contains no text.
virtual sal_Int32 getTextCount() const override
returns the number of texts available for this object.
static void impDecomposeBlockTextPrimitiveDirect(drawinglayer::primitive2d::Primitive2DContainer &rTarget, SdrOutliner &rOutliner, const basegfx::B2DHomMatrix &rNewTransformA, const basegfx::B2DHomMatrix &rNewTransformB, const basegfx::B2DRange &rClipRange)
virtual SdrObjKind GetObjIdentifier() const override
virtual SdrText * getText(sal_Int32 nIndex) const override
returns the nth available text.
OutlinerParaObject * GetOutlinerParaObject()
virtual std::unique_ptr< SdrUndoAction > CreateUndoDeleteObject(SdrObject &rObject, bool bOrdNumDirect=false)
size_t GetRedoActionCountBeforeTextEdit() const
virtual bool Redo() override
void SetEndTextEditHdl(const Link< SdrUndoManager *, void > &rLink)
bool isEndTextEditTriggeredFromUndo() const
virtual bool Undo() override
react depending on edit mode and if no more undo is possible
void Broadcast(const SfxHint &rHint)
const SfxPoolItem * GetCurItem() const
const SfxPoolItem * NextItem()
const WhichRangesContainer & GetRanges() const
SfxItemPool * GetPool() const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
static SAL_WARN_UNUSED_RESULT SfxViewShell * Current()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
static bool GetIsAutomaticFontColor()
css::uno::Reference< css::text::XTextCursor > createTextCursorBySelection(const ESelection &rSel)
void HandleCursorEventAfterChaining(const CursorChainingEvent aCurEvt, const ESelection &aNewSel)
bool GetNilChainingEvent(const SdrTextObj *)
ESelection const & GetPostChainingSel(const SdrTextObj *)
CursorChainingEvent const & GetCursorEvent(const SdrTextObj *)
void SetCursorEvent(const SdrTextObj *, CursorChainingEvent const &)
void SetPreChainingSel(const SdrTextObj *, ESelection const &)
void SetNilChainingEvent(const SdrTextObj *, bool)
void translate(double fX, double fY)
void append(const B2DPolygon &rPolygon, sal_uInt32 nCount=1)
B2DRange getB2DRange() const
void expand(const Tuple2D< TYPE > &rTuple)
void append(const Primitive2DReference &)
void append(std::unique_ptr< OverlayObject > pOverlayObject)
OverlayObject & getOverlayObject(sal_uInt32 nIndex) const
virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence()
virtual drawinglayer::primitive2d::Primitive2DContainer getOverlayObjectPrimitive2DSequence() const
const Point & GetPos() const
const Size & GetSize() const
tools::Rectangle GetBoundRect() const
Point LogicToPixel(const Point &rLogicPt) const
void SetCursor(vcl::Cursor *pCursor)
vcl::Cursor * GetCursor() const
bool IsMapModeEnabled() const
::OutputDevice const * GetOutDev() const
Point PixelToLogic(const Point &rDevicePt) const
Size GetOutputSizePixel() const
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void EnableMapMode(bool bEnable=true)
constexpr ::Color COL_LIGHTGRAY(0xC0, 0xC0, 0xC0)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
#define DBG_ASSERT(sCon, aError)
#define suppress_fun_call_w_exception(expr)
OUString SvxResId(TranslateId aId)
constexpr sal_uInt16 EE_FEATURE_END(EE_FEATURE_FIELD+0)
constexpr sal_uInt16 EE_PARA_START(EE_ITEMS_START+0)
constexpr sal_uInt16 EE_ITEMS_END(EE_FEATURE_END)
constexpr sal_uInt16 EE_CHAR_START(EE_PARA_END+1)
constexpr sal_uInt16 EE_FEATURE_START(EE_CHAR_END+1)
constexpr sal_uInt16 EE_CHAR_END(EE_CHAR_START+32)
constexpr sal_uInt16 EE_PARA_END(EE_PARA_START+19)
constexpr sal_uInt16 EE_ITEMS_START(OWN_ATTR_VALUE_END+1)
#define LINK(Instance, Class, Member)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
void ForAllViews(const SdrPage *pPage, std::function< void(SdrView *)> f)
sal_uInt16 GetTransparentSelectionPercent()
B2DPolygon createPolygonFromRect(const B2DRectangle &rRect, double fRadiusX, double fRadiusY)
B2DRange getRange(const B2DPolygon &rCandidate)
B2IRange fround(const B2DRange &rRange)
std::unique_ptr< BaseProcessor2D > createProcessor2DFromOutputDevice(OutputDevice &rTargetOutDev, const drawinglayer::geometry::ViewInformation2D &rViewInformation2D)
rtl::Reference< sdr::SelectionController > CreateTableController(SdrView &rView, const SdrTableObj &rObj, const rtl::Reference< sdr::SelectionController > &xRefController)
static constexpr auto Items
bool IsInvalidItem(const SfxPoolItem *pItem)
constexpr sal_uInt16 SDRATTR_TABLE_FIRST(SDRATTR_CUSTOMSHAPE_LAST+1)
constexpr sal_uInt16 SDRATTR_MISC_LAST(SDRATTR_TEXT_CLIPVERTOVERFLOW)
constexpr sal_uInt16 SDRATTR_GLOW_LAST(SDRATTR_GLOW_TRANSPARENCY)
constexpr sal_uInt16 SDRATTR_GLOW_FIRST(SDRATTR_TABLE_LAST+1)
constexpr sal_uInt16 SDRATTR_GRAF_LAST(SDRATTR_GRAFCROP)
constexpr sal_uInt16 SDRATTR_SHADOW_FIRST(XATTR_END+1)
constexpr TypedWhichId< SdrTextFixedCellHeightItem > SDRATTR_TEXT_USEFIXEDCELLHEIGHT(SDRATTR_MISC_FIRST+23)
constexpr sal_uInt16 SDRATTR_SOFTEDGE_LAST(SDRATTR_SOFTEDGE_RADIUS)
constexpr sal_uInt16 SDRATTR_MISC_FIRST(SDRATTR_CAPTION_LAST+1)
constexpr sal_uInt16 SDRATTR_TABLE_LAST(SDRATTR_TABLE_CELL_GRABBAG)
constexpr sal_uInt16 SDRATTR_GRAF_FIRST(SDRATTR_NOTPERSIST_LAST+1)
constexpr sal_uInt16 SDRATTR_SHADOW_LAST(SDRATTR_SHADOWALIGNMENT)
constexpr sal_uInt16 SDRATTR_SOFTEDGE_FIRST(SDRATTR_GLOW_LAST+1)
IMPL_LINK_NOARG(SdrObjEditView, ImpAfterCutOrPasteChainingEventHdl, LinkParamNone *, void)
static SfxItemSet CreatePaintSet(const WhichRangesContainer &pRanges, SfxItemPool &rPool, const SfxItemSet &rSourceSet, const SfxItemSet &rTargetSet, bool bNoCharacterFormats, bool bNoParagraphFormats)
IMPL_LINK(SdrObjEditView, ImpOutlinerStatusEventHdl, EditStatus &, rEditStat, void)
static const WhichRangesContainer & GetFormatRangeImpl(bool bTextOnly)
WhichRangesContainer RemoveWhichRange(const WhichRangesContainer &pOldWhichTable, sal_uInt16 nRangeBeg, sal_uInt16 nRangeEnd)
bool SearchOutlinerItems(const SfxItemSet &rSet, bool bInklDefaults, bool *pbOnlyEE)
Search an ItemSet for Outliner/EditEngine Items.
Color GetTextEditBackgroundColor(const SdrObjEditView &rView)
std::unique_ptr< SdrOutliner > SdrMakeOutliner(OutlinerMode nOutlinerMode, SdrModel &rModel)
Create an Outliner with the engine-global default settings on the heap.
SdrTextObj * DynCastSdrTextObj(SdrObject *pObj)
@ Group
abstract object (SdrObject)
@ Measure
object that represents a SdrPage
@ Page
Polyline represented by SdrPathObj.
@ Caption
connector object
@ PathFill
open Bezier-curve
@ FreehandLine
closed Bezier-curve
@ UNO
continuously activated OLE (PlugIn-Frame or similar)
@ CustomShape
Universal Network Object packed into SvDraw object.
@ CircleOrEllipse
rectangle (round corners optional)
@ Text
closed free-hand line
@ OLE2
foreign graphic (StarView Graphic)
@ OLEPluginFrame
measurement object
@ Graphic
OutlineText, special text object for StarDraw.
@ PathPolyLine
Polygon/PolyPolygon represented by SdrPathObj.
@ CircleSection
circle, ellipse
@ OutlineText
TitleText, special text object for StarDraw.
@ CircleArc
circle section
@ PolyLine
polygon, PolyPolygon
@ FreehandFill
open free-hand line
constexpr TypedWhichId< XFillAttrSetItem > XATTRSET_FILL(XATTR_FILL_LAST+1)
constexpr sal_uInt16 XATTR_LINE_FIRST(XATTR_START)
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
constexpr sal_uInt16 XATTR_LINE_LAST(XATTR_LINECAP)