+DevelText::EllipsisPosition::Type View::GetEllipsisPosition() const
+{
+ DevelText::EllipsisPosition::Type ellipsisPosition = DevelText::EllipsisPosition::END;
+ if(mImpl->mVisualModel)
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+ ellipsisPosition = model.GetEllipsisPosition();
+ }
+
+ return ellipsisPosition;
+}
+
+bool View::IsTextElideEnabled() const
+{
+ bool isTextElideEnabled = false;
+
+ if(mImpl->mVisualModel)
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+ isTextElideEnabled = model.IsTextElideEnabled();
+ }
+
+ return isTextElideEnabled;
+}
+
+GlyphIndex View::GetStartIndexOfElidedGlyphs() const
+{
+ GlyphIndex startIndexOfElidedGlyphs = 0u;
+
+ if(mImpl->mVisualModel)
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+ startIndexOfElidedGlyphs = model.GetStartIndexOfElidedGlyphs();
+ }
+
+ return startIndexOfElidedGlyphs;
+}
+
+GlyphIndex View::GetEndIndexOfElidedGlyphs() const
+{
+ GlyphIndex endIndexOfElidedGlyphs = 0u;
+
+ if(mImpl->mVisualModel)
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+ endIndexOfElidedGlyphs = model.GetEndIndexOfElidedGlyphs();
+ }
+
+ return endIndexOfElidedGlyphs;
+}
+
+GlyphIndex View::GetFirstMiddleIndexOfElidedGlyphs() const
+{
+ GlyphIndex firstMiddleIndexOfElidedGlyphs = 0u;
+
+ if(mImpl->mVisualModel)
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+ firstMiddleIndexOfElidedGlyphs = model.GetFirstMiddleIndexOfElidedGlyphs();
+ }
+
+ return firstMiddleIndexOfElidedGlyphs;
+}
+
+GlyphIndex View::GetSecondMiddleIndexOfElidedGlyphs() const
+{
+ GlyphIndex secondMiddleIndexOfElidedGlyphs = 0u;
+
+ if(mImpl->mVisualModel)
+ {
+ const VisualModel& model = *mImpl->mVisualModel;
+ secondMiddleIndexOfElidedGlyphs = model.GetSecondMiddleIndexOfElidedGlyphs();
+ }
+
+ return secondMiddleIndexOfElidedGlyphs;
+}
+
+const Vector4& View::GetStrikethroughColor() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetStrikethroughColor() : Vector4::ZERO;
+}
+
+bool View::IsStrikethroughEnabled() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mVisualModel->IsStrikethroughEnabled() : false;
+}
+
+bool const View::IsMarkupStrikethroughSet() const
+{
+ return (GetNumberOfStrikethroughRuns() > 0u);
+}
+
+float View::GetStrikethroughHeight() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetStrikethroughHeight() : 0.0f;
+}
+
+Length View::GetNumberOfStrikethroughRuns() const
+{
+ if(mImpl->mVisualModel)
+ {
+ return mImpl->mVisualModel->GetNumberOfStrikethroughRuns();
+ }
+
+ return 0u;
+}
+
+void View::GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns,
+ StrikethroughRunIndex index,
+ Length numberOfRuns) const
+{
+ if(mImpl->mVisualModel)
+ {
+ mImpl->mVisualModel->GetStrikethroughRuns(strikethroughRuns,
+ index,
+ numberOfRuns);
+ }
+}
+
+Length View::GetNumberOfBoundedParagraphRuns() const
+{
+ if(mImpl->mLogicalModel)
+ {
+ return mImpl->mLogicalModel->GetNumberOfBoundedParagraphRuns();
+ }
+
+ return 0u;
+}
+
+const Vector<BoundedParagraphRun>& View::GetBoundedParagraphRuns() const
+{
+ return mImpl->mLogicalModel->GetBoundedParagraphRuns();
+}
+
+Length View::GetNumberOfCharacterSpacingGlyphRuns() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetNumberOfCharacterSpacingGlyphRuns() : 0u;
+}
+
+const Vector<CharacterSpacingGlyphRun>& View::GetCharacterSpacingGlyphRuns() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetCharacterSpacingGlyphRuns() : GetEmptyCharacterSpacingGlyphRuns();
+}
+
+const float View::GetCharacterSpacing() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetCharacterSpacing() : 0.f;
+}
+
+const Character* View::GetTextBuffer() const
+{
+ return (mImpl->mVisualModel) ? mImpl->mLogicalModel->mText.Begin() : nullptr;
+}
+
+const Vector<CharacterIndex>& View::GetGlyphsToCharacters() const
+{
+ return mImpl->mVisualModel->GetGlyphsToCharacters();
+}
+