X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fvisual-model-impl.cpp;h=490bae3b82746f2c5bd9f08f32d7875464edb4a2;hp=9c57494235b332dd5aec1ea107eb7215de82ea69;hb=4bc73f2e78812b262f09830bb2b1d87034f34496;hpb=6d3a21eaeaae4edbc04b6e902b61439cdf029188 diff --git a/dali-toolkit/internal/text/visual-model-impl.cpp b/dali-toolkit/internal/text/visual-model-impl.cpp index 9c57494..490bae3 100644 --- a/dali-toolkit/internal/text/visual-model-impl.cpp +++ b/dali-toolkit/internal/text/visual-model-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -254,6 +254,12 @@ void VisualModel::GetNumberOfLines(GlyphIndex glyphIndex, } } +LineIndex VisualModel::GetLineOfGlyph( GlyphIndex glyphIndex ) +{ + const CharacterIndex characterIndex = *(mGlyphsToCharacters.Begin() + glyphIndex); + return GetLineOfCharacter(characterIndex); +} + void VisualModel::GetLinesOfGlyphRange(LineRun* lines, GlyphIndex glyphIndex, Length numberOfGlyphs) const @@ -305,13 +311,13 @@ LineIndex VisualModel::GetLineOfCharacter(CharacterIndex characterIndex) return index; } -void VisualModel::GetUnderlineRuns(GlyphRun* underlineRuns, - UnderlineRunIndex index, - Length numberOfRuns) const +void VisualModel::GetUnderlineRuns(UnderlinedGlyphRun* underlineRuns, + UnderlineRunIndex index, + Length numberOfRuns) const { memcpy(underlineRuns, mUnderlineRuns.Begin() + index, - numberOfRuns * sizeof(GlyphRun)); + numberOfRuns * sizeof(UnderlinedGlyphRun)); } void VisualModel::SetNaturalSize(const Vector2& size) @@ -380,6 +386,21 @@ void VisualModel::SetUnderlineHeight(float height) mUnderlineHeight = height; } +void VisualModel::SetUnderlineType(Text::Underline::Type type) +{ + mUnderlineType = type; +} + +void VisualModel::SetDashedUnderlineWidth(float width) +{ + mDashedUnderlineWidth = width; +} + +void VisualModel::SetDashedUnderlineGap(float gap) +{ + mDashedUnderlineGap = gap; +} + void VisualModel::SetOutlineWidth(uint16_t width) { mOutlineWidth = width; @@ -430,6 +451,26 @@ void VisualModel::SetSecondMiddleIndexOfElidedGlyphs(GlyphIndex secondMiddleInde mSecondMiddleIndexOfElidedGlyphs = secondMiddleIndexOfElidedGlyphs; } +void VisualModel::SetStrikethroughColor(const Vector4& color) +{ + mStrikethroughColor = color; +} + +void VisualModel::SetStrikethroughEnabled(bool enabled) +{ + mStrikethroughEnabled = enabled; +} + +void VisualModel::SetStrikethroughHeight(float height) +{ + mStrikethroughHeight = height; +} + +void VisualModel::SetCharacterSpacing(float characterSpacing) +{ + mCharacterSpacing = characterSpacing; +} + const Vector4& VisualModel::GetTextColor() const { return mTextColor; @@ -470,6 +511,21 @@ float VisualModel::GetUnderlineHeight() const return mUnderlineHeight; } +Text::Underline::Type VisualModel::GetUnderlineType() const +{ + return mUnderlineType; +} + +float VisualModel::GetDashedUnderlineWidth() const +{ + return mDashedUnderlineWidth; +} + +float VisualModel::GetDashedUnderlineGap() const +{ + return mDashedUnderlineGap; +} + uint16_t VisualModel::GetOutlineWidth() const { return mOutlineWidth; @@ -480,6 +536,11 @@ const Vector4& VisualModel::GetBackgroundColor() const return mBackgroundColor; } +const float VisualModel::GetCharacterSpacing() const +{ + return mCharacterSpacing; +} + bool VisualModel::IsBackgroundEnabled() const { return mBackgroundEnabled; @@ -525,11 +586,55 @@ Length VisualModel::GetNumberOfUnderlineRuns() const return mUnderlineRuns.Count(); } +const Vector4& VisualModel::GetStrikethroughColor() const +{ + return mStrikethroughColor; +} + +bool VisualModel::IsStrikethroughEnabled() const +{ + return mStrikethroughEnabled; +} + +float VisualModel::GetStrikethroughHeight() const +{ + return mStrikethroughHeight; +} + +void VisualModel::GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns, + StrikethroughRunIndex index, + Length numberOfRuns) const +{ + memcpy(strikethroughRuns, + mStrikethroughRuns.Begin() + index, + numberOfRuns * sizeof(StrikethroughGlyphRun)); +} + +Length VisualModel::GetNumberOfStrikethroughRuns() const +{ + return mStrikethroughRuns.Count(); +} + +Length VisualModel::GetNumberOfCharacterSpacingGlyphRuns() const +{ + return mCharacterSpacingRuns.Count(); +} + +const Vector& VisualModel::GetCharacterSpacingGlyphRuns() const +{ + return mCharacterSpacingRuns; +} + void VisualModel::ClearCaches() { mCachedLineIndex = 0u; } +const Vector& VisualModel::GetGlyphsToCharacters() const +{ + return mGlyphsToCharacters; +} + VisualModel::~VisualModel() { } @@ -547,9 +652,14 @@ VisualModel::VisualModel() mUnderlineColor(Color::BLACK), mOutlineColor(Color::WHITE), mBackgroundColor(Color::TRANSPARENT), + mStrikethroughColor(Color::BLACK), mControlSize(), mShadowOffset(), mUnderlineHeight(0.0f), + mStrikethroughHeight(0.0f), + mUnderlineType(Text::Underline::SOLID), + mDashedUnderlineWidth(2.0f), + mDashedUnderlineGap(1.0f), mShadowBlurRadius(0.0f), mOutlineWidth(0u), mNaturalSize(), @@ -564,7 +674,9 @@ VisualModel::VisualModel() mUnderlineEnabled(false), mUnderlineColorSet(false), mBackgroundEnabled(false), - mMarkupProcessorEnabled(false) + mMarkupProcessorEnabled(false), + mStrikethroughEnabled(false), + mCharacterSpacing(0.0f) { }