diff options
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r-- | svx/source/svdraw/svdotextdecomposition.cxx | 14 | ||||
-rw-r--r-- | svx/source/svdraw/svdotextpathdecomposition.cxx | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index 666c20d48f5a..f5955eb7d869 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -234,6 +234,18 @@ namespace } } + ::std::vector< sal_Bool > aKashidaArray; + + if(!rInfo.mpKashidaArray.empty() && rInfo.mnTextLen) + { + aKashidaArray.reserve(rInfo.mnTextLen); + + for(sal_Int32 a=0; a < rInfo.mnTextLen; a++) + { + aKashidaArray.push_back(rInfo.mpKashidaArray[a]); + } + } + // create complex text primitive and append const Color aFontColor(rInfo.mrFont.GetColor()); const basegfx::BColor aBFontColor(aFontColor.getBColor()); @@ -316,6 +328,7 @@ namespace rInfo.mnTextStart, rInfo.mnTextLen, std::vector(aDXArray), + std::vector(aKashidaArray), aFontAttribute, rInfo.mpLocale ? *rInfo.mpLocale : css::lang::Locale(), aBFontColor, @@ -344,6 +357,7 @@ namespace rInfo.mnTextStart, rInfo.mnTextLen, std::vector(aDXArray), + std::vector(aKashidaArray), std::move(aFontAttribute), rInfo.mpLocale ? *rInfo.mpLocale : css::lang::Locale(), aBFontColor, diff --git a/svx/source/svdraw/svdotextpathdecomposition.cxx b/svx/source/svdraw/svdotextpathdecomposition.cxx index 99a7169c1fe6..7537625b2a26 100644 --- a/svx/source/svdraw/svdotextpathdecomposition.cxx +++ b/svx/source/svdraw/svdotextpathdecomposition.cxx @@ -58,6 +58,7 @@ namespace sal_Int32 mnParagraph; SvxFont maFont; ::std::vector< double > maDblDXArray; // double DXArray, font size independent -> unit coordinate system + ::std::vector< sal_Bool > maKashidaArray; lang::Locale maLocale; bool mbRTL : 1; @@ -70,6 +71,7 @@ namespace mnTextLength(rInfo.mnTextLen), mnParagraph(rInfo.mnPara), maFont(rInfo.mrFont), + maKashidaArray(rInfo.mpKashidaArray.begin(), rInfo.mpKashidaArray.end()), maLocale(rInfo.mpLocale ? *rInfo.mpLocale : lang::Locale()), mbRTL(!rInfo.mrFont.IsVertical() && rInfo.IsRTL()) { @@ -107,6 +109,7 @@ namespace const SvxFont& getFont() const { return maFont; } bool isRTL() const { return mbRTL; } const ::std::vector< double >& getDoubleDXArray() const { return maDblDXArray; } + const ::std::vector< sal_Bool >& getKashidaArray() const { return maKashidaArray; } const lang::Locale& getLocale() const { return maLocale; } sal_Int32 getPortionIndex(sal_Int32 nIndex, sal_Int32 nLength) const @@ -497,6 +500,7 @@ namespace nPortionIndex, nNextGlyphLen, std::vector(aNewDXArray), + std::vector(pCandidate->getKashidaArray()), aCandidateFontAttribute, pCandidate->getLocale(), aRGBShadowColor) ); @@ -514,6 +518,7 @@ namespace nPortionIndex, nNextGlyphLen, std::move(aNewDXArray), + std::vector(pCandidate->getKashidaArray()), aCandidateFontAttribute, pCandidate->getLocale(), aRGBColor) ); |