[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - editeng/source include/editeng svx/source
matteocam
matteo.campanelli at gmail.com
Tue Jun 30 07:05:12 PDT 2015
editeng/source/outliner/overflowingtxt.cxx | 6 ++++++
include/editeng/overflowingtxt.hxx | 21 +++++++++++++++++++++
svx/source/svdraw/svdmodel.cxx | 2 +-
svx/source/svdraw/textchainflow.cxx | 18 +++++++++++++++++-
4 files changed, 45 insertions(+), 2 deletions(-)
New commits:
commit ecc3fcd988b222af17eb93bbf3fbc7ec55dec9d6
Author: matteocam <matteo.campanelli at gmail.com>
Date: Tue Jun 30 10:04:11 2015 -0400
Added ChainedText as a further abstraction on top of (Non)OverflowingText
Change-Id: I7607aacc856fd9af7ae2087e81a362f071163bd5
diff --git a/editeng/source/outliner/overflowingtxt.cxx b/editeng/source/outliner/overflowingtxt.cxx
index 196d1f8..8ecd05c 100644
--- a/editeng/source/outliner/overflowingtxt.cxx
+++ b/editeng/source/outliner/overflowingtxt.cxx
@@ -39,4 +39,10 @@ OUString OverflowingText::GetHeadingLines() const
}
+ChainedText::ChainedText(Outliner *pOutl)
+{
+ // Initialize stuff here
+}
+
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/overflowingtxt.hxx b/include/editeng/overflowingtxt.hxx
index e4f9a2d..5399f4b 100644
--- a/include/editeng/overflowingtxt.hxx
+++ b/include/editeng/overflowingtxt.hxx
@@ -27,6 +27,11 @@ class OUString;
class OutlinerParaObject;
+class EditTextObject;
+class Outliner;
+
+typedef EditTextObject FormattedTextPortion;
+
class EDITENG_DLLPUBLIC OverflowingText
@@ -71,6 +76,22 @@ class EDITENG_DLLPUBLIC NonOverflowingText {
}
};
+// XXX: Do we also need a class for Underflow here?
+
+/*
+ * class ChainedText:
+ * contains and handles the state of a text broken _after_ a flow event.
+ *
+*/
+class EDITENG_DLLPUBLIC ChainedText {
+ public:
+ ChainedText(Outliner *);
+
+ private:
+ NonOverflowingText *mpNonOverflowingTxt;
+ OverflowingText *mpOverflowingTxt;
+};
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index 19652f4..efe280d 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -220,7 +220,7 @@ void SdrModel::ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* _pEmbe
pChainingOutliner = SdrMakeOutliner( OUTLINERMODE_TEXTOBJECT, this );
ImpSetOutlinerDefaults(pChainingOutliner, true);
- // Make a TextChain
+ // Make a TextChain //XXX: There should not be only one - XXX: Prototype code
pTextChain = new TextChain;
/* End Text Chaining related code */
diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx
index 723c7f7..1261175 100644
--- a/svx/source/svdraw/textchainflow.cxx
+++ b/svx/source/svdraw/textchainflow.cxx
@@ -255,6 +255,10 @@ OutlinerParaObject *TextChainFlow::impGetOverflowingParaObject(SdrOutliner *pOut
pJoiningPara = pOutliner->CreateParaObject();
}
+ // Create a Para Object out of mpMidParas
+ // (in order to use the SfxItemPool of the current outliner
+ // instead of the ones currently in mpMidParas)
+
// start actual composition
//pOutliner->Clear();
impSetOutlinerToEmptyTxt(pOutliner);
@@ -347,8 +351,20 @@ void EditingTextChainFlow::impSetFlowOutlinerParams(SdrOutliner *pFlowOutl, SdrO
pFlowOutl->SetMinAutoPaperSize(pParamOutl->GetMinAutoPaperSize());
pFlowOutl->SetPaperSize(pParamOutl->GetPaperSize());
- // Set right text attributes
+ // Set right text attributes // XXX: Not enough: it does not handle complex attributes
pFlowOutl->SetEditTextObjectPool(pParamOutl->GetEditTextObjectPool());
}
+/*
+ *
+ * Some notes on how to set style sheets:
+ * - save whole edittexts instead of strings only for (Non)OverflowingText; this can be done by the EditEngine::CreateTextObject method and using a selection - probably from ImpEditEngine)
+ * - first, refactor the impGet*ParaObject stuff moving it in some (static?) class in overflowingtxt.hxx. Probably each of these methods should be split in smaller routines.
+ * - for the refactoring of the previous point we may also add an option for whether we are joining paragraphs or not
+ * - When making new OutlinerParaObjs and joining paragraphs we need to first add the string (as we already do) and then, with the appropriate selection, use Outliner::QuickSetAttribs(SfxItemSet(txtObj->GetPool()), aSelectionOfTheNewText)
+ * - having all this in a whole class that contains Overflowing and NonOverflowingText would not be bad. This same class could be used to handle a cursor later on.
+ *
+ *
+ *
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list