1 #ifndef DALI_TOOLKIT_TEXT_LABEL_DEVEL_H
2 #define DALI_TOOLKIT_TEXT_LABEL_DEVEL_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/public-api/controls/text-controls/text-label.h>
28 namespace DevelTextLabel
34 TEXT = Dali::Toolkit::TextLabel::Property::TEXT,
35 FONT_FAMILY = Dali::Toolkit::TextLabel::Property::FONT_FAMILY,
36 FONT_STYLE = Dali::Toolkit::TextLabel::Property::FONT_STYLE,
37 POINT_SIZE = Dali::Toolkit::TextLabel::Property::POINT_SIZE,
38 MULTI_LINE = Dali::Toolkit::TextLabel::Property::MULTI_LINE,
39 HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT,
40 VERTICAL_ALIGNMENT = Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT,
41 ENABLE_MARKUP = Dali::Toolkit::TextLabel::Property::ENABLE_MARKUP,
42 ENABLE_AUTO_SCROLL = Dali::Toolkit::TextLabel::Property::ENABLE_AUTO_SCROLL,
43 AUTO_SCROLL_SPEED = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_SPEED,
44 AUTO_SCROLL_LOOP_COUNT = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_LOOP_COUNT,
45 AUTO_SCROLL_GAP = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_GAP,
46 LINE_SPACING = Dali::Toolkit::TextLabel::Property::LINE_SPACING,
47 UNDERLINE = Dali::Toolkit::TextLabel::Property::UNDERLINE,
48 SHADOW = Dali::Toolkit::TextLabel::Property::SHADOW,
49 EMBOSS = Dali::Toolkit::TextLabel::Property::EMBOSS,
50 OUTLINE = Dali::Toolkit::TextLabel::Property::OUTLINE,
51 PIXEL_SIZE = Dali::Toolkit::TextLabel::Property::PIXEL_SIZE,
52 ELLIPSIS = Dali::Toolkit::TextLabel::Property::ELLIPSIS,
53 AUTO_SCROLL_LOOP_DELAY = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_LOOP_DELAY,
54 AUTO_SCROLL_STOP_MODE = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_STOP_MODE,
55 LINE_COUNT = Dali::Toolkit::TextLabel::Property::LINE_COUNT,
56 LINE_WRAP_MODE = Dali::Toolkit::TextLabel::Property::LINE_WRAP_MODE,
59 * @brief The direction of the layout.
60 * @details Name "textDirection", type [Type](@ref Dali::Toolkit::DevelText::TextDirection::Type) (Property::INTEGER), Read/Write
61 * @note The text direction can be changed only by replacing the text itself.
62 * @see TextDirection::Type for supported values.
67 * @brief Alignment of text within area of single line
68 * @details Name "verticalLineAlignment", type [Type](@ref Dali::Toolkit::DevelText::VerticalLineAlignment::Type) (Property::INTEGER), Read/Write
69 * @note The default value is TOP
70 * @see VerticalLineAlignment::Type for supported values
72 VERTICAL_LINE_ALIGNMENT,
75 * @brief The default text background parameters.
76 * @details Name "textBackground", type Property::MAP.
77 * @note Use "textBackground" as property name to avoid conflict with Control's "background" property
79 * The background map contains the following keys:
81 * | %Property Name | Type | Required | Description |
82 * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
83 * | enable | BOOLEAN | No | True to enable the background or false to disable (the default value is false) |
84 * | color | VECTOR4 | No | The color of the background (the default value is Color::CYAN) |
89 * @brief Ignore spaces after text.
90 * @details Name "ignoreSpacesAfterText", type (Property::BOLEAN), Read/Write
91 * @note The default value is true
93 IGNORE_SPACES_AFTER_TEXT,
96 * @brief Modifies the default text alignment to match the direction of the system language.
97 * @details Name "matchSystemLanguageDirection", type (Property::BOLEAN), Read/Write
98 * @note The default value is true
100 * If MATCH_SYSTEM_LANGUAGE_DIRECTION property set true, the default text alignment to match the direction of the system language.
102 * ex) Current system language direction LTR.
103 * TextLabel::New("Hello world \n ﻡﺮﺤﺑﺍ. ");
104 * TextLabel::Property::HORIZONTAL_ALIGNMENT, "END"
106 * | TextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION |
107 * |-----------------------------------------------------------------------
108 * | false | true (default) |
109 * |-----------------------------------|----------------------------------|
110 * | Hello world | Hello world |
111 * | ﻡﺮﺤﺑﺍ. | ﻡﺮﺤﺑﺍ. |
114 MATCH_SYSTEM_LANGUAGE_DIRECTION,
117 * @brief The text fit parameters.
118 * @details Name "textFit", type Property::MAP.
119 * @note The default value is false
121 * The textFit map contains the following keys:
123 * | %Property Name | Type | Required | Description |
124 * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
125 * | enable | BOOLEAN | No | True to enable the text fit or false to disable (the default value is false) |
126 * | minSize | FLOAT | No | Minimum Size for text fit (the default value is 10.f) |
127 * | maxSize | FLOAT | No | Maximum Size for text fit (the default value is 100.f) |
128 * | stepSize | FLOAT | No | Step Size for font increase (the default value is 1.f) |
129 * | fontSizeType | STRING | No | The size type of font, You can choose between "pointSize" or "pixelSize". (the default value is "pointSize") |
134 * @brief Sets the height of the line in points.
135 * @details Name "lineSize", type Property::FLOAT.
136 * @note If the font size is larger than the line size, it works with the font size.
141 * @brief The type of rendering e.g. bitmap-based.
142 * @details Name "renderingBackend", type Property::INT.
147 * @brief The font size scale for scaling the specified font size up or down.
148 * @details name "fontSizeScale", type Property::FLOAT.
149 * @note The default value is 1.0 which does nothing.
150 * The given font size scale value is used for multiplying the specified font size before querying fonts.
152 * e.g. The rendering results of both cases are same.
153 * - fontSize: 15pt, fontSizeScale: 1.0
154 * - fontSize: 10pt, fontSizeScale: 1.5
159 * @brief The enumerations used to specify whether to position the ellipsis at the END, START or MIDDLE of the text.
160 * @details Name "EllipsisPosition", type [Type](@ref Dali::Toolkit::DevelText::EllipsisPosition::Type) (Property::INTEGER), or Property::STRING. Read/Write
161 * @note Default is EllipsisPosition::END.
162 * @see DevelText::EllipsisPosition
167 } // namespace Property
170 * @brief Anchor clicked signal type.
173 * - const char* : href of clicked anchor.
174 * - uint32_t : length of href.
176 using AnchorClickedSignalType = Signal<void(TextLabel, const char*, uint32_t)>;
179 * @brief This signal is emitted when the anchor is clicked.
181 * A callback of the following type may be connected:
183 * void YourCallbackName(TextLabel textLabel, const char* href, uint32_t hrefLength);
185 * @param[in] textLabel The instance of TextLabel.
186 * @return The signal to connect to.
188 DALI_TOOLKIT_API AnchorClickedSignalType& AnchorClickedSignal(TextLabel textLabel);
190 } // namespace DevelTextLabel
192 } // namespace Toolkit
196 #endif // DALI_TOOLKIT_TEXT_LABEL_DEVEL_H