X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.h;h=55184ef39482567b4ffa3afdb9978bc0f5c336f0;hb=862dfd28532f834238394c7ec0a15069c9bd2188;hp=414faf58e97053fe89eedd057c216f1e07b5828e;hpb=d0b0cfa4a44953be9af9128885eb6ef5d83a214e;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 414faf5..55184ef 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -49,6 +49,7 @@ struct ControllerImplEventHandler; struct SelectionHandleController; class SelectableControlInterface; +class AnchorControlInterface; struct Event { @@ -314,10 +315,12 @@ struct Controller::Impl { Impl(ControlInterface* controlInterface, EditableControlInterface* editableControlInterface, - SelectableControlInterface* selectableControlInterface) + SelectableControlInterface* selectableControlInterface, + AnchorControlInterface* anchorControlInterface) : mControlInterface(controlInterface), mEditableControlInterface(editableControlInterface), mSelectableControlInterface(selectableControlInterface), + mAnchorControlInterface(anchorControlInterface), mModel(), mFontDefaults(NULL), mUnderlineDefaults(NULL), @@ -335,6 +338,7 @@ struct Controller::Impl mOperationsPending(NO_OPERATION), mMaximumNumberOfCharacters(50u), mHiddenInput(NULL), + mInputFilter(nullptr), mRecalculateNaturalSize(true), mMarkupProcessorEnabled(false), mClipboardHideEnabled(true), @@ -383,7 +387,6 @@ struct Controller::Impl ~Impl() { delete mHiddenInput; - delete mFontDefaults; delete mUnderlineDefaults; delete mShadowDefaults; @@ -782,29 +785,38 @@ private: // Declared private and left undefined to avoid copies. Impl& operator=(const Impl&); + /** + * @brief Copy Underlined-Character-Runs from Logical-Model to Underlined-Glyph-Runs in Visual-Model + * + * @param shouldClearPreUnderlineRuns Whether should clear the existing Underlined-Glyph-Runs in Visual-Model + */ + void CopyUnderlinedFromLogicalToVisualModels(bool shouldClearPreUnderlineRuns); + public: - ControlInterface* mControlInterface; ///< Reference to the text controller. - EditableControlInterface* mEditableControlInterface; ///< Reference to the editable text controller. - SelectableControlInterface* mSelectableControlInterface; ///< Reference to the selectable text controller. - ModelPtr mModel; ///< Pointer to the text's model. - FontDefaults* mFontDefaults; ///< Avoid allocating this when the user does not specify a font. - UnderlineDefaults* mUnderlineDefaults; ///< Avoid allocating this when the user does not specify underline parameters. - ShadowDefaults* mShadowDefaults; ///< Avoid allocating this when the user does not specify shadow parameters. - EmbossDefaults* mEmbossDefaults; ///< Avoid allocating this when the user does not specify emboss parameters. - OutlineDefaults* mOutlineDefaults; ///< Avoid allocating this when the user does not specify outline parameters. - EventData* mEventData; ///< Avoid allocating everything for text input until EnableTextInput(). - TextAbstraction::FontClient mFontClient; ///< Handle to the font client. - Clipboard mClipboard; ///< Handle to the system clipboard - View mView; ///< The view interface to the rendering back-end. - MetricsPtr mMetrics; ///< A wrapper around FontClient used to get metrics & potentially down-scaled Emoji metrics. - Layout::Engine mLayoutEngine; ///< The layout engine. - Vector mModifyEvents; ///< Temporary stores the text set until the next relayout. - Vector4 mTextColor; ///< The regular text color - TextUpdateInfo mTextUpdateInfo; ///< Info of the characters updated. - OperationsMask mOperationsPending; ///< Operations pending to be done to layout the text. - Length mMaximumNumberOfCharacters; ///< Maximum number of characters that can be inserted. - HiddenText* mHiddenInput; ///< Avoid allocating this when the user does not specify hidden input mode. - Vector2 mTextFitContentSize; ///< Size of Text fit content + ControlInterface* mControlInterface; ///< Reference to the text controller. + EditableControlInterface* mEditableControlInterface; ///< Reference to the editable text controller. + SelectableControlInterface* mSelectableControlInterface; ///< Reference to the selectable text controller. + AnchorControlInterface* mAnchorControlInterface; ///< Reference to the anchor controller. + ModelPtr mModel; ///< Pointer to the text's model. + FontDefaults* mFontDefaults; ///< Avoid allocating this when the user does not specify a font. + UnderlineDefaults* mUnderlineDefaults; ///< Avoid allocating this when the user does not specify underline parameters. + ShadowDefaults* mShadowDefaults; ///< Avoid allocating this when the user does not specify shadow parameters. + EmbossDefaults* mEmbossDefaults; ///< Avoid allocating this when the user does not specify emboss parameters. + OutlineDefaults* mOutlineDefaults; ///< Avoid allocating this when the user does not specify outline parameters. + EventData* mEventData; ///< Avoid allocating everything for text input until EnableTextInput(). + TextAbstraction::FontClient mFontClient; ///< Handle to the font client. + Clipboard mClipboard; ///< Handle to the system clipboard + View mView; ///< The view interface to the rendering back-end. + MetricsPtr mMetrics; ///< A wrapper around FontClient used to get metrics & potentially down-scaled Emoji metrics. + Layout::Engine mLayoutEngine; ///< The layout engine. + Vector mModifyEvents; ///< Temporary stores the text set until the next relayout. + Vector4 mTextColor; ///< The regular text color + TextUpdateInfo mTextUpdateInfo; ///< Info of the characters updated. + OperationsMask mOperationsPending; ///< Operations pending to be done to layout the text. + Length mMaximumNumberOfCharacters; ///< Maximum number of characters that can be inserted. + HiddenText* mHiddenInput; ///< Avoid allocating this when the user does not specify hidden input mode. + std::unique_ptr mInputFilter; ///< Avoid allocating this when the user does not specify input filter mode. + Vector2 mTextFitContentSize; ///< Size of Text fit content bool mRecalculateNaturalSize : 1; ///< Whether the natural size needs to be recalculated. bool mMarkupProcessorEnabled : 1; ///< Whether the mark-up procesor is enabled.