X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.h;h=0757bc0488621f94c8596c1e8d65cb6f32eabe03;hb=ca37fd65672a1f1628d0d09b8c39cb52f2acf66c;hp=fa64a958a134d2300b50661a96c8ad9055ce6667;hpb=fb87251cfeff34418a36798700b81786e522018a;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index fa64a95..0757bc0 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H /* - * 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. @@ -351,12 +351,14 @@ struct Controller::Impl mShadowSetByString(false), mOutlineSetByString(false), mFontStyleSetByString(false), + mStrikethroughSetByString(false), mShouldClearFocusOnEscape(true), mLayoutDirection(LayoutDirection::LEFT_TO_RIGHT), mTextFitMinSize(DEFAULT_TEXTFIT_MIN), mTextFitMaxSize(DEFAULT_TEXTFIT_MAX), mTextFitStepSize(DEFAULT_TEXTFIT_STEP), mFontSizeScale(DEFAULT_FONT_SIZE_SCALE), + mFontSizeScaleEnabled(true), mTextFitEnabled(false), mTextFitChanged(false), mIsLayoutDirectionChanged(false) @@ -367,6 +369,7 @@ struct Controller::Impl mClipboard = Clipboard::Get(); mView.SetVisualModel(mModel->mVisualModel); + mView.SetLogicalModel(mModel->mLogicalModel); // Use this to access FontClient i.e. to get down-scaled Emoji metrics. mMetrics = Metrics::New(mFontClient); @@ -497,6 +500,11 @@ struct Controller::Impl } } + float GetFontSizeScale() + { + return mFontSizeScaleEnabled ? mFontSizeScale : 1.0f; + } + /** * @brief Helper to notify InputMethodContext with surrounding text & cursor changes. */ @@ -619,6 +627,16 @@ struct Controller::Impl bool SetDefaultLineSize(float lineSize); /** + * @copydoc Controller::SetRelativeLineSize + */ + bool SetRelativeLineSize(float relativeLineSize); + + /** + * @copydoc Controller::GetRelativeLineSize + */ + float GetRelativeLineSize(); + + /** * @copydoc Text::Controller::GetPrimaryCursorPosition() */ CharacterIndex GetPrimaryCursorPosition() const; @@ -784,9 +802,16 @@ struct Controller::Impl void ScrollTextToMatchCursor(); /** - * @brief fill needed relayout parameters when line size is changed & request relayout. + * @brief Create an actor that renders the text background color + * + * @return the created actor or an empty handle if no background color needs to be rendered. + */ + Actor CreateBackgroundActor(); + + /** + * @brief fill needed relayout parameters whenever a property is changed and a re-layout is needed for the entire text. */ - void RelayoutForNewLineSize(); + void RelayoutAllCharacters(); /** * @copydoc Controller::IsInputStyleChangedSignalsQueueEmpty @@ -930,6 +955,12 @@ private: */ void CopyUnderlinedFromLogicalToVisualModels(bool shouldClearPreUnderlineRuns); + /** + * @brief Copy strikethrough-Character-Runs from Logical-Model to strikethrough-Glyph-Runs in Visual-Model + * + */ + void CopyStrikethroughFromLogicalToVisualModels(); + public: ControlInterface* mControlInterface; ///< Reference to the text controller. EditableControlInterface* mEditableControlInterface; ///< Reference to the editable text controller. @@ -977,6 +1008,7 @@ public: float mTextFitMaxSize; ///< Maximum Font Size for text fit. Default 100 float mTextFitStepSize; ///< Step Size for font intervalse. Default 1 float mFontSizeScale; ///< Scale value for Font Size. Default 1.0 + bool mFontSizeScaleEnabled : 1; ///< Whether the font size scale is enabled. bool mTextFitEnabled : 1; ///< Whether the text's fit is enabled. bool mTextFitChanged : 1; ///< Whether the text fit property has changed. bool mIsLayoutDirectionChanged : 1; ///< Whether the layout has changed.