Fix for multi-language support.
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / dali-toolkit-test-utils / toolkit-text-model.cpp
index 9f39bd2..104b3c8 100644 (file)
@@ -25,7 +25,6 @@
 #include <dali-toolkit/internal/text/character-set-conversion.h>
 #include <dali-toolkit/internal/text/layouts/layout-engine.h>
 #include <dali-toolkit/internal/text/layouts/layout-parameters.h>
-#include <dali-toolkit/internal/text/metrics.h>
 #include <dali-toolkit/internal/text/multi-language-support.h>
 #include <dali-toolkit/internal/text/segmentation.h>
 #include <dali-toolkit/internal/text/shaper.h>
@@ -81,7 +80,6 @@ void ClearModelData( CharacterIndex characterIndex,
   logicalModel->mBidirectionalParagraphInfo.Clear();
   logicalModel->mCharacterDirections.Clear();
   logicalModel->mBidirectionalLineInfo.Clear();
-  logicalModel->mVisualToLogicalMap.Clear();
   visualModel->mGlyphs.Clear();
   visualModel->mGlyphsToCharacters.Clear();
   visualModel->mCharactersToGlyph.Clear();
@@ -98,9 +96,13 @@ void CreateTextModel( const std::string& text,
                       const Vector<FontDescriptionRun>& fontDescriptions,
                       const LayoutOptions& options,
                       Size& layoutSize,
-                      LogicalModelPtr logicalModel,
-                      VisualModelPtr visualModel )
+                      LogicalModelPtr& logicalModel,
+                      VisualModelPtr& visualModel,
+                      MetricsPtr& metrics )
 {
+  logicalModel = LogicalModel::New();
+  visualModel = VisualModel::New();
+
   // 1) Convert to utf32
   Vector<Character>& utf32Characters = logicalModel->mText;
   utf32Characters.Resize( text.size() );
@@ -148,24 +150,19 @@ void CreateTextModel( const std::string& text,
   fontDescriptionRuns = fontDescriptions;
   Vector<FontRun>& validFonts = logicalModel->mFontRuns;
 
-  // The default font id.
-  FontDefaults fontDefaults;
-  fontDefaults.mFontDescription.family = "";
-  fontDefaults.familyDefined = true;
-  fontDefaults.mDefaultPointSize = 12.f;
-  fontDefaults.sizeDefined = true;
+  // The default font description.
+  TextAbstraction::FontDescription fontDescription;
 
   TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
   fontClient.SetDpi( 96u, 96u );
 
-  const FontId defaultFontId = fontDefaults.GetFontId( fontClient );
-
   // Validates the fonts. If there is a character with no assigned font it sets a default one.
   // After this call, fonts are validated.
   multilanguageSupport.ValidateFonts( utf32Characters,
                                       scripts,
                                       fontDescriptionRuns,
-                                      defaultFontId,
+                                      fontDescription,
+                                      TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
                                       0u,
                                       numberOfCharacters,
                                       validFonts );
@@ -243,7 +240,7 @@ void CreateTextModel( const std::string& text,
   const Length numberOfGlyphs = glyphs.Count();
 
   // 8) Get the glyph metrics
-  MetricsPtr metrics = Metrics::New( fontClient );
+  metrics = Metrics::New( fontClient );
 
   GlyphInfo* glyphsBuffer = glyphs.Begin();
   metrics->GetGlyphMetrics( glyphsBuffer, numberOfGlyphs );
@@ -321,10 +318,6 @@ void CreateTextModel( const std::string& text,
     layoutParameters.lineBidirectionalInfoRunsBuffer = bidirectionalLineInfo.Begin();
     layoutParameters.numberOfBidirectionalInfoRuns = bidirectionalLineInfo.Count();
 
-    // Set the bidirectional info into the model.
-    logicalModel->SetVisualToLogicalMap( 0u,
-                                         numberOfCharacters );
-
     if( options.reorder )
     {
       // Re-layout the text. Reorder those lines with right to left characters.