Merge "Forced all ControlWrapper instances to ignore styling" into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / visual-model-impl.cpp
index e138e3c..6c4ff9b 100644 (file)
@@ -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.
@@ -380,6 +380,21 @@ void VisualModel::SetUnderlineHeight(float height)
   mUnderlineHeight = height;
 }
 
+void VisualModel::SetUnderlineType(Text::Underline::Type type)
+{
+  mUnderlineType = type;
+}
+
+void VisualModel::SetDashedUnderlineWidth(float width)
+{
+  mDashedUnderlineWidth = width;
+}
+
+void VisualModel::SetDashedUnderlineGap(float gap)
+{
+  mDashedUnderlineGap = gap;
+}
+
 void VisualModel::SetOutlineWidth(uint16_t width)
 {
   mOutlineWidth = width;
@@ -485,6 +500,21 @@ float VisualModel::GetUnderlineHeight() const
   return mUnderlineHeight;
 }
 
+Text::Underline::Type VisualModel::GetUnderlineType() const
+{
+  return mUnderlineType;
+}
+
+float VisualModel::GetDashedUnderlineWidth() const
+{
+  return mDashedUnderlineWidth;
+}
+
+float VisualModel::GetDashedUnderlineGap() const
+{
+  return mDashedUnderlineGap;
+}
+
 uint16_t VisualModel::GetOutlineWidth() const
 {
   return mOutlineWidth;
@@ -555,6 +585,20 @@ float VisualModel::GetStrikethroughHeight() const
   return mStrikethroughHeight;
 }
 
+void VisualModel::GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns,
+                                       StrikethroughRunIndex  index,
+                                       Length                 numberOfRuns) const
+{
+  memcpy(strikethroughRuns,
+         mStrikethroughRuns.Begin() + index,
+         numberOfRuns * sizeof(StrikethroughGlyphRun));
+}
+
+Length VisualModel::GetNumberOfStrikethroughRuns() const
+{
+  return mStrikethroughRuns.Count();
+}
+
 void VisualModel::ClearCaches()
 {
   mCachedLineIndex = 0u;
@@ -582,6 +626,9 @@ VisualModel::VisualModel()
   mShadowOffset(),
   mUnderlineHeight(0.0f),
   mStrikethroughHeight(0.0f),
+  mUnderlineType(Text::Underline::SOLID),
+  mDashedUnderlineWidth(2.0f),
+  mDashedUnderlineGap(1.0f),
   mShadowBlurRadius(0.0f),
   mOutlineWidth(0u),
   mNaturalSize(),