Check line is empty or not before getting line of character
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / visual-model-impl.cpp
index 3e3f2d6..e359dc7 100755 (executable)
@@ -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,6 +347,11 @@ void VisualModel::SetShadowColor( const Vector4& shadowColor )
   mShadowColor = shadowColor;
 }
 
+void VisualModel::SetShadowBlurRadius( const float& shadowBlurRadius )
+{
+  mShadowBlurRadius = shadowBlurRadius;
+}
+
 void VisualModel::SetUnderlineColor( const Vector4& color )
 {
   mUnderlineColor = color;
@@ -365,7 +373,7 @@ void VisualModel::SetUnderlineHeight( float height )
   mUnderlineHeight = height;
 }
 
-void VisualModel::SetOutlineWidth( float width )
+void VisualModel::SetOutlineWidth( unsigned int width )
 {
   mOutlineWidth = width;
 }
@@ -385,6 +393,11 @@ const Vector4& VisualModel::GetShadowColor() const
   return mShadowColor;
 }
 
+const float& VisualModel::GetShadowBlurRadius() const
+{
+  return mShadowBlurRadius;
+}
+
 const Vector4& VisualModel::GetUnderlineColor() const
 {
   return mUnderlineColor;
@@ -405,7 +418,7 @@ float VisualModel::GetUnderlineHeight() const
   return mUnderlineHeight;
 }
 
-float VisualModel::GetOutlineWidth() const
+unsigned int VisualModel::GetOutlineWidth() const
 {
   return mOutlineWidth;
 }
@@ -439,7 +452,8 @@ VisualModel::VisualModel()
   mControlSize(),
   mShadowOffset(),
   mUnderlineHeight( 0.0f ),
-  mOutlineWidth( 0.0f ),
+  mOutlineWidth( 0u ),
+  mShadowBlurRadius( 0.0f ),
   mNaturalSize(),
   mLayoutSize(),
   mCachedLineIndex( 0u ),