Dali-Text: Keyboard Shortcuts
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / visual-model-impl.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 1b114c4..6a06e58
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
@@ -264,18 +264,21 @@ void VisualModel::GetLinesOfGlyphRange( LineRun* lines,
 
 LineIndex VisualModel::GetLineOfCharacter( CharacterIndex characterIndex )
 {
-  // 1) Check first in the cached line.
+  // 1) Check line is empty or not.
+  if( mLines.Empty() )
+  {
+    return 0u;
+  }
 
+  // 2) Check in the cached line.
   const LineRun& lineRun = *( mLines.Begin() + mCachedLineIndex );
-
   if( ( lineRun.characterRun.characterIndex <= characterIndex ) &&
       ( characterIndex < lineRun.characterRun.characterIndex + lineRun.characterRun.numberOfCharacters ) )
   {
     return mCachedLineIndex;
   }
 
-  // 2) Is not in the cached line. Check in the other lines.
-
+  // 3) Is not in the cached line. Check in the other lines.
   LineIndex index = characterIndex < lineRun.characterRun.characterIndex ? 0u : mCachedLineIndex + 1u;
 
   for( Vector<LineRun>::ConstIterator it = mLines.Begin() + index,
@@ -344,12 +347,22 @@ void VisualModel::SetShadowColor( const Vector4& shadowColor )
   mShadowColor = shadowColor;
 }
 
+void VisualModel::SetShadowBlurRadius( const float& shadowBlurRadius )
+{
+  mShadowBlurRadius = shadowBlurRadius;
+}
+
 void VisualModel::SetUnderlineColor( const Vector4& color )
 {
   mUnderlineColor = color;
   mUnderlineColorSet = true;
 }
 
+void VisualModel::SetOutlineColor( const Vector4& color )
+{
+  mOutlineColor = color;
+}
+
 void VisualModel::SetUnderlineEnabled( bool enabled )
 {
   mUnderlineEnabled = enabled;
@@ -360,6 +373,21 @@ void VisualModel::SetUnderlineHeight( float height )
   mUnderlineHeight = height;
 }
 
+void VisualModel::SetOutlineWidth( uint16_t width )
+{
+  mOutlineWidth = width;
+}
+
+void VisualModel::SetBackgroundColor( const Vector4& color )
+{
+  mBackgroundColor = color;
+}
+
+void VisualModel::SetBackgroundEnabled( bool enabled )
+{
+  mBackgroundEnabled = enabled;
+}
+
 const Vector4& VisualModel::GetTextColor() const
 {
   return mTextColor;
@@ -375,11 +403,21 @@ const Vector4& VisualModel::GetShadowColor() const
   return mShadowColor;
 }
 
+const float& VisualModel::GetShadowBlurRadius() const
+{
+  return mShadowBlurRadius;
+}
+
 const Vector4& VisualModel::GetUnderlineColor() const
 {
   return mUnderlineColor;
 }
 
+const Vector4& VisualModel::GetOutlineColor() const
+{
+  return mOutlineColor;
+}
+
 bool VisualModel::IsUnderlineEnabled() const
 {
   return mUnderlineEnabled;
@@ -390,6 +428,21 @@ float VisualModel::GetUnderlineHeight() const
   return mUnderlineHeight;
 }
 
+uint16_t VisualModel::GetOutlineWidth() const
+{
+  return mOutlineWidth;
+}
+
+const Vector4& VisualModel::GetBackgroundColor() const
+{
+  return mBackgroundColor;
+}
+
+bool VisualModel::IsBackgroundEnabled() const
+{
+  return mBackgroundEnabled;
+}
+
 Length VisualModel::GetNumberOfUnderlineRuns() const
 {
   return mUnderlineRuns.Count();
@@ -415,14 +468,19 @@ VisualModel::VisualModel()
   mTextColor( Color::BLACK ),
   mShadowColor( Color::BLACK ),
   mUnderlineColor( Color::BLACK ),
+  mOutlineColor( Color::WHITE ),
+  mBackgroundColor( Color::TRANSPARENT ),
   mControlSize(),
   mShadowOffset(),
   mUnderlineHeight( 0.0f ),
+  mShadowBlurRadius( 0.0f ),
+  mOutlineWidth( 0u ),
   mNaturalSize(),
   mLayoutSize(),
   mCachedLineIndex( 0u ),
   mUnderlineEnabled( false ),
-  mUnderlineColorSet( false )
+  mUnderlineColorSet( false ),
+  mBackgroundEnabled( false )
 {
 }