1 #ifndef DALI_TOOLKIT_TEXT_UTILS_H
2 #define DALI_TOOLKIT_TEXT_UTILS_H
5 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali-toolkit/internal/text/metrics.h>
23 #include <dali-toolkit/internal/text/text-controller.h>
24 #include <dali-toolkit/internal/text/text-model.h>
36 * @brief Some layout options.
44 bool align : 1; ///< Whether to align the lines.
48 * @brief Creates and fills all the vectors of a text model: characters in utf32, segmentation info,
49 * scripts, fonts, bidi info, glyphs, conversion tables, etc.
51 * @param[in] text The given text.
52 * @param[in] textArea The area where to layout the text.
53 * @param[in] fontDescriptions The fonts to be used.
54 * @param[in] options Layout options.
55 * @param[out] layoutSize The laid-out size.
56 * @param[out] textModel Pointer to a text model instance.
57 * @param[out] metrics Pointer to a wrapper around FontClient used to get metrics.
58 * @param[in] markupProcessorEnabled Enable markup processor to use markup text.
59 * @param[in] wrapMode Line wrap mode.
60 * @param[in] ellipsisEnabled Whether the ellipsis layout option is enabled.
61 * @param[in] ellipsisPosition Where is the location the text elide.
63 void CreateTextModel( const std::string& text,
65 const Vector<FontDescriptionRun>& fontDescriptions,
66 const LayoutOptions& options,
70 bool markupProcessorEnabled,
71 LineWrap::Mode wrapMode,
73 DevelText::EllipsisPosition::Type ellipsisPosition);
76 * @brief Configures the text @p controller similarly to the one configured by the text-label.
78 * @param[in,out] The text controller to configure.
80 void ConfigureTextLabel( ControllerPtr controller );
83 * @brief Configures the text @p controller similarly to the one configured by the text-field.
85 * @param[in,out] The text controller to configure.
87 void ConfigureTextField( ControllerPtr controller );
90 * @brief Configures the text @p controller similarly to the one configured by the text-editor.
92 * @param[in,out] The text controller to configure.
94 void ConfigureTextEditor( ControllerPtr controller );
98 * @brief Creates one FontDescriptionRun then add it to FontDescription list.
100 * @param[in] characterRun The initial character index and the number of characters of the run.
101 * @param[in] fontFamilyName The font's family name.
102 * @param[in] weight The font's weight.
103 * @param[in] width The font's width.
104 * @param[in] slant The font's slant.
105 * @param[in] size Whether the font's family is defined.
106 * @param[in] familyDefined Whether the font's weight is defined.
107 * @param[in] weightDefined Whether the font's width is defined.
108 * @param[in] widthDefined Whether the ellipsis layout option is enabled.
109 * @param[in] slantDefined Whether the font's slant is defined.
110 * @param[in] sizeDefined Whether the font's size is defined.
112 * @return vector contains one FontDescriptionRun.
114 Vector<FontDescriptionRun> CreateSingleFontDescription(
115 const CharacterRun& characterRun,
116 const std::string fontFamilyName,
117 const FontWeight weight,
118 const FontWidth width,
119 const FontSlant slant,
120 const PointSize26Dot6 size,
121 const bool familyDefined,
122 const bool weightDefined,
123 const bool widthDefined,
124 const bool slantDefined,
125 const bool sizeDefined);
129 } // namespace Toolkit
133 #endif // DALI_TOOLKIT_TEXT_UTILS_H