X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=9de7dba44e913ccd7f665d5b802df9af4331e44d;hb=c1b19f0b24c482e2af7f555c00250bbbb32112e6;hp=5ebd05a59c215ed2d1ab8ab8685a57eaa2834955;hpb=fb87251cfeff34418a36798700b81786e522018a;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 5ebd05a..9de7dba 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -667,6 +667,9 @@ void Controller::SetFontSizeScale(float scale) { mImpl->mFontSizeScale = scale; + // No relayout is required + if(!mImpl->mFontSizeScaleEnabled) return; + // Update the cursor position if it's in editing mode UpdateCursorPosition(mImpl->mEventData); @@ -681,6 +684,24 @@ float Controller::GetFontSizeScale() const return mImpl->mFontDefaults ? mImpl->mFontSizeScale : 1.0f; } +void Controller::SetFontSizeScaleEnabled(bool enabled) +{ + mImpl->mFontSizeScaleEnabled = enabled; + + // Update the cursor position if it's in editing mode + UpdateCursorPosition(mImpl->mEventData); + + // Clear the font-specific data + mImpl->ClearFontData(); + + mImpl->RequestRelayout(); +} + +bool Controller::IsFontSizeScaleEnabled() const +{ + return mImpl->mFontSizeScaleEnabled; +} + void Controller::SetDefaultFontSize(float fontSize, FontSizeType type) { EnsureCreated(mImpl->mFontDefaults); @@ -805,6 +826,42 @@ float Controller::GetUnderlineHeight() const return mImpl->mModel->mVisualModel->GetUnderlineHeight(); } +void Controller::SetUnderlineType(Text::Underline::Type type) +{ + mImpl->mModel->mVisualModel->SetUnderlineType(type); + + mImpl->RequestRelayout(); +} + +Text::Underline::Type Controller::GetUnderlineType() const +{ + return mImpl->mModel->mVisualModel->GetUnderlineType(); +} + +void Controller::SetDashedUnderlineWidth(float width) +{ + mImpl->mModel->mVisualModel->SetDashedUnderlineWidth(width); + + mImpl->RequestRelayout(); +} + +float Controller::GetDashedUnderlineWidth() const +{ + return mImpl->mModel->mVisualModel->GetDashedUnderlineWidth(); +} + +void Controller::SetDashedUnderlineGap(float gap) +{ + mImpl->mModel->mVisualModel->SetDashedUnderlineGap(gap); + + mImpl->RequestRelayout(); +} + +float Controller::GetDashedUnderlineGap() const +{ + return mImpl->mModel->mVisualModel->GetDashedUnderlineGap(); +} + void Controller::SetOutlineColor(const Vector4& color) { mImpl->mModel->mVisualModel->SetOutlineColor(color); @@ -891,6 +948,16 @@ float Controller::GetDefaultLineSize() const return mImpl->mLayoutEngine.GetDefaultLineSize(); } +bool Controller::SetRelativeLineSize(float relativeLineSize) +{ + return mImpl->SetRelativeLineSize(relativeLineSize); +} + +float Controller::GetRelativeLineSize() const +{ + return mImpl->GetRelativeLineSize(); +} + void Controller::SetInputColor(const Vector4& color) { InputProperties::SetInputColor(*this, color); @@ -1283,6 +1350,19 @@ void Controller::SetEllipsisPosition(Toolkit::DevelText::EllipsisPosition::Type mImpl->mModel->mVisualModel->SetEllipsisPosition(ellipsisPosition); } +void Controller::SetCharacterSpacing(float characterSpacing) +{ + mImpl->mModel->mVisualModel->SetCharacterSpacing(characterSpacing); + + mImpl->RelayoutAllCharacters(); + mImpl->RequestRelayout(); +} + +const float Controller::GetCharacterSpacing() const +{ + return mImpl->mModel->mVisualModel->GetCharacterSpacing(); +} + Controller::UpdateTextType Controller::Relayout(const Size& size, Dali::LayoutDirection::Type layoutDirection) { return Relayouter::Relayout(*this, size, layoutDirection); @@ -1451,11 +1531,11 @@ void Controller::GetTargetSize(Vector2& targetSize) targetSize = mImpl->mModel->mVisualModel->mControlSize; } -void Controller::AddDecoration(Actor& actor, bool needsClipping) +void Controller::AddDecoration(Actor& actor, DecorationType type, bool needsClipping) { if(mImpl->mEditableControlInterface) { - mImpl->mEditableControlInterface->AddDecoration(actor, needsClipping); + mImpl->mEditableControlInterface->AddDecoration(actor, type, needsClipping); } } @@ -1540,7 +1620,7 @@ bool Controller::ShouldClearFocusOnEscape() const Actor Controller::CreateBackgroundActor() { - return CreateControllerBackgroundActor(mImpl->mView, mImpl->mModel->mVisualModel, mImpl->mShaderBackground); + return CreateControllerBackgroundActor(mImpl->mView, mImpl->mModel->mVisualModel, mImpl->mModel->mLogicalModel, mImpl->mShaderBackground); } void Controller::GetAnchorActors(std::vector& anchorActors)