Moved Text Controller & Markup Processor to sub-folders
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / dali-toolkit-test-utils / toolkit-text-utils.h
index 1e6d750..b064bfa 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_UTILS_H
 
 /*
- * Copyright (c) 2019 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.
  */
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/internal/text/logical-model-impl.h>
 #include <dali-toolkit/internal/text/metrics.h>
-#include <dali-toolkit/internal/text/visual-model-impl.h>
-#include <dali-toolkit/internal/text/text-controller.h>
+#include <dali-toolkit/internal/text/controller/text-controller.h>
+#include <dali-toolkit/internal/text/text-model.h>
 
 namespace Dali
 {
-
 namespace Toolkit
 {
-
 namespace Text
 {
-
 /**
  * @brief Some layout options.
  */
 struct LayoutOptions
 {
   LayoutOptions()
-  : reorder( true ),
-    align( true )
-  {}
+  : align{true}
+  {
+  }
 
-  bool reorder : 1; ///< Whether to reorder the bidirectional lines.
-  bool align   : 1; ///< Whether to align the lines.
+  bool align : 1; ///< Whether to align the lines.
 };
 
 /**
@@ -56,41 +51,79 @@ struct LayoutOptions
  * @param[in] fontDescriptions The fonts to be used.
  * @param[in] options Layout options.
  * @param[out] layoutSize The laid-out size.
- * @param[out] logicalModel Pointer to a logical text model instance.
- * @param[out] visualModel Pointer to a visual text model instance.
+ * @param[out] textModel Pointer to a text model instance.
  * @param[out] metrics Pointer to a wrapper around FontClient used to get metrics.
  * @param[in] markupProcessorEnabled Enable markup processor to use markup text.
+ * @param[in] wrapMode Line wrap mode.
+ * @param[in] ellipsisEnabled Whether the ellipsis layout option is enabled.
+ * @param[in] ellipsisPosition Where is the location the text elide.
+ * @param[in] lineSpacing The height of the line in points.
+ * @param[in] characterSpacing The spacing between the characters.
  */
-void CreateTextModel( const std::string& text,
-                      const Size& textArea,
-                      const Vector<FontDescriptionRun>& fontDescriptions,
-                      const LayoutOptions& options,
-                      Size& layoutSize,
-                      LogicalModelPtr& logicalModel,
-                      VisualModelPtr& visualModel,
-                      MetricsPtr& metrics,
-                      bool markupProcessorEnabled );
+void CreateTextModel(const std::string&                text,
+                     const Size&                       textArea,
+                     const Vector<FontDescriptionRun>& fontDescriptions,
+                     const LayoutOptions&              options,
+                     Size&                             layoutSize,
+                     ModelPtr&                         textModel,
+                     MetricsPtr&                       metrics,
+                     bool                              markupProcessorEnabled,
+                     LineWrap::Mode                    wrapMode,
+                     bool                              ellipsisEnabled,
+                     DevelText::EllipsisPosition::Type ellipsisPosition,
+                     float                             lineSpacing,
+                     float                             characterSpacing);
 
 /**
  * @brief Configures the text @p controller similarly to the one configured by the text-label.
  *
  * @param[in,out] The text controller to configure.
  */
-void ConfigureTextLabel( ControllerPtr controller );
+void ConfigureTextLabel(ControllerPtr controller);
 
 /**
  * @brief Configures the text @p controller similarly to the one configured by the text-field.
  *
  * @param[in,out] The text controller to configure.
  */
-void ConfigureTextField( ControllerPtr controller );
+void ConfigureTextField(ControllerPtr controller);
 
 /**
  * @brief Configures the text @p controller similarly to the one configured by the text-editor.
  *
  * @param[in,out] The text controller to configure.
  */
-void ConfigureTextEditor( ControllerPtr controller );
+void ConfigureTextEditor(ControllerPtr controller);
+
+/**
+ * @brief Creates one FontDescriptionRun then add it to FontDescription list.
+ *
+ * @param[in] characterRun The initial character index and the number of characters of the run.
+ * @param[in] fontFamilyName The font's family name.
+ * @param[in] weight The font's weight.
+ * @param[in] width The font's width.
+ * @param[in] slant The font's slant.
+ * @param[in] size Whether the font's family is defined.
+ * @param[in] familyDefined Whether the font's weight is defined.
+ * @param[in] weightDefined Whether the font's width is defined.
+ * @param[in] widthDefined Whether the ellipsis layout option is enabled.
+ * @param[in] slantDefined Whether the font's slant is defined.
+ * @param[in] sizeDefined Whether the font's size is defined.
+
+* @return vector contains one FontDescriptionRun.
+ */
+Vector<FontDescriptionRun> CreateSingleFontDescription(
+  const CharacterRun&   characterRun,
+  const std::string     fontFamilyName,
+  const FontWeight      weight,
+  const FontWidth       width,
+  const FontSlant       slant,
+  const PointSize26Dot6 size,
+  const bool            familyDefined,
+  const bool            weightDefined,
+  const bool            widthDefined,
+  const bool            slantDefined,
+  const bool            sizeDefined);
 
 } // namespace Text