Merge "Stop setting crazy Z value with controls (at the moment depth is ignored by...
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-view.cpp
index 414fffa..4bee1c2 100644 (file)
@@ -55,6 +55,33 @@ void View::SetVisualModel( VisualModelPtr visualModel )
   mImpl->mVisualModel = visualModel;
 }
 
+const Vector2& View::GetControlSize() const
+{
+  if ( mImpl->mVisualModel )
+  {
+    return mImpl->mVisualModel->mControlSize;
+  }
+
+  return Vector2::ZERO;
+}
+
+Length View::GetNumberOfGlyphs() const
+{
+  if( mImpl->mVisualModel )
+  {
+    const VisualModel& model = *mImpl->mVisualModel;
+
+    const Length glyphCount = model.mGlyphs.Count();
+    const Length positionCount = model.mGlyphPositions.Count();
+
+    DALI_ASSERT_DEBUG( positionCount <= glyphCount && "Invalid glyph positions in Model" );
+
+    return (positionCount < glyphCount) ? positionCount : glyphCount;
+  }
+
+  return 0;
+}
+
 Length View::GetGlyphs( GlyphInfo* glyphs,
                         Vector2* glyphPositions,
                         GlyphIndex glyphIndex,
@@ -67,7 +94,7 @@ Length View::GetGlyphs( GlyphInfo* glyphs,
     // If ellipsis is enabled, the number of glyphs the layout engine has laid out may be less than 'numberOfGlyphs'.
     // Check the last laid out line to know if the layout engine elided some text.
 
-    const Length numberOfLines = mImpl->mVisualModel->GetNumberOfLines();
+    const Length numberOfLines = mImpl->mVisualModel->mLines.Count();
     if( numberOfLines > 0u )
     {
       const LineRun& lastLine = *( mImpl->mVisualModel->mLines.Begin() + ( numberOfLines - 1u ) );
@@ -193,7 +220,7 @@ Length View::GetGlyphs( GlyphInfo* glyphs,
             {
               GlyphInfo& glyphInfo = *( glyphs + index );
               Vector2& position = *( glyphPositions + index );
-              position.x -= glyphInfo.xBearing;
+              position.x -= ( 0.f > glyphInfo.xBearing ) ? glyphInfo.xBearing : 0.f;
 
               // Replace the glyph by the ellipsis glyph.
               glyphInfo = ellipsisGlyph;
@@ -238,80 +265,58 @@ Length View::GetGlyphs( GlyphInfo* glyphs,
 
 const Vector4& View::GetTextColor() const
 {
-  if ( mImpl->mVisualModel )
+  if( mImpl->mVisualModel )
   {
-    VisualModel& model = *mImpl->mVisualModel;
-    return model.GetTextColor();
+    return mImpl->mVisualModel->GetTextColor();
   }
   return Vector4::ZERO;
 }
 
 const Vector2& View::GetShadowOffset() const
 {
-  if ( mImpl->mVisualModel )
+  if( mImpl->mVisualModel )
   {
-    VisualModel& model = *mImpl->mVisualModel;
-    return model.GetShadowOffset();
+    return mImpl->mVisualModel->GetShadowOffset();
   }
   return Vector2::ZERO;
 }
 
 const Vector4& View::GetShadowColor() const
 {
-  if ( mImpl->mVisualModel )
+  if( mImpl->mVisualModel )
   {
-    VisualModel& model = *mImpl->mVisualModel;
-    return model.GetShadowColor();
+    return mImpl->mVisualModel->GetShadowColor();
   }
   return Vector4::ZERO;
 }
 
 const Vector4& View::GetUnderlineColor() const
 {
-  if ( mImpl->mVisualModel )
+  if( mImpl->mVisualModel )
   {
-    VisualModel& model = *mImpl->mVisualModel;
-    return model.GetUnderlineColor();
+    return mImpl->mVisualModel->GetUnderlineColor();
   }
   return Vector4::ZERO;
 }
 
 bool View::IsUnderlineEnabled() const
 {
-  if ( mImpl->mVisualModel )
+  if( mImpl->mVisualModel )
   {
-    VisualModel& model = *mImpl->mVisualModel;
-    return model.IsUnderlineEnabled();
+    return mImpl->mVisualModel->IsUnderlineEnabled();
   }
   return false;
 }
 
 float View::GetUnderlineHeight() const
 {
-  if ( mImpl->mVisualModel )
+  if( mImpl->mVisualModel )
   {
-    VisualModel& model = *mImpl->mVisualModel;
-    return model.GetUnderlineHeight();
+    return mImpl->mVisualModel->GetUnderlineHeight();
   }
   return 0.0f;
 }
 
-Length View::GetNumberOfGlyphs() const
-{
-  if( mImpl->mVisualModel )
-  {
-    VisualModel& model = *mImpl->mVisualModel;
-
-    Length glyphCount = model.GetNumberOfGlyphs();
-    Length positionCount = model.GetNumberOfGlyphPositions();
-
-    DALI_ASSERT_DEBUG( positionCount <= glyphCount && "Invalid glyph positions in Model" );
-
-    return (positionCount < glyphCount) ? positionCount : glyphCount;
-  }
-
-  return 0;
-}
 
 } // namespace Text