include/svx/svdotext.hxx | 1 + include/svx/textchainflow.hxx | 18 ++++++++++++++++-- svx/source/svdraw/svdotext.cxx | 6 +++--- svx/source/svdraw/svdotextdecomposition.cxx | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-)
New commits: commit f1d992435c64257114a68fb4c02e4379ea745b48 Author: matteocam <matteo.campane...@gmail.com> Date: Mon Jun 29 03:55:31 2015 -0400 Using EditingTextChainFlow in editing mode Change-Id: Id49b9ed246e40436287e557b8218761f92127e49 diff --git a/include/svx/svdotext.hxx b/include/svx/svdotext.hxx index b5dde0f..6e81767 100644 --- a/include/svx/svdotext.hxx +++ b/include/svx/svdotext.hxx @@ -139,6 +139,7 @@ private: friend class TextChain; friend class TextChainFlow; + friend class EditingTextChainFlow; // CustomShapeproperties need to access the "bTextFrame" member: friend class sdr::properties::CustomShapeProperties; diff --git a/include/svx/textchainflow.hxx b/include/svx/textchainflow.hxx index 1ae66f2..8528a9f 100644 --- a/include/svx/textchainflow.hxx +++ b/include/svx/textchainflow.hxx @@ -34,9 +34,10 @@ class TextChainFlow { public: TextChainFlow(SdrTextObj *pChainTarget); - ~TextChainFlow(); + virtual ~TextChainFlow(); - void CheckForFlowEvents(SdrOutliner *, SdrOutliner *); + // Check for flow events in Outliner + virtual void CheckForFlowEvents(SdrOutliner *); bool IsOverflow(); bool IsUnderflow(); @@ -46,7 +47,12 @@ class TextChainFlow { // Uses two outliners: one for the non-overfl text and one for overflowing (might be the same) void ExecuteOverflow(SdrOutliner *, SdrOutliner *); + SdrTextObj *GetLinkTarget(); + protected: + + void impCheckForFlowEvents(SdrOutliner *, SdrOutliner *); + TextChain *GetTextChain(); void impLeaveOnlyNonOverflowingText(SdrOutliner *); @@ -76,6 +82,14 @@ class TextChainFlow { }; + +class EditingTextChainFlow : public TextChainFlow +{ + public: + EditingTextChainFlow(SdrTextObj *); + virtual void CheckForFlowEvents(SdrOutliner *) SAL_OVERRIDE; +}; + #endif // INCLUDED_SVX_TEXTCHAINFLOW_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx index 8b47a40..b3b7332 100644 --- a/svx/source/svdraw/svdotext.cxx +++ b/svx/source/svdraw/svdotext.cxx @@ -2059,8 +2059,8 @@ void SdrTextObj::onChainingEvent() // XXX: Specializing the class? // OBS: you don't need all the "setting parameters" crap for underflow with this - TextChainFlow aTxtChainFlow(this); - aTxtChainFlow.CheckForFlowEvents(pEdtOutl, NULL); + EditingTextChainFlow aTxtChainFlow(this); + aTxtChainFlow.CheckForFlowEvents(pEdtOutl); if (aTxtChainFlow.IsOverflow()) { @@ -2082,7 +2082,7 @@ void SdrTextObj::onChainingEvent() GetTextChain()->SetNilChainingEvent(const_cast<SdrTextObj*>(this), true); aTxtChainFlow.ExecuteOverflow(&aDrawOutliner, &aDrawOutliner); - } + } // XXX: For the code below // Probably not necessary //else { // // No overflow: set the whole thing diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index 0479632..cd107d5 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -1646,7 +1646,7 @@ void SdrTextObj::impDecomposeChainedTextPrimitive( TextChainFlow aTxtChainFlow(const_cast<SdrTextObj*>(this)); bool bIsOverflow; - aTxtChainFlow.CheckForFlowEvents(&rOutliner, NULL); // seconod parameter is to check whether you have to "prepare" the outliner's parameters + aTxtChainFlow.CheckForFlowEvents(&rOutliner); if (aTxtChainFlow.IsUnderflow() && !IsInEditMode()) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits