1 #ifndef __DALI_TOOLKIT_INTERNAL_TEXT_VIEW_PROCESSOR_HELPER_FUNCTIONS_H__
2 #define __DALI_TOOLKIT_INTERNAL_TEXT_VIEW_PROCESSOR_HELPER_FUNCTIONS_H__
5 * Copyright (c) 2014 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/public-api/actors/text-actor.h>
23 #include <dali-toolkit/internal/controls/text-view/text-view-processor-types.h>
34 namespace TextViewProcessor
38 * Enum type used to update a size adding other one.
39 * If the grow type is \e GrowWidth, size's widths are added and size's height is the max of both.
40 * Alternativelly if grow type is \e GrowHeight heights are added and width is the max of both.
49 * Updates the size of a character, word, line or the whole text with a given size.
51 * For characters, words, and lines the new height will be the maximum of both sizes
52 * and the new width will be the sum of both.
54 * For the whole text, the new height will be the sum of both and the new width the max of both.
56 * The \e type parameter speficies which type of update is required.
58 * @param[in,out] size1 The current size to be updated.
59 * @param[in] size2 The size of a character, word, or a line.
60 * @param[in] type Type of update.
62 void UpdateSize( Size& size1, const Size& size2, SizeGrowType type = GrowWidth );
65 * Return the type of separator (white space, new line or no separator) for the given character.
67 * @param[in] character The given character.
69 * @return The type of separator.
71 TextSeparatorType GetTextSeparatorType( const Character& character );
74 * Choose a suitable font family name for the given character.
76 * It may modify the text-style of the given character by setting a suitable font-family.
78 * @param[in] character The character.
79 * @param[in,out] style The style of the character.
81 void ChooseFontFamilyName( const Character& character, TextStyle& style );
84 * Retrieves the line, word and character indices for the given global character's index.
86 * i.e. The retrieved indices for the character 18 (j) for the following text would be: 2, 0, 2, 0
93 * @param[in] index The global character index.
94 * @param[in] textLayoutInfo Contains info about the number of characters per word, and line.
95 * @param[out] indices Index to the line, word and character within the word where the given character is located.
97 void GetIndicesFromGlobalCharacterIndex( std::size_t index,
98 const TextLayoutInfo& textLayoutInfo,
99 TextInfoIndices& indices );
102 * Clear the text of the given text-actors.
104 * @param[in] textActors The given text-actors.
106 void ClearText( std::vector<TextActor>& textActors );
108 } //namespace TextViewProcessor
110 } //namespace Internal
112 } //namespace Toolkit
116 #endif // __DALI_TOOLKIT_INTERNAL_TEXT_VIEW_PROCESSOR_HELPER_FUNCTIONS_H__