Add a callback to get textfitted font size.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-controller-relayouter.cpp
index decbfc1..ed0ddc6 100644 (file)
@@ -216,6 +216,7 @@ void Controller::Relayouter::FitPointSizeforLayout(Controller& controller, const
     float minPointSize   = impl.mTextFitMinSize;
     float maxPointSize   = impl.mTextFitMaxSize;
     float pointInterval  = impl.mTextFitStepSize;
+    float currentFitPointSize = impl.mFontDefaults->mFitPointSize;
 
     model->mElideEnabled = false;
     Vector<float> pointSizeArray;
@@ -255,6 +256,10 @@ void Controller::Relayouter::FitPointSizeforLayout(Controller& controller, const
     }
 
     model->mElideEnabled              = actualellipsis;
+    if(currentFitPointSize != pointSizeArray[bestSizeIndex])
+    {
+      impl.mTextFitChanged = true;
+    }
     impl.mFontDefaults->mFitPointSize = pointSizeArray[bestSizeIndex];
     impl.mFontDefaults->sizeDefined   = true;
     controller.ClearFontData();
@@ -544,6 +549,7 @@ bool Controller::Relayouter::DoRelayout(Controller& controller, const Size& size
 
     // Update the ellipsis
     bool elideTextEnabled = impl.mModel->mElideEnabled;
+    auto ellipsisPosition = impl.mModel->mEllipsisPosition;
 
     if(NULL != impl.mEventData)
     {
@@ -570,7 +576,8 @@ bool Controller::Relayouter::DoRelayout(Controller& controller, const Size& size
     viewUpdated               = impl.mLayoutEngine.LayoutText(layoutParameters,
                                                 newLayoutSize,
                                                 elideTextEnabled,
-                                                isAutoScrollEnabled);
+                                                isAutoScrollEnabled,
+                                                ellipsisPosition);
     impl.mIsAutoScrollEnabled = isAutoScrollEnabled;
 
     viewUpdated = viewUpdated || (newLayoutSize != layoutSize);