/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
Length View::GetGlyphs( GlyphInfo* glyphs,
Vector2* glyphPositions,
+ float& minLineOffset,
GlyphIndex glyphIndex,
Length numberOfGlyphs ) const
{
// Add the alignment offset to the glyph's position.
+ minLineOffset = line->alignmentOffset;
float penY = line->ascender;
for( Length index = 0u; index < numberOfLaidOutGlyphs; ++index )
{
if( lineIndex < numberOfLines )
{
line = lineBuffer + lineIndex;
+ minLineOffset = std::min( minLineOffset, line->alignmentOffset );
lastGlyphIndexOfLine = line->glyphRun.glyphIndex + line->glyphRun.numberOfGlyphs - 1u;
if( lastLine.ellipsis )
{
+ if( ( 1u == numberOfLines ) &&
+ ( lastLine.ascender - lastLine.descender > mImpl->mVisualModel->mControlSize.height ) )
+ {
+ // Get the first glyph which is going to be replaced and the ellipsis glyph.
+ GlyphInfo& glyphInfo = *glyphs;
+ const GlyphInfo& ellipsisGlyph = mImpl->mFontClient.GetEllipsisGlyph( mImpl->mFontClient.GetPointSize( glyphInfo.fontId ) );
+
+ // Change the 'x' and 'y' position of the ellipsis glyph.
+ Vector2& position = *glyphPositions;
+ position.x = ellipsisGlyph.xBearing;
+ position.y = mImpl->mVisualModel->mControlSize.height - ellipsisGlyph.yBearing;
+
+ // Replace the glyph by the ellipsis glyph.
+ glyphInfo = ellipsisGlyph;
+
+ return 1u;
+ }
+
// firstPenX, penY and firstPenSet are used to position the ellipsis glyph if needed.
float firstPenX = 0.f; // Used if rtl text is elided.
float penY = 0.f;
return NULL;
}
+const Vector4* const View::GetBackgroundColors() const
+{
+ if( mImpl->mVisualModel )
+ {
+ return mImpl->mVisualModel->mBackgroundColors.Begin();
+ }
+
+ return nullptr;
+}
+
+const ColorIndex* const View::GetBackgroundColorIndices() const
+{
+ if( mImpl->mVisualModel )
+ {
+ return mImpl->mVisualModel->mBackgroundColorIndices.Begin();
+ }
+
+ return nullptr;
+}
+
const Vector4& View::GetTextColor() const
{
if( mImpl->mVisualModel )
{
if( mImpl->mVisualModel )
{
- return mImpl->mVisualModel->mUnderlineRuns.Count();
+ return mImpl->mVisualModel->GetNumberOfUnderlineRuns();
}
return 0u;
}
}
+const Vector4& View::GetOutlineColor() const
+{
+ if( mImpl->mVisualModel )
+ {
+ return mImpl->mVisualModel->GetOutlineColor();
+ }
+ return Vector4::ZERO;
+}
+
+uint16_t View::GetOutlineWidth() const
+{
+ if( mImpl->mVisualModel )
+ {
+ return mImpl->mVisualModel->GetOutlineWidth();
+ }
+ return 0u;
+}
+
} // namespace Text
} // namespace Toolkit