X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=b058e2696b448db0c6975f548a994da611b6a29b;hb=75fe6c4a2f784bd52ccf8eb16049317825338a6e;hp=61071b169e63d0e1b526e1a9dec1542cfd535fe6;hpb=924b0441302cfe73dbb2b2a991017be4826e2b2b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 61071b1..b058e26 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -1219,12 +1219,31 @@ const std::string& Controller::GetDefaultOutlineProperties() const return EMPTY_STRING; } +void Controller::RelayoutForNewLineSize() +{ + // relayout all characters + mImpl->mTextUpdateInfo.mCharacterIndex = 0; + mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = mImpl->mTextUpdateInfo.mPreviousNumberOfCharacters; + mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = mImpl->mModel->mLogicalModel->mText.Count(); + mImpl->mOperationsPending = static_cast(mImpl->mOperationsPending | LAYOUT); + + //remove selection + if((mImpl->mEventData != nullptr) && (mImpl->mEventData->mState == EventData::SELECTING)) + { + mImpl->ChangeState(EventData::EDITING); + } + + mImpl->RequestRelayout(); +} + bool Controller::SetDefaultLineSpacing(float lineSpacing) { if(std::fabs(lineSpacing - mImpl->mLayoutEngine.GetDefaultLineSpacing()) > Math::MACHINE_EPSILON_1000) { mImpl->mLayoutEngine.SetDefaultLineSpacing(lineSpacing); mImpl->mRecalculateNaturalSize = true; + + RelayoutForNewLineSize(); return true; } return false; @@ -1241,6 +1260,8 @@ bool Controller::SetDefaultLineSize(float lineSize) { mImpl->mLayoutEngine.SetDefaultLineSize(lineSize); mImpl->mRecalculateNaturalSize = true; + + RelayoutForNewLineSize(); return true; } return false; @@ -1822,6 +1843,11 @@ void Controller::SelectEvent(float x, float y, SelectionType selectType) EventHandler::SelectEvent(*this, x, y, selectType); } +void Controller::SelectEvent(const uint32_t start, const uint32_t end, SelectionType selectType) +{ + EventHandler::SelectEvent(*this, start, end, selectType); +} + void Controller::SetTextSelectionRange(const uint32_t* start, const uint32_t* end) { if(mImpl->mEventData) @@ -1872,6 +1898,11 @@ void Controller::SelectNone() SelectEvent(0.f, 0.f, SelectionType::NONE); } +void Controller::SelectText(const uint32_t start, const uint32_t end) +{ + SelectEvent(start, end, SelectionType::RANGE); +} + string Controller::GetSelectedText() const { string text;