Apply font size scale to markup text 50/293950/2
authorBowon Ryu <bowon.ryu@samsung.com>
Fri, 9 Jun 2023 05:00:14 +0000 (14:00 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Fri, 9 Jun 2023 05:52:04 +0000 (14:52 +0900)
Change-Id: I1c6467a1ebb42b4604497db12b12052fc7deba80
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/toolkit-text-utils.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-MultiLanguage.cpp
dali-toolkit/devel-api/text/text-utils-devel.cpp
dali-toolkit/internal/text/controller/text-controller-impl-model-updater.cpp
dali-toolkit/internal/text/multi-language-helper-functions.cpp
dali-toolkit/internal/text/multi-language-helper-functions.h
dali-toolkit/internal/text/multi-language-support-impl.cpp
dali-toolkit/internal/text/multi-language-support-impl.h
dali-toolkit/internal/text/multi-language-support.cpp
dali-toolkit/internal/text/multi-language-support.h

index 046f997..1e4dfe1 100644 (file)
@@ -229,6 +229,7 @@ void CreateTextModel(const std::string&                text,
                                      fontDescriptionRuns,
                                      fontDescription,
                                      TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+                                     1.0f,
                                      0u,
                                      characterCount,
                                      validFonts);
index 559e34e..e74adf7 100755 (executable)
@@ -35,33 +35,35 @@ using namespace Text;
 
 // Tests the following functions with different scripts.
 //
-// void MergeFontDescriptions( const Vector<FontDescriptionRun>& fontDescriptions,
-//                             const TextAbstraction::FontDescription& defaultFontDescription,
-//                             TextAbstraction::PointSize26Dot6 defaultPointSize,
-//                             CharacterIndex characterIndex,
-//                             TextAbstraction::FontDescription& fontDescription,
-//                             TextAbstraction::PointSize26Dot6& fontPointSize,
-//                             bool& isDefaultFont );
+// void MergeFontDescriptions(const Vector<FontDescriptionRun>&       fontDescriptions,
+//                            const TextAbstraction::FontDescription& defaultFontDescription,
+//                            TextAbstraction::PointSize26Dot6        defaultPointSize,
+//                            float                                   fontSizeScale,
+//                            CharacterIndex                          characterIndex,
+//                            TextAbstraction::FontDescription&       fontDescription,
+//                            TextAbstraction::PointSize26Dot6&       fontPointSize,
+//                            bool&                                   isDefaultFont);
 //
-// Script GetScript( Length index,
-//                   Vector<ScriptRun>::ConstIterator& scriptRunIt,
-//                   const Vector<ScriptRun>::ConstIterator& scriptRunEndIt );
+// Script GetScript(Length                                  index,
+//                  Vector<ScriptRun>::ConstIterator&       scriptRunIt,
+//                  const Vector<ScriptRun>::ConstIterator& scriptRunEndIt);
 //
 // Constructor, destructor and MultilanguageSupport::Get()
 //
-// void MultilanguageSupport::SetScripts( const Vector<Character>& text,
-//                                        CharacterIndex startIndex,
-//                                        Length numberOfCharacters,
-//                                        Vector<ScriptRun>& scripts );
+// void MultilanguageSupport::SetScripts(const Vector<Character>& text,
+//                                       CharacterIndex           startIndex,
+//                                       Length                   numberOfCharacters,
+//                                       Vector<ScriptRun>&       scripts);
 //
-// void MultilanguageSupport::ValidateFonts( const Vector<Character>& text,
-//                                           const Vector<ScriptRun>& scripts,
-//                                           const Vector<FontDescriptionRun>& fontDescriptions,
-//                                           const TextAbstraction::FontDescription& defaultFontDescription,
-//                                           TextAbstraction::PointSize26Dot6 defaultFontPointSize,
-//                                           CharacterIndex startIndex,
-//                                           Length numberOfCharacters,
-//                                           Vector<FontRun>& fonts );
+// void MultilanguageSupport::ValidateFonts(const Vector<Character>&                text,
+//                                          const Vector<ScriptRun>&                scripts,
+//                                          const Vector<FontDescriptionRun>&       fontDescriptions,
+//                                          const TextAbstraction::FontDescription& defaultFontDescription,
+//                                          TextAbstraction::PointSize26Dot6        defaultFontPointSize,
+//                                          float                                   fontSizeScale,
+//                                          CharacterIndex                          startIndex,
+//                                          Length                                  numberOfCharacters,
+//                                          Vector<FontRun>&                        fonts);
 
 //////////////////////////////////////////////////////////
 
@@ -78,6 +80,7 @@ struct MergeFontDescriptionsData
   Vector<FontDescriptionRun> fontDescriptionRuns;          ///< The font description runs.
   TextAbstraction::FontDescription defaultFontDescription; ///< The default font description.
   TextAbstraction::PointSize26Dot6 defaultPointSize;       ///< The default point size.
+  float        fontSizeScale;                              ///< The font's size scale.
   unsigned int startIndex;                                 ///< The start index.
   unsigned int numberOfCharacters;                         ///< The number of characters.
   Vector<FontId> expectedFontIds;                          ///< The expected font ids.
@@ -99,6 +102,7 @@ struct ValidateFontsData
   std::string                text;                ///< Input text.
   std::string                defaultFont;         ///< The default font.
   unsigned int               defaultFontSize;     ///< The default font size.
+  float                      fontSizeScale;       ///< The font's size scale.
   unsigned int               index;               ///< The index of the first character to update the script.
   unsigned int               numberOfCharacters;  ///< The numbers of characters to update the script.
   Vector<FontDescriptionRun> fontDescriptionRuns; ///< The font description runs.
@@ -123,6 +127,7 @@ bool MergeFontDescriptionsTest( const MergeFontDescriptionsData& data )
     MergeFontDescriptions( data.fontDescriptionRuns,
                            data.defaultFontDescription,
                            data.defaultPointSize,
+                           data.fontSizeScale,
                            index,
                            fontDescription,
                            fontPointSize,
@@ -290,6 +295,7 @@ bool ValidateFontTest( const ValidateFontsData& data )
                                       data.fontDescriptionRuns,
                                       defaultFontDescription,
                                       defaultPointSize,
+                                      data.fontSizeScale,
                                       0u,
                                       numberOfCharacters,
                                       fontRuns );
@@ -307,6 +313,7 @@ bool ValidateFontTest( const ValidateFontsData& data )
                                         data.fontDescriptionRuns,
                                         defaultFontDescription,
                                         defaultPointSize,
+                                        data.fontSizeScale,
                                         data.index,
                                         data.numberOfCharacters,
                                         fontRuns );
