X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-view.cpp;h=ea074fa58c4111914c59c3d25d65d024d0d70620;hp=34c3f3259842715367b14cfe3274c45b7d4ed7f1;hb=522fdef5220890d655c8bb777b15574667a931b6;hpb=4d0611f4911028b53905712013e1034d42531e5f diff --git a/dali-toolkit/internal/text/text-view.cpp b/dali-toolkit/internal/text/text-view.cpp index 34c3f32..ea074fa 100644 --- a/dali-toolkit/internal/text/text-view.cpp +++ b/dali-toolkit/internal/text/text-view.cpp @@ -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, @@ -76,7 +103,7 @@ Length View::GetGlyphs( GlyphInfo* glyphs, // Otherwise use the given number of glyphs. if( lastLine.ellipsis ) { - numberOfLaidOutGlyphs = lastLine.glyphIndex + lastLine.numberOfGlyphs; + numberOfLaidOutGlyphs = lastLine.glyphRun.glyphIndex + lastLine.glyphRun.numberOfGlyphs; } else { @@ -114,7 +141,7 @@ Length View::GetGlyphs( GlyphInfo* glyphs, LineRun* line = lineBuffer + lineIndex; // Index of the last glyph of the line. - GlyphIndex lastGlyphIndexOfLine = line->glyphIndex + line->numberOfGlyphs - 1u; + GlyphIndex lastGlyphIndexOfLine = line->glyphRun.glyphIndex + line->glyphRun.numberOfGlyphs - 1u; // Add the alignment offset to the glyph's position. for( Length index = 0u; index < numberOfLaidOutGlyphs; ++index ) @@ -129,7 +156,7 @@ Length View::GetGlyphs( GlyphInfo* glyphs, if( lineIndex < numberOfLines ) { line = lineBuffer + lineIndex; - lastGlyphIndexOfLine = line->glyphIndex + line->numberOfGlyphs - 1u; + lastGlyphIndexOfLine = line->glyphRun.glyphIndex + line->glyphRun.numberOfGlyphs - 1u; } } } @@ -238,79 +265,78 @@ 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 +Length View::GetNumberOfUnderlineRuns() const { if( mImpl->mVisualModel ) { - VisualModel& model = *mImpl->mVisualModel; - - const Length glyphCount = model.mGlyphs.Count(); - const Length positionCount = model.mGlyphPositions.Count(); + return mImpl->mVisualModel->mUnderlineRuns.Count(); + } - DALI_ASSERT_DEBUG( positionCount <= glyphCount && "Invalid glyph positions in Model" ); + return 0u; +} - return (positionCount < glyphCount) ? positionCount : glyphCount; +void View::GetUnderlineRuns( GlyphRun* underlineRuns, + UnderlineRunIndex index, + Length numberOfRuns ) const +{ + if( mImpl->mVisualModel ) + { + mImpl->mVisualModel->GetUnderlineRuns( underlineRuns, + index, + numberOfRuns ); } - - return 0; } } // namespace Text