-#ifndef __DALI_TOOLKIT_TEXT_UTILS_H__
-#define __DALI_TOOLKIT_TEXT_UTILS_H__
+#ifndef DALI_TOOLKIT_TEXT_UTILS_H
+#define DALI_TOOLKIT_TEXT_UTILS_H
/*
- * Copyright (c) 2016 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/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.
};
/**
* @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
} // namespace Dali
-#endif // __DALI_TOOLKIT_TEXT_UTILS_H__
+#endif // DALI_TOOLKIT_TEXT_UTILS_H