X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Ftext%2Ftext-utils-devel.cpp;h=e4733c173e8602405cd4de85e1517c5abf298132;hp=e5ad92571454dda2f06e67d6b6c4509cf33dffb4;hb=6184d770eee0370ba8d61c1c689d6bfc583d8aac;hpb=37a6580a8a0c9c449947872c5aa62daab57456a5 diff --git a/dali-toolkit/devel-api/text/text-utils-devel.cpp b/dali-toolkit/devel-api/text/text-utils-devel.cpp old mode 100755 new mode 100644 index e5ad925..e4733c1 --- a/dali-toolkit/devel-api/text/text-utils-devel.cpp +++ b/dali-toolkit/devel-api/text/text-utils-devel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -172,7 +172,10 @@ void ShapeTextPreprocess(const RendererParameters& textParameters, TextAbstracti MarkupProcessData markupProcessData(colorRuns, fontDescriptionRuns, - textModel->mLogicalModel->mEmbeddedItems); + textModel->mLogicalModel->mEmbeddedItems, + textModel->mLogicalModel->mAnchors, + textModel->mLogicalModel->mUnderlinedCharacterRuns, + textModel->mLogicalModel->mBackgroundColorRuns); if(textParameters.markupEnabled) { @@ -825,7 +828,7 @@ void Ellipsis(const RendererParameters& textParameters, TextAbstraction::TextRen { Length finalNumberOfGlyphs = 0u; - if((line.ascender - line.descender) > textLayoutArea.height) + if((GetLineHeight(line)) > textLayoutArea.height) { // The height of the line is bigger than the height of the text area. // Show the ellipsis glyph even if it doesn't fit in the text area. @@ -975,6 +978,7 @@ Size LayoutText(const RendererParameters& textParameters, TextAbstraction::TextR const bool isTextMirrored = internalDataModel.isTextMirrored; const Vector& mirroredUtf32Characters = internalDataModel.mirroredUtf32Characters; const Length numberOfCharacters = internalDataModel.numberOfCharacters; + const auto ellipsisPosition = textModel->mEllipsisPosition; Layout::Type layout = Layout::SINGLELINE; @@ -1013,12 +1017,11 @@ Size LayoutText(const RendererParameters& textParameters, TextAbstraction::TextR // Set the layout parameters. Size textLayoutArea = Size(static_cast(textParameters.textWidth), - static_cast(textParameters.textHeight)); + static_cast(textParameters.textHeight)); // padding - Extents padding = textParameters.padding; - internalDataModel.textLayoutArea = Size(textLayoutArea.x - ( padding.start + padding.end ), textLayoutArea.y - ( padding.top + padding.bottom ) ); - + Extents padding = textParameters.padding; + internalDataModel.textLayoutArea = Size(textLayoutArea.x - (padding.start + padding.end), textLayoutArea.y - (padding.top + padding.bottom)); if(isCircularTextLayout) { @@ -1029,9 +1032,8 @@ Size LayoutText(const RendererParameters& textParameters, TextAbstraction::TextR // Resize the vector of positions to have the same size than the vector of glyphs. rendererParameters.positions.Resize(numberOfGlyphs); - textModel->mLineWrapMode = LineWrap::WORD; - textModel->mIgnoreSpacesAfterText = false; - textModel->mMatchSystemLanguageDirection = false; + textModel->mLineWrapMode = Text::LineWrap::WORD; + textModel->mIgnoreSpacesAfterText = false; Text::Layout::Parameters layoutParameters(internalDataModel.textLayoutArea, textModel); @@ -1052,7 +1054,8 @@ Size LayoutText(const RendererParameters& textParameters, TextAbstraction::TextR layoutEngine.LayoutText(layoutParameters, newLayoutSize, textParameters.ellipsisEnabled, - isAutoScrollEnabled); + isAutoScrollEnabled, + ellipsisPosition); return newLayoutSize; } @@ -1385,7 +1388,8 @@ void UpdateBuffer(Devel::PixelBuffer src, Devel::PixelBuffer dst, unsigned int x } const unsigned int bytesPerPixel = Dali::Pixel::GetBytesPerPixel(pixelFormat); - if(bytesPerPixel == 0u || bytesPerPixel == 12u || bytesPerPixel == 24u) + // Ignore when pixelFormat is invalid or contain float + if(bytesPerPixel == 0u || bytesPerPixel == 6u || bytesPerPixel == 12u) { return; } @@ -1521,7 +1525,7 @@ Dali::Property::Array RenderForLastIndex(RendererParameters& textParameters) const LineRun& line = *(lines.Begin() + index); numberOfCharacters += line.characterRun.numberOfCharacters; - lineOffset = lineSize > 0.f ? lineSize : (line.ascender + -line.descender); + lineOffset = lineSize > 0.f ? lineSize : GetLineHeight(line); penY += lineOffset; if((penY + lineOffset) > boundingBox) {