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=afc9ed0165ef968926c22fa7ee87dca76a64e670;hp=7b6536dc883b0e6aa0250c155b6599ca4a599f80;hb=646440beeb663fc5efcccadeba73dd46016ed1b3;hpb=a1ccb5fc3bd382f209da837d5cecdee77cf01bc3 diff --git a/dali-toolkit/internal/text/text-model.cpp b/dali-toolkit/internal/text/text-model.cpp old mode 100755 new mode 100644 index 7b6536d..afc9ed0 --- a/dali-toolkit/internal/text/text-model.cpp +++ b/dali-toolkit/internal/text/text-model.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 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. @@ -18,18 +18,23 @@ // 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() ); + return ModelPtr(new Model()); } const Size& Model::GetControlSize() const @@ -57,6 +62,11 @@ VerticalAlignment::Type Model::GetVerticalAlignment() const return mVerticalAlignment; } +DevelText::VerticalLineAlignment::Type Model::GetVerticalLineAlignment() const +{ + return mVerticalLineAlignment; +} + bool Model::IsTextElideEnabled() const { return mElideEnabled; @@ -107,6 +117,21 @@ const ColorIndex* const Model::GetColorIndices() const return mVisualModel->mColorIndices.Begin(); } +const Vector4* const Model::GetBackgroundColors() const +{ + return mVisualModel->mBackgroundColors.Begin(); +} + +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; @@ -147,9 +172,9 @@ Length Model::GetNumberOfUnderlineRuns() const return mVisualModel->GetNumberOfUnderlineRuns(); } -void Model::GetUnderlineRuns( GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns ) const +void Model::GetUnderlineRuns(GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns) const { - mVisualModel->GetUnderlineRuns( underlineRuns, index, numberOfRuns ); + mVisualModel->GetUnderlineRuns(underlineRuns, index, numberOfRuns); } const Vector4& Model::GetOutlineColor() const @@ -157,24 +182,64 @@ const Vector4& Model::GetOutlineColor() const return mVisualModel->GetOutlineColor(); } -float Model::GetOutlineWidth() const +uint16_t Model::GetOutlineWidth() const { return mVisualModel->GetOutlineWidth(); } +const Vector4& Model::GetBackgroundColor() const +{ + return mVisualModel->GetBackgroundColor(); +} + +bool Model::IsBackgroundEnabled() const +{ + return mVisualModel->IsBackgroundEnabled(); +} + +bool Model::IsMarkupProcessorEnabled() const +{ + return mVisualModel->IsMarkupProcessorEnabled(); +} + +const GlyphInfo* Model::GetHyphens() const +{ + return mVisualModel->mHyphen.glyph.Begin(); +} + +const Length* Model::GetHyphenIndices() const +{ + return mVisualModel->mHyphen.index.Begin(); +} + +Length Model::GetHyphensCount() const +{ + return mVisualModel->mHyphen.glyph.Size(); +} + Model::Model() : mLogicalModel(), mVisualModel(), mScrollPosition(), mScrollPositionLast(), - mHorizontalAlignment( Text::HorizontalAlignment::BEGIN ), - mVerticalAlignment( Text::VerticalAlignment::TOP ), - mLineWrapMode( Text::LineWrap::WORD ), - mAlignmentOffset( 0.0f ), - mElideEnabled( false ) + mHorizontalAlignment(Text::HorizontalAlignment::BEGIN), + mVerticalAlignment(Text::VerticalAlignment::TOP), + mVerticalLineAlignment(DevelText::VerticalLineAlignment::TOP), + mLineWrapMode(Text::LineWrap::WORD), + mAlignmentOffset(0.0f), + mElideEnabled(false), + mIgnoreSpacesAfterText(true), + mMatchLayoutDirection(DevelText::MatchLayoutDirection::INHERIT) { mLogicalModel = LogicalModel::New(); - mVisualModel = VisualModel::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()