projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Multiple text background color support for left-to-right text only in TextField
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
text
/
visual-model-impl.cpp
diff --git
a/dali-toolkit/internal/text/visual-model-impl.cpp
b/dali-toolkit/internal/text/visual-model-impl.cpp
index
9caa523
..
3b1f5b7
100755
(executable)
--- a/
dali-toolkit/internal/text/visual-model-impl.cpp
+++ b/
dali-toolkit/internal/text/visual-model-impl.cpp
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 201
7
Samsung Electronics Co., Ltd.
+ * Copyright (c) 201
9
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.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-264,18
+264,21
@@
void VisualModel::GetLinesOfGlyphRange( LineRun* lines,
LineIndex VisualModel::GetLineOfCharacter( CharacterIndex characterIndex )
{
LineIndex VisualModel::GetLineOfCharacter( CharacterIndex characterIndex )
{
- // 1) Check first in the cached line.
+ // 1) Check line is empty or not.
+ if( mLines.Empty() )
+ {
+ return 0u;
+ }
+ // 2) Check in the cached line.
const LineRun& lineRun = *( mLines.Begin() + mCachedLineIndex );
const LineRun& lineRun = *( mLines.Begin() + mCachedLineIndex );
-
if( ( lineRun.characterRun.characterIndex <= characterIndex ) &&
( characterIndex < lineRun.characterRun.characterIndex + lineRun.characterRun.numberOfCharacters ) )
{
return mCachedLineIndex;
}
if( ( lineRun.characterRun.characterIndex <= characterIndex ) &&
( characterIndex < lineRun.characterRun.characterIndex + lineRun.characterRun.numberOfCharacters ) )
{
return mCachedLineIndex;
}
- // 2) Is not in the cached line. Check in the other lines.
-
+ // 3) Is not in the cached line. Check in the other lines.
LineIndex index = characterIndex < lineRun.characterRun.characterIndex ? 0u : mCachedLineIndex + 1u;
for( Vector<LineRun>::ConstIterator it = mLines.Begin() + index,
LineIndex index = characterIndex < lineRun.characterRun.characterIndex ? 0u : mCachedLineIndex + 1u;
for( Vector<LineRun>::ConstIterator it = mLines.Begin() + index,
@@
-370,11
+373,21
@@
void VisualModel::SetUnderlineHeight( float height )
mUnderlineHeight = height;
}
mUnderlineHeight = height;
}
-void VisualModel::SetOutlineWidth(
floa
t width )
+void VisualModel::SetOutlineWidth(
uint16_
t width )
{
mOutlineWidth = width;
}
{
mOutlineWidth = width;
}
+void VisualModel::SetBackgroundColor( const Vector4& color )
+{
+ mBackgroundColor = color;
+}
+
+void VisualModel::SetBackgroundEnabled( bool enabled )
+{
+ mBackgroundEnabled = enabled;
+}
+
const Vector4& VisualModel::GetTextColor() const
{
return mTextColor;
const Vector4& VisualModel::GetTextColor() const
{
return mTextColor;
@@
-415,11
+428,21
@@
float VisualModel::GetUnderlineHeight() const
return mUnderlineHeight;
}
return mUnderlineHeight;
}
-
floa
t VisualModel::GetOutlineWidth() const
+
uint16_
t VisualModel::GetOutlineWidth() const
{
return mOutlineWidth;
}
{
return mOutlineWidth;
}
+const Vector4& VisualModel::GetBackgroundColor() const
+{
+ return mBackgroundColor;
+}
+
+bool VisualModel::IsBackgroundEnabled() const
+{
+ return mBackgroundEnabled;
+}
+
Length VisualModel::GetNumberOfUnderlineRuns() const
{
return mUnderlineRuns.Count();
Length VisualModel::GetNumberOfUnderlineRuns() const
{
return mUnderlineRuns.Count();
@@
-446,16
+469,18
@@
VisualModel::VisualModel()
mShadowColor( Color::BLACK ),
mUnderlineColor( Color::BLACK ),
mOutlineColor( Color::WHITE ),
mShadowColor( Color::BLACK ),
mUnderlineColor( Color::BLACK ),
mOutlineColor( Color::WHITE ),
+ mBackgroundColor( Color::CYAN ),
mControlSize(),
mShadowOffset(),
mUnderlineHeight( 0.0f ),
mControlSize(),
mShadowOffset(),
mUnderlineHeight( 0.0f ),
- mOutlineWidth( 0.0f ),
mShadowBlurRadius( 0.0f ),
mShadowBlurRadius( 0.0f ),
+ mOutlineWidth( 0u ),
mNaturalSize(),
mLayoutSize(),
mCachedLineIndex( 0u ),
mUnderlineEnabled( false ),
mNaturalSize(),
mLayoutSize(),
mCachedLineIndex( 0u ),
mUnderlineEnabled( false ),
- mUnderlineColorSet( false )
+ mUnderlineColorSet( false ),
+ mBackgroundEnabled( false )
{
}
{
}