/*
- * 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.
}
}
+LineIndex VisualModel::GetLineOfGlyph( GlyphIndex glyphIndex )
+{
+ const CharacterIndex characterIndex = *(mGlyphsToCharacters.Begin() + glyphIndex);
+ return GetLineOfCharacter(characterIndex);
+}
+
void VisualModel::GetLinesOfGlyphRange(LineRun* lines,
GlyphIndex glyphIndex,
Length numberOfGlyphs) const
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)
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;
mStrikethroughHeight = height;
}
+void VisualModel::SetCharacterSpacing(float characterSpacing)
+{
+ mCharacterSpacing = characterSpacing;
+}
+
const Vector4& VisualModel::GetTextColor() const
{
return mTextColor;
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;
return mBackgroundColor;
}
+const float VisualModel::GetCharacterSpacing() const
+{
+ return mCharacterSpacing;
+}
+
bool VisualModel::IsBackgroundEnabled() const
{
return mBackgroundEnabled;
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<CharacterSpacingGlyphRun>& VisualModel::GetCharacterSpacingGlyphRuns() const
+{
+ return mCharacterSpacingRuns;
+}
+
void VisualModel::ClearCaches()
{
mCachedLineIndex = 0u;
}
+const Vector<CharacterIndex>& VisualModel::GetGlyphsToCharacters() const
+{
+ return mGlyphsToCharacters;
+}
+
VisualModel::~VisualModel()
{
}
mShadowOffset(),
mUnderlineHeight(0.0f),
mStrikethroughHeight(0.0f),
+ mUnderlineType(Text::Underline::SOLID),
+ mDashedUnderlineWidth(2.0f),
+ mDashedUnderlineGap(1.0f),
mShadowBlurRadius(0.0f),
mOutlineWidth(0u),
mNaturalSize(),
mUnderlineColorSet(false),
mBackgroundEnabled(false),
mMarkupProcessorEnabled(false),
- mStrikethroughEnabled(false)
+ mStrikethroughEnabled(false),
+ mCharacterSpacing(0.0f)
{
}