// CLASS HEADER
#include <dali-toolkit/internal/text/text-model.h>
+// EXTERNAL INCLUDES
+#include <dali/devel-api/adaptor-framework/environment-variable.h>
+
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 mVerticalLineAlignment;
}
+DevelText::EllipsisPosition::Type Model::GetEllipsisPosition() const
+{
+ return mEllipsisPosition;
+}
+
bool Model::IsTextElideEnabled() const
{
return mElideEnabled;
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();
return mVisualModel->mBackgroundColorIndices.Begin();
}
+bool const Model::IsMarkupBackgroundColorSet() const
+{
+ return (mVisualModel->mBackgroundColors.Count() > 0);
+}
+
const Vector4& Model::GetDefaultColor() const
{
return mVisualModel->mTextColor;
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();
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();
+}
+const Vector4& Model::GetStrikethroughColor() const
+{
+ return mVisualModel->GetStrikethroughColor();
+}
+
+bool Model::IsStrikethroughEnabled() const
+{
+ return mVisualModel->IsStrikethroughEnabled();
+}
+
+float Model::GetStrikethroughHeight() const
+{
+ return mVisualModel->GetStrikethroughHeight();
+}
+
Model::Model()
: mLogicalModel(),
mVisualModel(),
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()