add support for background markup tag
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-model.cpp
old mode 100755 (executable)
new mode 100644 (file)
index cf6f35c..26a9be8
@@ -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.
 
 namespace Dali
 {
-
 namespace Toolkit
 {
-
 namespace Text
 {
-
 ModelPtr Model::New()
 {
-  return ModelPtr( new Model() );
+  return ModelPtr(new Model());
 }
 
 const Size& Model::GetControlSize() const
@@ -47,16 +44,21 @@ const Vector2& Model::GetScrollPosition() const
   return mScrollPosition;
 }
 
-Layout::HorizontalAlignment Model::GetHorizontalAlignment() const
+HorizontalAlignment::Type Model::GetHorizontalAlignment() const
 {
   return mHorizontalAlignment;
 }
 
-Layout::VerticalAlignment Model::GetVerticalAlignment() const
+VerticalAlignment::Type Model::GetVerticalAlignment() const
 {
   return mVerticalAlignment;
 }
 
+DevelText::VerticalLineAlignment::Type Model::GetVerticalLineAlignment() const
+{
+  return mVerticalLineAlignment;
+}
+
 bool Model::IsTextElideEnabled() const
 {
   return mElideEnabled;
@@ -107,6 +109,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->mBackgroundColorIndices.Count() > 0);
+}
+
 const Vector4& Model::GetDefaultColor() const
 {
   return mVisualModel->mTextColor;
@@ -122,6 +139,11 @@ const Vector4& Model::GetShadowColor() const
   return mVisualModel->mShadowColor;
 }
 
+const float& Model::GetShadowBlurRadius() const
+{
+  return mVisualModel->mShadowBlurRadius;
+}
+
 const Vector4& Model::GetUnderlineColor() const
 {
   return mVisualModel->GetUnderlineColor();
@@ -142,9 +164,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
@@ -152,24 +174,57 @@ 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( Layout::HORIZONTAL_ALIGN_BEGIN ),
-  mVerticalAlignment( Layout::VERTICAL_ALIGN_TOP ),
-  mLineWrapMode( Layout::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),
+  mMatchSystemLanguageDirection(false)
 {
   mLogicalModel = LogicalModel::New();
-  mVisualModel = VisualModel::New();
+  mVisualModel  = VisualModel::New();
 }
 
 Model::~Model()