X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-model.cpp;h=ba6dbcfc55a1de2f3aa96195e893b77ae91feecd;hp=948044e63167083dc3262bc0ee0b954bfe9344ff;hb=020b07151378db83ab8e12eb3e2d51db0ed69996;hpb=6ea2f17f49c9c694a24d951160a7389c844d7889 diff --git a/dali-toolkit/internal/text/text-model.cpp b/dali-toolkit/internal/text/text-model.cpp index 948044e..ba6dbcf 100644 --- a/dali-toolkit/internal/text/text-model.cpp +++ b/dali-toolkit/internal/text/text-model.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -18,12 +18,20 @@ // CLASS HEADER #include +// EXTERNAL INCLUDES +#include + namespace Dali { namespace Toolkit { namespace Text { +namespace +{ +const char* DALI_ENV_MATCH_SYSTEM_LANGUAGE_DIRECTION("DALI_MATCH_SYSTEM_LANGUAGE_DIRECTION"); +} + ModelPtr Model::New() { return ModelPtr(new Model()); @@ -59,6 +67,11 @@ DevelText::VerticalLineAlignment::Type Model::GetVerticalLineAlignment() const return mVerticalLineAlignment; } +DevelText::EllipsisPosition::Type Model::GetEllipsisPosition() const +{ + return mEllipsisPosition; +} + bool Model::IsTextElideEnabled() const { return mElideEnabled; @@ -89,6 +102,26 @@ Length Model::GetNumberOfGlyphs() const return mVisualModel->mGlyphs.Count(); } +GlyphIndex Model::GetStartIndexOfElidedGlyphs() const +{ + return mVisualModel->GetStartIndexOfElidedGlyphs(); +} + +GlyphIndex Model::GetEndIndexOfElidedGlyphs() const +{ + return mVisualModel->GetEndIndexOfElidedGlyphs(); +} + +GlyphIndex Model::GetFirstMiddleIndexOfElidedGlyphs() const +{ + return mVisualModel->GetFirstMiddleIndexOfElidedGlyphs(); +} + +GlyphIndex Model::GetSecondMiddleIndexOfElidedGlyphs() const +{ + return mVisualModel->GetSecondMiddleIndexOfElidedGlyphs(); +} + const GlyphInfo* const Model::GetGlyphs() const { return mVisualModel->mGlyphs.Begin(); @@ -119,6 +152,11 @@ const ColorIndex* const Model::GetBackgroundColorIndices() const return mVisualModel->mBackgroundColorIndices.Begin(); } +bool const Model::IsMarkupBackgroundColorSet() const +{ + return (mVisualModel->mBackgroundColors.Count() > 0); +} + const Vector4& Model::GetDefaultColor() const { return mVisualModel->mTextColor; @@ -149,17 +187,37 @@ bool Model::IsUnderlineEnabled() const return mVisualModel->IsUnderlineEnabled(); } +bool const Model::IsMarkupUnderlineSet() const +{ + return (mVisualModel->mUnderlineRuns.Count() > 0u); +} + float Model::GetUnderlineHeight() const { return mVisualModel->GetUnderlineHeight(); } +Text::Underline::Type Model::GetUnderlineType() const +{ + return mVisualModel->GetUnderlineType(); +} + +float Model::GetDashedUnderlineWidth() const +{ + return mVisualModel->GetDashedUnderlineWidth(); +} + +float Model::GetDashedUnderlineGap() const +{ + return mVisualModel->GetDashedUnderlineGap(); +} + Length Model::GetNumberOfUnderlineRuns() const { return mVisualModel->GetNumberOfUnderlineRuns(); } -void Model::GetUnderlineRuns(GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns) const +void Model::GetUnderlineRuns(UnderlinedGlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns) const { mVisualModel->GetUnderlineRuns(underlineRuns, index, numberOfRuns); } @@ -203,6 +261,70 @@ Length Model::GetHyphensCount() const { return mVisualModel->mHyphen.glyph.Size(); } +const Vector4& Model::GetStrikethroughColor() const +{ + return mVisualModel->GetStrikethroughColor(); +} + +bool Model::IsStrikethroughEnabled() const +{ + return mVisualModel->IsStrikethroughEnabled(); +} + +bool const Model::IsMarkupStrikethroughSet() const +{ + return (mVisualModel->mStrikethroughRuns.Count() > 0u); +} + +float Model::GetStrikethroughHeight() const +{ + return mVisualModel->GetStrikethroughHeight(); +} + +Length Model::GetNumberOfStrikethroughRuns() const +{ + return mVisualModel->GetNumberOfStrikethroughRuns(); +} + +Length Model::GetNumberOfBoundedParagraphRuns() const +{ + return mLogicalModel->GetNumberOfBoundedParagraphRuns(); +} + +const Vector& Model::GetBoundedParagraphRuns() const +{ + return mLogicalModel->GetBoundedParagraphRuns(); +} + +void Model::GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns, StrikethroughRunIndex index, Length numberOfRuns) const +{ + mVisualModel->GetStrikethroughRuns(strikethroughRuns, index, numberOfRuns); +} + +Length Model::GetNumberOfCharacterSpacingGlyphRuns() const +{ + return mVisualModel->GetNumberOfCharacterSpacingGlyphRuns(); +} + +const Vector& Model::GetCharacterSpacingGlyphRuns() const +{ + return mVisualModel->GetCharacterSpacingGlyphRuns(); +} + +const float Model::GetCharacterSpacing() const +{ + return mVisualModel->GetCharacterSpacing(); +} + +const Character* Model::GetTextBuffer() const +{ + return mLogicalModel->mText.Begin(); +} + +const Vector& Model::GetGlyphsToCharacters() const +{ + return mVisualModel->mGlyphsToCharacters; +} Model::Model() : mLogicalModel(), @@ -216,10 +338,18 @@ Model::Model() mAlignmentOffset(0.0f), mElideEnabled(false), mIgnoreSpacesAfterText(true), - mMatchSystemLanguageDirection(false) + mMatchLayoutDirection(DevelText::MatchLayoutDirection::INHERIT), + mEllipsisPosition(DevelText::EllipsisPosition::END) { mLogicalModel = LogicalModel::New(); mVisualModel = VisualModel::New(); + + // Check environment variable for DALI_MATCH_SYSTEM_LANGUAGE_DIRECTION + auto match = Dali::EnvironmentVariable::GetEnvironmentVariable(DALI_ENV_MATCH_SYSTEM_LANGUAGE_DIRECTION); + if(match && (std::atoi(match) == 0)) + { + mMatchLayoutDirection = DevelText::MatchLayoutDirection::CONTENTS; + } } Model::~Model()