@@ -594,6 +601,7 @@ int UtcDaliTextMergeFontDescriptions(void)
       fontDescriptionRuns01,
       defaultFontDescription01,
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       0u,
       expectedFontIds01,
@@ -604,6 +612,7 @@ int UtcDaliTextMergeFontDescriptions(void)
       fontDescriptionRuns02,
       defaultFontDescription02,
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       2u,
       expectedFontIds02,
@@ -614,6 +623,7 @@ int UtcDaliTextMergeFontDescriptions(void)
       fontDescriptionRuns03,
       defaultFontDescription03,
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       10u,
       expectedFontIds03,
@@ -1744,6 +1754,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       0u,
       fontDescriptions01,
@@ -1754,6 +1765,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello world",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       11u,
       fontDescriptions02,
@@ -1764,6 +1776,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello world\nhello world\ndemo",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       28u,
       fontDescriptions03,
@@ -1774,6 +1787,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello world\nhello world\ndemo",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       12u,
       fontDescriptions03,
@@ -1784,6 +1798,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello world\nhello world\ndemo",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       12u,
       12u,
       fontDescriptions03,
@@ -1794,6 +1809,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello world\nhello world\ndemo",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       24u,
       4u,
       fontDescriptions03,
@@ -1804,6 +1820,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "שלום עולם",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       9u,
       fontDescriptions07,
@@ -1814,6 +1831,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "שלום עולם",
       "/tizen/TizenSansHebrewRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       9u,
       fontDescriptions08,
@@ -1824,6 +1842,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "\xF0\x9F\x98\x81\xF0\x9F\x98\x82\xF0\x9F\x98\x83\xF0\x9F\x98\x84",
       "/tizen/BreezeColorEmoji.ttf",
       EMOJI_FONT_SIZE,
+      1.0f,
       0u,
       4u,
       fontDescriptions09,
@@ -1834,6 +1853,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello world, שלום עולם, hello world, שלום עולם",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       46u,
       fontDescriptions10,
@@ -1844,6 +1864,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "WRC – The Official App",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       22u,
       fontDescriptions11,
@@ -1854,6 +1875,7 @@ int UtcDaliTextMultiLanguageValidateFonts01(void)
       "Hello \tworld",
       "/tizen/TizenSansRegular.ttf",
       TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+      1.0f,
       0u,
       12u,
       fontDescriptions12,
index 07c89ff..e779fe9 100644 (file)
@@ -293,6 +293,7 @@ void ShapeTextPreprocess(const RendererParameters& textParameters, TextAbstracti
                                      fontDescriptionRuns,
                                      defaultFontDescription,
                                      defaultPointSize,
+                                     1.0f,
                                      0u,
                                      numberOfCharacters,
                                      validFonts);
index 9225771..01e9157 100644 (file)
@@ -266,6 +266,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
                                          fontDescriptionRuns,
                                          defaultFontDescription,
                                          defaultPointSize,
+                                         impl.GetFontSizeScale(),
                                          startIndex,
                                          requestedNumberOfCharacters,
                                          validFonts);
