Merge "Add a callback for navigation policy in web view." into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-model.cpp
index 42a5795..b202d69 100644 (file)
 // 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());
@@ -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;
@@ -189,6 +227,35 @@ 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(),
@@ -201,10 +268,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()