29 #include <rtl/ref.hxx>
43 #include <editeng/editeng.hxx>
46 #include <com/sun/star/linguistic2/LinguServiceManager.hpp>
108 bool HasView()
const {
return mpView !=
nullptr; }
157 mpModel ( pObject ? &pObject->getSdrModelFromSdrObject() : nullptr ),
158 mbDataValid ( false ),
159 mbIsLocked ( false ),
160 mbNeedsUpdate ( false ),
161 mbOldUndoMode ( false ),
162 mbForwarderIsEditMode ( false ),
163 mbShapeIsEditMode ( false ),
164 mbNotificationsDisabled ( false ),
165 mbNotifyEditOutlinerSet ( false )
190 mpModel ( &rObject.getSdrModelFromSdrObject() ),
191 mbDataValid ( false ),
192 mbIsLocked ( false ),
193 mbNeedsUpdate ( false ),
194 mbOldUndoMode ( false ),
195 mbForwarderIsEditMode ( false ),
196 mbShapeIsEditMode ( true ),
197 mbNotificationsDisabled ( false ),
198 mbNotifyEditOutlinerSet ( false )
258 if (SfxHintId::Dying == rHint.
GetId())
266 else if (rHint.
GetId() == SfxHintId::ThisIsAnSdrHint)
309 sdr::table::Cell* pCellObj =
dynamic_cast< sdr::table::Cell*
>(
mpText );
310 if (pCellObj && xCell.get() != pCellObj)
374 else if (
const SvxViewChangedHint* pViewHint = dynamic_cast<const SvxViewChangedHint*>(&rHint))
477 bool bCreated =
false;
489 nOutlMode = OutlinerMode::OutlineObject;
516 css::uno::Reference< css::linguistic2::XHyphenator > xHyphenator =
m_xLinguServiceManager->getHyphenator();
517 if( xHyphenator.is() )
539 bool bOwnParaObj(
false);
541 if( pOutlinerParaObject )
549 if( !
mpOutliner->GetEditEngine().GetTextLen() || pOutlinerParaObject->
Count() > 1 || ( pOutlinerParaObject->
Count() == 1 &&
557 static_cast< SdrTextObj*
>(
mpObject)->NbcSetOutlinerParaObjectForText( std::unique_ptr<OutlinerParaObject>(pOutlinerParaObject),
mpText );
566 bool bVertical = pOutlinerParaObject && pOutlinerParaObject->
IsVertical();
603 delete pOutlinerParaObject;
669 bool bTextEditActive =
false;
673 bTextEditActive =
true;
859 Point aPoint1( rPoint );
866 aMapMode.SetOrigin(
Point());
891 aMapMode.SetOrigin(
Point());
907 if( !mbNotificationsDisabled )
949 return mpImpl->GetTextForwarder();
955 return mpImpl->GetEditViewForwarder( bCreate );
992 return mpImpl->LogicToPixel( rPoint, rMapMode );
997 return mpImpl->PixelToLogic( rPoint, rMapMode );
1002 mpImpl->addRange( pNewRange );
1007 mpImpl->removeRange( pOldRange );
1012 return mpImpl->getRanges();
1017 mpImpl->UpdateOutliner();
VclPtr< const OutputDevice > mpWindow
#define LINK(Instance, Class, Member)
virtual void removeRange(SvxUnoTextRangeBase *pOldRange) override
bool mbNotifyEditOutlinerSet
virtual Point LogicToPixel(const Point &, const MapMode &) const override
SdrHintKind GetKind() const
virtual const tools::Rectangle & GetCurrentBoundRect() const
virtual SdrEndTextEditKind SdrEndTextEdit(bool bDontDeleteReally=false)
std::unique_ptr< SvxDrawOutlinerViewForwarder > CreateViewForwarder()
void SetupOutlinerFormatting(SdrOutliner &rOutl, tools::Rectangle &rPaintRect) const
Setup given Outliner equivalently to SdrTextObj::Paint()
std::unique_ptr< SvxDrawOutlinerViewForwarder > mpViewForwarder
void SetUpdateMode(bool bUpdate, bool bRestoring=false)
Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
void RemoveObjectUser(sdr::ObjectUser &rOldUser)
virtual SdrText * getText(sal_Int32 nIndex) const override
returns the nth available text.
Point PixelToLogic(const Point &, const MapMode &rMapMode)
static::std::unique_ptr< SfxHint > EENotification2Hint(EENotify const *aNotify)
virtual std::unique_ptr< SvxEditSource > Clone() const override
const MapMode & GetMapMode() const
void SetEmptyPresObj(bool bEpt)
oslInterlockedCount maRefCount
virtual SdrObjKind GetObjIdentifier() const
bool IsTextEditActive() const
std::unique_ptr< SvxOutlinerForwarder > mpTextForwarder
void AddObjectUser(sdr::ObjectUser &rNewUser)
virtual ~SvxTextEditSourceImpl() override
SvxUnoTextRangeBaseVec mvTextRanges
MapUnit GetScaleUnit() const
bool GetDirectVertical() const
virtual SvxTextForwarder * GetTextForwarder() override
SdrPage * getSdrPageFromSdrObject() const
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
std::vector< SvxUnoTextRangeBase * > SvxUnoTextRangeBaseVec
virtual bool IsReallyEdited() const
returns true only if we are in edit mode and the user actually changed anything
SfxStyleSheet * GetStyleSheet() const
std::unique_ptr< SdrOutliner > mpOutliner
virtual SvxEditViewForwarder * GetEditViewForwarder(bool bCreate=false) override
std::unique_ptr< SdrOutliner > createOutliner(OutlinerMode nOutlinerMode)
bool mbForwarderIsEditMode
SvxTextForwarder * GetEditModeTextForwarder()
OUString GetText(sal_Int32 nPara) const
void SetNotifyHdl(const Link< EENotify &, void > &rLink)
virtual ~SvxTextEditSource() override
std::unique_ptr< OutlinerParaObject > CreateEditOutlinerParaObject() const
const EditTextObject & GetTextObject() const
const SdrOutliner * GetTextEditOutliner() const
VclPtr< vcl::Window > mpWindow
Point LogicToPixel(const Point &, const MapMode &rMapMode)
void UpdateOutlinerFormatting(SdrOutliner &rOutl, tools::Rectangle &rPaintRect) const
Update given Outliner equivalently to SdrTextObj::Paint()
SvxEditViewForwarder * GetEditViewForwarder(bool)
#define DBG_ASSERT(sCon, aError)
void removeRange(SvxUnoTextRangeBase *pOldRange)
virtual SfxStyleSheet * GetTextStyleSheetForObject(SdrObject *pObj) const
css::uno::Reference< css::linguistic2::XLinguServiceManager2 > m_xLinguServiceManager
SvxTextEditSourceImpl(SdrObject *pObject, SdrText *pText)
virtual void addRange(SvxUnoTextRangeBase *pNewRange) override
SvxTextForwarder * GetTextForwarder()
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)
SdrModel & getSdrModelFromSdrObject() const
const OutlinerView * GetTextEditOutlinerView() const
bool IsMasterPage() const
bool mbNotificationsDisabled
virtual const SvxUnoTextRangeBaseVec & getRanges() const override
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
virtual SdrText * getActiveText() const
returns the currently active text.
virtual SdrInventor GetObjInventor() const
virtual Point LogicToPixel(const Point &rPoint, const MapMode &rMapMode) const =0
SvxTextEditSource(SdrObject *pObj, SdrText *pText)
virtual Point PixelToLogic(const Point &rPoint, const MapMode &rMapMode) const =0
Point PixelToLogic(const Point &rDevicePt) const
Point LogicToPixel(const Point &rLogicPt) const
bool CanCreateEditOutlinerParaObject() const
virtual SfxBroadcaster & GetBroadcaster() const override
rtl::Reference< SvxTextEditSourceImpl > mpImpl
void Broadcast(const SfxHint &rHint)
virtual void ObjectInDestruction(const SdrObject &rObject) override
IMPL_LINK(SvxTextEditSourceImpl, NotifyHdl, EENotify &, rNotify, void)
TextRotation GetRotation() const
SfxStyleSheetBasePool * GetStyleSheetPool() const
void NbcSetOutlinerParaObjectForText(std::unique_ptr< OutlinerParaObject > pTextObject, SdrText *pText)
void EnableUndo(bool bEnable)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
Reference< XComponentContext > getProcessComponentContext()
virtual SvxViewForwarder * GetViewForwarder() override
DECL_LINK(NotifyHdl, EENotify &, void)
void disposeOutliner(std::unique_ptr< SdrOutliner > pOutliner)
OutlinerParaObject * GetOutlinerParaObject() const
SdrObjKind GetTextKind() const
TitleText, special text object for StarDraw.
virtual Point PixelToLogic(const Point &, const MapMode &) const override
virtual bool IsValid() const override
void addRange(SvxUnoTextRangeBase *pNewRange)
const sdr::table::CellRef & getActiveCell() const
The active table has the focus or is currently edited.
const SvxUnoTextRangeBaseVec & getRanges() const
SvxTextForwarder * GetBackgroundTextForwarder()
virtual void UpdateData() override
const SdrObject * GetObject() const
bool IsEmptyPresObj() const