index f53bfef..930cb8b 100644 (file)
@@ -30,6 +30,7 @@ namespace Text
 void MergeFontDescriptions(const Vector<FontDescriptionRun>&       fontDescriptions,
                            const TextAbstraction::FontDescription& defaultFontDescription,
                            TextAbstraction::PointSize26Dot6        defaultPointSize,
+                           float                                   fontSizeScale,
                            CharacterIndex                          characterIndex,
                            TextAbstraction::FontDescription&       fontDescription,
                            TextAbstraction::PointSize26Dot6&       fontPointSize,
@@ -133,7 +134,7 @@ void MergeFontDescriptions(const Vector<FontDescriptionRun>&       fontDescripti
     if(sizeOverriden)
     {
       const FontDescriptionRun& fontRun = *(fontDescriptionsBuffer + sizeIndex);
-      fontPointSize                     = fontRun.size;
+      fontPointSize                     = static_cast<PointSize26Dot6>(fontRun.size * fontSizeScale);
     }
   }
 }
index 41cb04a..f9992d0 100644 (file)
@@ -37,6 +37,7 @@ namespace Text
  * @param[in] fontDescriptions The font's descriptions for the whole text.
  * @param[in] defaultFontDescription The default font's description.
  * @param[in] defaultPointSize The default font's point size.
+ * @param[in] fontSizeScale The font's size scale.
  * @param[in] characterIndex Index to the character to retrieve its font's description.
  * @param[out] fontDescription The font's description for the character.
  * @param[out] fontPointSize The font's point size for the character.
@@ -45,6 +46,7 @@ namespace Text
 void MergeFontDescriptions(const Vector<FontDescriptionRun>&       fontDescriptions,
                            const TextAbstraction::FontDescription& defaultFontDescription,
                            TextAbstraction::PointSize26Dot6        defaultPointSize,
+                           float                                   fontSizeScale,
                            CharacterIndex                          characterIndex,
                            TextAbstraction::FontDescription&       fontDescription,
                            TextAbstraction::PointSize26Dot6&       fontPointSize,
index 79de1e1..1bf3c17 100644 (file)
@@ -413,6 +413,7 @@ void MultilanguageSupport::ValidateFonts(const Vector<Character>&
                                          const Vector<FontDescriptionRun>&       fontDescriptions,
                                          const TextAbstraction::FontDescription& defaultFontDescription,
                                          TextAbstraction::PointSize26Dot6        defaultFontPointSize,
+                                         float                                   fontSizeScale,
                                          CharacterIndex                          startIndex,
                                          Length                                  numberOfCharacters,
                                          Vector<FontRun>&                        fonts)
@@ -493,6 +494,7 @@ void MultilanguageSupport::ValidateFonts(const Vector<Character>&
     MergeFontDescriptions(fontDescriptions,
                           defaultFontDescription,
                           defaultFontPointSize,
+                          fontSizeScale,
                           index,
                           currentFontDescription,
                           currentFontPointSize,
index cda767a..5dc97fc 100644 (file)
@@ -153,6 +153,7 @@ public:
                      const Vector<FontDescriptionRun>&       fontDescriptions,
                      const TextAbstraction::FontDescription& defaultFontDescription,
                      TextAbstraction::PointSize26Dot6        defaultFontPointSize,
+                     float                                   fontSizeScale,
                      CharacterIndex                          startIndex,
                      Length                                  numberOfCharacters,
                      Vector<FontRun>&                        fonts);
index 11ba9c0..fd930c8 100644 (file)
@@ -61,6 +61,7 @@ void MultilanguageSupport::ValidateFonts(const Vector<Character>&
                                          const Vector<FontDescriptionRun>&       fontDescriptions,
                                          const TextAbstraction::FontDescription& defaultFontDescription,
                                          TextAbstraction::PointSize26Dot6        defaultFontPointSize,
+                                         float                                   fontSizeScale,
                                          CharacterIndex                          startIndex,
                                          Length                                  numberOfCharacters,
                                          Vector<FontRun>&                        fonts)
@@ -70,6 +71,7 @@ void MultilanguageSupport::ValidateFonts(const Vector<Character>&
                                          fontDescriptions,
                                          defaultFontDescription,
                                          defaultFontPointSize,
+                                         fontSizeScale,
                                          startIndex,
                                          numberOfCharacters,
                                          fonts);
index 7697a41..5d15956 100644 (file)
@@ -110,6 +110,7 @@ public:
    * @param[in] fontDescriptions The fonts set through the mark-up string or the input style set through the property system.
    * @param[in] defaultFontDescription The default font's description set through the property system.
    * @param[in] defaultFontPointSize The default font's point size set through the property system.
+   * @param[in] fontSizeScale The font's size scale.
    * @param[in] startIndex The character from where the font info is set.
    * @param[in] numberOfCharacters The number of characters to set the font.
    * @param[out] fonts The validated fonts.
@@ -119,6 +120,7 @@ public:
                      const Vector<FontDescriptionRun>&       fontDescriptions,
                      const TextAbstraction::FontDescription& defaultFontDescription,
                      TextAbstraction::PointSize26Dot6        defaultFontPointSize,
+                     float                                   fontSizeScale,
                      CharacterIndex                          startIndex,
                      Length                                  numberOfCharacters,
                      Vector<FontRun>&                        fonts);