[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / multi-language-support.h
index a22676c..5d15956 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_TEXT_MULTI_LANGUAGE_SUPPORT_H__
-#define __DALI_TOOLKIT_TEXT_MULTI_LANGUAGE_SUPPORT_H__
+#ifndef DALI_TOOLKIT_TEXT_MULTI_LANGUAGE_SUPPORT_H
+#define DALI_TOOLKIT_TEXT_MULTI_LANGUAGE_SUPPORT_H
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #include <dali/public-api/object/base-handle.h>
 
 // INTERNAL INCLUDES
+#include <dali-toolkit/internal/text/font-description-run.h>
 #include <dali-toolkit/internal/text/font-run.h>
 #include <dali-toolkit/internal/text/script-run.h>
 
 namespace Dali
 {
-
 namespace Toolkit
 {
-
 namespace Text
 {
-
 namespace Internal DALI_INTERNAL
 {
-
 class MultilanguageSupport;
 
-} // Internal
-
-class LogicalModel;
+} // namespace DALI_INTERNAL
 
 /**
  * @brief Sets the character's scripts to the model and validates the fonts set by the user or assigns default ones.
@@ -50,7 +45,6 @@ class LogicalModel;
 class MultilanguageSupport : public BaseHandle
 {
 public:
-
   /**
    * @brief Create an uninitialized MultilanguageSupport handle.
    */
@@ -68,7 +62,7 @@ public:
    *
    * @param[in] implementation A pointer to the internal multi-language support object.
    */
-  explicit DALI_INTERNAL MultilanguageSupport( Internal::MultilanguageSupport* implementation );
+  explicit DALI_INTERNAL MultilanguageSupport(Internal::MultilanguageSupport* implementation);
 
   /**
    * @brief Retrieve a handle to the MultilanguageSupport instance.
@@ -91,18 +85,18 @@ public:
    *   script of the first character of the paragraph with a defined script.
    *
    * @param[in] text Vector of UTF-32 characters.
-   * @param[in] lineBreakInfo Vector with the line break info.
+   * @param[in] startIndex The character from where the script info is set.
+   * @param[in] numberOfCharacters The number of characters to set the script.
    * @param[out] scripts Vector containing the script runs for the whole text.
    */
-  void SetScripts( const Vector<Character>& text,
-                   const Vector<LineBreakInfo>& lineBreakInfo,
-                   Vector<ScriptRun>& scripts );
+  void SetScripts(const Vector<Character>& text,
+                  CharacterIndex           startIndex,
+                  Length                   numberOfCharacters,
+                  Vector<ScriptRun>&       scripts);
 
   /**
    * @brief Validates the character's font of the whole text.
    *
-   * It may update fonts set by application developers.
-   *
    * This method ensures all characters are going to be rendered using an appropriate font. Provided a valid font
    * exists in the platform.
    *
@@ -113,11 +107,30 @@ public:
    *
    * @param[in] text Vector of UTF-32 characters.
    * @param[in] scripts Vector containing the script runs for the whole text.
-   * @param[in,out] fonts Initially contains the fonts set by the application developers. Returns the validated fonts.
+   * @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.
    */
-  void ValidateFonts( const Vector<Character>& text,
-                      const Vector<ScriptRun>& scripts,
-                      Vector<FontRun>& fonts );
+  void 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);
+
+public:
+  // Default copy and move operator
+  MultilanguageSupport(const MultilanguageSupport& rhs) = default;
+  MultilanguageSupport(MultilanguageSupport&& rhs)      = default;
+  MultilanguageSupport& operator=(const MultilanguageSupport& rhs) = default;
+  MultilanguageSupport& operator=(MultilanguageSupport&& rhs) = default;
 };
 
 } // namespace Text
@@ -126,4 +139,4 @@ public:
 
 } // namespace Dali
 
-#endif // __DALI_TOOLKIT_TEXT_MULTI_LANGUAGE_SUPPORT_H__
+#endif // DALI_TOOLKIT_TEXT_MULTI_LANGUAGE_SUPPORT_H