X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flayouts%2Flayout-engine.cpp;h=8d9f8f521ab92a4a8c1b426ddced2896109fefab;hb=aeef40d5dd70c7d878c7664986913ef2c6675a03;hp=89b6f5b9542d2a99f4751a49b7336331d43c4050;hpb=11b00660475d484adc5bcf21583eeaebc5a2f57b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/layouts/layout-engine.cpp b/dali-toolkit/internal/text/layouts/layout-engine.cpp index 89b6f5b..8d9f8f5 100644 --- a/dali-toolkit/internal/text/layouts/layout-engine.cpp +++ b/dali-toolkit/internal/text/layouts/layout-engine.cpp @@ -25,6 +25,7 @@ // INTERNAL INCLUDES #include +#include #include #include @@ -47,6 +48,7 @@ namespace const float MAX_FLOAT = std::numeric_limits::max(); const bool RTL = true; const float CURSOR_WIDTH = 1.f; +const float LINE_SPACING= 0.f; } //namespace @@ -104,6 +106,7 @@ struct LayoutEngine::Impl mHorizontalAlignment( LayoutEngine::HORIZONTAL_ALIGN_BEGIN ), mVerticalAlignment( LayoutEngine::VERTICAL_ALIGN_TOP ), mCursorWidth( CURSOR_WIDTH ), + mDefaultLineSpacing( LINE_SPACING ), mEllipsisEnabled( false ) { } @@ -464,34 +467,6 @@ struct LayoutEngine::Impl DALI_LOG_INFO( gLogFilter, Debug::Verbose, "<--GetLineLayoutForBox\n" ); } - /** - * @brief Calculates the vertical offset to add to the new laid-out glyphs. - * - * @pre @p lineIndex must be between 0 and the number of lines (both inclusive). - * - * @param[in] lines The previously laid-out lines. - * @param[in] lineIndex Index to the line where the new laid-out lines are inserted. - * - * @return The vertical offset of the lines starting from the beginning to the line @p lineIndex. - */ - float SetParagraphOffset( const Vector& lines, - LineIndex lineIndex ) - { - float offset = 0.f; - - for( Vector::ConstIterator it = lines.Begin(), - endIt = lines.Begin() + lineIndex; - it != endIt; - ++it ) - { - const LineRun& line = *it; - - offset += line.ascender + -line.descender; - } - - return offset; - } - void SetGlyphPositions( const GlyphInfo* const glyphsBuffer, Length numberOfGlyphs, Vector2* glyphPositionsBuffer ) @@ -852,7 +827,7 @@ struct LayoutEngine::Impl Vector newLines; // Estimate the number of lines. - Length linesCapacity = layoutParameters.estimatedNumberOfLines; + Length linesCapacity = std::max( 1u, layoutParameters.estimatedNumberOfLines ); Length numberOfLines = 0u; if( updateCurrentBuffer ) @@ -871,8 +846,8 @@ struct LayoutEngine::Impl linesBuffer = lines.Begin(); } - float penY = SetParagraphOffset( lines, - layoutParameters.startLineIndex ); + float penY = CalculateLineOffset( lines, + layoutParameters.startLineIndex ); for( GlyphIndex index = layoutParameters.startGlyphIndex; index < lastGlyphPlusOne; ) { @@ -1213,6 +1188,7 @@ struct LayoutEngine::Impl LayoutEngine::HorizontalAlignment mHorizontalAlignment; LayoutEngine::VerticalAlignment mVerticalAlignment; float mCursorWidth; + float mDefaultLineSpacing; IntrusivePtr mMetrics; @@ -1242,11 +1218,13 @@ void LayoutEngine::SetLayout( Layout layout ) LayoutEngine::Layout LayoutEngine::GetLayout() const { + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "GetLayout[%d]\n", mImpl->mLayout); return mImpl->mLayout; } void LayoutEngine::SetTextEllipsisEnabled( bool enabled ) { + DALI_LOG_INFO( gLogFilter, Debug::General, "-->LayoutEngine::SetTextEllipsisEnabled[%s]\n", (enabled)?"true":"false" ); mImpl->mEllipsisEnabled = enabled; } @@ -1318,6 +1296,16 @@ void LayoutEngine::Align( const Size& size, lines ); } +void LayoutEngine::SetDefaultLineSpacing( float lineSpacing ) +{ + mImpl->mDefaultLineSpacing = lineSpacing; +} + +float LayoutEngine::GetDefaultLineSpacing() const +{ + return mImpl->mDefaultLineSpacing; +} + } // namespace Text } // namespace Toolkit