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
[dali_2.3.28] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
text
/
logical-model-impl.cpp
diff --git
a/dali-toolkit/internal/text/logical-model-impl.cpp
b/dali-toolkit/internal/text/logical-model-impl.cpp
index
9ad00bc
..
8502629
100644
(file)
--- a/
dali-toolkit/internal/text/logical-model-impl.cpp
+++ b/
dali-toolkit/internal/text/logical-model-impl.cpp
@@
-146,8
+146,8
@@
CharacterIndex LogicalModel::GetLogicalCursorIndex(CharacterIndex visualCursorIn
// both characters and the direction of the paragraph.
const CharacterIndex previousVisualCursorIndex = visualCursorIndex - 1u;
// both characters and the direction of the paragraph.
const CharacterIndex previousVisualCursorIndex = visualCursorIndex - 1u;
- const CharacterIndex previousLogicalCursorIndex = *(bidirectionalLineInfo->visualToLogicalMap +
previousVisualCursorIndex - bidirectionalLineInfo->characterRun.characterIndex
) + bidirectionalLineInfo->characterRun.characterIndex;
- const CharacterIndex currentLogicalCursorIndex = *(bidirectionalLineInfo->visualToLogicalMap +
visualCursorIndex - bidirectionalLineInfo->characterRun.characterIndex
) + bidirectionalLineInfo->characterRun.characterIndex;
+ const CharacterIndex previousLogicalCursorIndex = *(bidirectionalLineInfo->visualToLogicalMap +
static_cast<std::size_t>(previousVisualCursorIndex - bidirectionalLineInfo->characterRun.characterIndex)
) + bidirectionalLineInfo->characterRun.characterIndex;
+ const CharacterIndex currentLogicalCursorIndex = *(bidirectionalLineInfo->visualToLogicalMap +
static_cast<std::size_t>(visualCursorIndex - bidirectionalLineInfo->characterRun.characterIndex)
) + bidirectionalLineInfo->characterRun.characterIndex;
const CharacterDirection previousCharacterDirection = *(modelCharacterDirections + previousLogicalCursorIndex);
const CharacterDirection currentCharacterDirection = *(modelCharacterDirections + currentLogicalCursorIndex);
const CharacterDirection previousCharacterDirection = *(modelCharacterDirections + previousLogicalCursorIndex);
const CharacterDirection currentCharacterDirection = *(modelCharacterDirections + currentLogicalCursorIndex);
@@
-199,7
+199,7
@@
CharacterIndex LogicalModel::GetLogicalCharacterIndex(CharacterIndex visualChara
// The bidirectional line info.
const BidirectionalLineInfoRun* const bidirectionalLineInfo = mBidirectionalLineInfo.Begin() + mBidirectionalLineIndex;
// The bidirectional line info.
const BidirectionalLineInfoRun* const bidirectionalLineInfo = mBidirectionalLineInfo.Begin() + mBidirectionalLineIndex;
- return *(bidirectionalLineInfo->visualToLogicalMap +
visualCharacterIndex - bidirectionalLineInfo->characterRun.characterIndex
) + bidirectionalLineInfo->characterRun.characterIndex;
+ return *(bidirectionalLineInfo->visualToLogicalMap +
static_cast<std::size_t>(visualCharacterIndex - bidirectionalLineInfo->characterRun.characterIndex)
) + bidirectionalLineInfo->characterRun.characterIndex;
}
bool LogicalModel::FetchBidirectionalLineInfo(CharacterIndex characterIndex)
}
bool LogicalModel::FetchBidirectionalLineInfo(CharacterIndex characterIndex)
@@
-345,6
+345,13
@@
void LogicalModel::UpdateTextStyleRuns(CharacterIndex index, int numberOfCharact
totalNumberOfCharacters,
mBoundedParagraphRuns,
removedBoundedParagraphRuns);
totalNumberOfCharacters,
mBoundedParagraphRuns,
removedBoundedParagraphRuns);
+
+ Vector<CharacterSpacingCharacterRun> removedCharacterSpacingCharacterRuns;
+ UpdateCharacterRuns<CharacterSpacingCharacterRun>(index,
+ numberOfCharacters,
+ totalNumberOfCharacters,
+ mCharacterSpacingCharacterRuns,
+ removedCharacterSpacingCharacterRuns);
}
void LogicalModel::RetrieveStyle(CharacterIndex index, InputStyle& style)
}
void LogicalModel::RetrieveStyle(CharacterIndex index, InputStyle& style)
@@
-490,6
+497,11
@@
void LogicalModel::ClearStrikethroughRuns()
mStrikethroughCharacterRuns.Clear();
}
mStrikethroughCharacterRuns.Clear();
}
+void LogicalModel::ClearUnderlineRuns()
+{
+ mUnderlinedCharacterRuns.Clear();
+}
+
void LogicalModel::CreateParagraphInfo(CharacterIndex startIndex,
Length numberOfCharacters)
{
void LogicalModel::CreateParagraphInfo(CharacterIndex startIndex,
Length numberOfCharacters)
{
@@
-536,7
+548,7
@@
void LogicalModel::CreateParagraphInfo(CharacterIndex startIndex,
if(updateCurrentParagraphs)
{
for(Vector<ParagraphRun>::ConstIterator it = mParagraphInfo.Begin(),
if(updateCurrentParagraphs)
{
for(Vector<ParagraphRun>::ConstIterator it = mParagraphInfo.Begin(),
- endIt = mParagraphInfo.Begin() +
totalNumberOfParagraphs - numberOfNewParagraphs
;
+ endIt = mParagraphInfo.Begin() +
static_cast<std::size_t>(totalNumberOfParagraphs - numberOfNewParagraphs)
;
it != endIt;
++it)
{
it != endIt;
++it)
{
@@
-624,6
+636,16
@@
const Vector<BoundedParagraphRun>& LogicalModel::GetBoundedParagraphRuns() const
return mBoundedParagraphRuns;
}
return mBoundedParagraphRuns;
}
+Length LogicalModel::GetNumberOfCharacterSpacingCharacterRuns() const
+{
+ return mCharacterSpacingCharacterRuns.Count();
+}
+
+const Vector<CharacterSpacingCharacterRun>& LogicalModel::GetCharacterSpacingCharacterRuns() const
+{
+ return mCharacterSpacingCharacterRuns;
+}
+
void LogicalModel::ClearEmbeddedImages()
{
FreeEmbeddedItems(mEmbeddedItems);
void LogicalModel::ClearEmbeddedImages()
{
FreeEmbeddedItems(mEmbeddedItems);
@@
-641,7
+663,11
@@
LogicalModel::~LogicalModel()
}
LogicalModel::LogicalModel()
}
LogicalModel::LogicalModel()
-: mBidirectionalLineIndex(0u)
+: mBidirectionalLineIndex(0u),
+ mSpannedTextPlaced(false),
+ mUnderlineRunsUpdated(false),
+ mCharacterSpacingRunsUpdated(false),
+ mStrikethroughRunsUpdated(false)
{
}
{
}