X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.h;h=e60fe37100364bfbac6edd61693c3d56d73f4d17;hp=4b1658c31a03cfef5eafbfce9462f6035aa1ee61;hb=785904f5477a648bc0005dcbb39bd3a85077e32d;hpb=6c9e8a10d5284ca448a647a87dba3525ac30247e diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index 4b1658c..e60fe37 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -21,6 +21,7 @@ // EXTERNAL INCLUDES #include #include +#include // INTERNAL INCLUDES #include @@ -174,7 +175,9 @@ struct ModifyEvent struct FontDefaults { FontDefaults() - : mDefaultPointSize(0.0f), + : mDefaultFontFamily(""), + mDefaultFontStyle(""), + mDefaultPointSize(0.0f), mFontId(0u) { } @@ -207,13 +210,15 @@ struct Controller::Impl mFontClient(), mClipboard(), mView(), + mMetrics(), mLayoutEngine(), mModifyEvents(), mTextColor( Color::BLACK ), mAlignmentOffset(), mOperationsPending( NO_OPERATION ), mMaximumNumberOfCharacters( 50 ), - mRecalculateNaturalSize( true ) + mRecalculateNaturalSize( true ), + mUserDefinedFontFamily( false) { mLogicalModel = LogicalModel::New(); mVisualModel = VisualModel::New(); @@ -223,6 +228,10 @@ struct Controller::Impl mView.SetVisualModel( mVisualModel ); + // Use this to access FontClient i.e. to get down-scaled Emoji metrics. + mMetrics = Metrics::New( mFontClient ); + mLayoutEngine.SetMetrics( mMetrics ); + // Set the text properties to default mVisualModel->SetUnderlineEnabled( false ); mVisualModel->SetUnderlineHeight( 0.0f ); @@ -279,6 +288,12 @@ struct Controller::Impl return ( mEventData && mEventData->mIsShowingPlaceholderText ); } + bool IsShowingRealText() const + { + return ( !IsShowingPlaceholderText() && + 0u != mLogicalModel->mText.Count() ); + } + /** * @brief Called when placeholder-text is hidden */ @@ -462,15 +477,18 @@ struct Controller::Impl FontDefaults* mFontDefaults; ///< Avoid allocating this when the user does not specify a font. 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 + 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. LayoutEngine mLayoutEngine; ///< The layout engine. std::vector mModifyEvents; ///< Temporary stores the text set until the next relayout. Vector4 mTextColor; ///< The regular text color Vector2 mAlignmentOffset; ///< Vertical and horizontal offset of the whole text inside the control due to alignment. OperationsMask mOperationsPending; ///< Operations pending to be done to layout the text. Length mMaximumNumberOfCharacters; ///< Maximum number of characters that can be inserted. + bool mRecalculateNaturalSize:1; ///< Whether the natural size needs to be recalculated. + bool mUserDefinedFontFamily:1; ///< Whether the Font family was Set by the user instead of being left as sytem default }; } // namespace Text