Merge "Support Asynchronous Loading of Animated Image" into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / text-controls / text-label-devel.h
1 #ifndef DALI_TOOLKIT_TEXT_LABEL_DEVEL_H
2 #define DALI_TOOLKIT_TEXT_LABEL_DEVEL_H
3
4 /*
5  * Copyright (c) 2020 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali-toolkit/public-api/controls/text-controls/text-label.h>
23
24 namespace Dali
25 {
26
27 namespace Toolkit
28 {
29
30 namespace DevelTextLabel
31 {
32
33 namespace Property
34 {
35   enum Type
36   {
37     TEXT = Dali::Toolkit::TextLabel::Property::TEXT,
38     FONT_FAMILY = Dali::Toolkit::TextLabel::Property::FONT_FAMILY,
39     FONT_STYLE = Dali::Toolkit::TextLabel::Property::FONT_STYLE,
40     POINT_SIZE = Dali::Toolkit::TextLabel::Property::POINT_SIZE,
41     MULTI_LINE = Dali::Toolkit::TextLabel::Property::MULTI_LINE,
42     HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT,
43     VERTICAL_ALIGNMENT = Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT,
44     ENABLE_MARKUP = Dali::Toolkit::TextLabel::Property::ENABLE_MARKUP,
45     ENABLE_AUTO_SCROLL = Dali::Toolkit::TextLabel::Property::ENABLE_AUTO_SCROLL,
46     AUTO_SCROLL_SPEED = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_SPEED,
47     AUTO_SCROLL_LOOP_COUNT = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_LOOP_COUNT,
48     AUTO_SCROLL_GAP = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_GAP,
49     LINE_SPACING = Dali::Toolkit::TextLabel::Property::LINE_SPACING,
50     UNDERLINE = Dali::Toolkit::TextLabel::Property::UNDERLINE,
51     SHADOW = Dali::Toolkit::TextLabel::Property::SHADOW,
52     EMBOSS = Dali::Toolkit::TextLabel::Property::EMBOSS,
53     OUTLINE = Dali::Toolkit::TextLabel::Property::OUTLINE,
54     PIXEL_SIZE = Dali::Toolkit::TextLabel::Property::PIXEL_SIZE,
55     ELLIPSIS = Dali::Toolkit::TextLabel::Property::ELLIPSIS,
56     AUTO_SCROLL_LOOP_DELAY = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_LOOP_DELAY,
57     AUTO_SCROLL_STOP_MODE = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_STOP_MODE,
58     LINE_COUNT = Dali::Toolkit::TextLabel::Property::LINE_COUNT,
59     LINE_WRAP_MODE = Dali::Toolkit::TextLabel::Property::LINE_WRAP_MODE,
60
61     /**
62      * @brief The direction of the layout.
63      * @details Name "textDirection", type [Type](@ref Dali::Toolkit::DevelText::TextDirection::Type) (Property::INTEGER), Read/Write
64      * @note The text direction can be changed only by replacing the text itself.
65      * @see TextDirection::Type for supported values.
66      */
67     TEXT_DIRECTION,
68
69     /**
70      * @brief Alignment of text within area of single line
71      * @details Name "verticalLineAlignment", type [Type](@ref Dali::Toolkit::DevelText::VerticalLineAlignment::Type) (Property::INTEGER), Read/Write
72      * @note The default value is TOP
73      * @see VerticalLineAlignment::Type for supported values
74      */
75     VERTICAL_LINE_ALIGNMENT,
76
77     /**
78      * @brief The default text background parameters.
79      * @details Name "textBackground", type Property::MAP.
80      * @note Use "textBackground" as property name to avoid conflict with Control's "background" property
81      *
82      * The background map contains the following keys:
83      *
84      * | %Property Name       | Type     | Required | Description                                                                                                        |
85      * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
86      * | enable               | BOOLEAN  | No       | True to enable the background or false to disable (the default value is false)                                     |
87      * | color                | VECTOR4  | No       | The color of the background (the default value is Color::CYAN)                                                     |
88      */
89     BACKGROUND,
90
91     /**
92      * @brief Ignore spaces after text.
93      * @details Name "ignoreSpacesAfterText", type (Property::BOLEAN), Read/Write
94      * @note The default value is true
95      */
96     IGNORE_SPACES_AFTER_TEXT,
97
98     /**
99      * @brief Modifies the default text alignment to match the direction of the system language.
100      * @details Name "matchSystemLanguageDirection", type (Property::BOLEAN), Read/Write
101      * @note The default value is false
102      *
103      * If MATCH_SYSTEM_LANGUAGE_DIRECTION property set true, the default text alignment to match the direction of the system language.
104      *
105      * ex) Current system language direction LTR.
106      *     TextLabel::New("Hello world \n  ﻡﺮﺤﺑﺍ. ");
107      *     TextLabel::Property::HORIZONTAL_ALIGNMENT, "END"
108      *
109      * | TextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION                 |
110      * |-----------------------------------------------------------------------
111      * |        false (default)            |                true              |
112      * |-----------------------------------|----------------------------------|
113      * |                     Hello world   |                  Hello world     |
114      * |   ﻡﺮﺤﺑﺍ.                          |                      ﻡﺮﺤﺑﺍ.      |
115      *
116      */
117     MATCH_SYSTEM_LANGUAGE_DIRECTION,
118
119     /**
120      * @brief The text fit parameters.
121      * @details Name "textFit", type Property::MAP.
122      * @note The default value is false
123      *
124      * The textFit map contains the following keys:
125      *
126      * | %Property Name       | Type     | Required | Description                                                                                                        |
127      * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
128      * | enable               | BOOLEAN  | No       | True to enable the text fit or false to disable (the default value is false)                                     |
129      * | minSize              | FLOAT    | No       | Minimum Size for text fit (the default value is 10.f)                                                     |
130      * | maxSize              | FLOAT    | No       | Maximum Size for text fit (the default value is 100.f)                                                     |
131      * | stepSize             | FLOAT    | No       | Step Size for font increase (the default value is 1.f)                                                     |
132      * | fontSizeType         | STRING   | No       | The size type of font, You can choose between "pointSize" or "pixelSize". (the default value is "pointSize")                                                     |
133      */
134     TEXT_FIT,
135
136     /**
137      * @brief Sets the height of the line in points.
138      * @details Name "lineSize", type Property::FLOAT.
139      * @note If the font size is larger than the line size, it works with the font size.
140      */
141     MIN_LINE_SIZE,
142
143     /**
144      * @brief The type of rendering e.g. bitmap-based.
145      * @details Name "renderingBackend", type Property::INT.
146      */
147     RENDERING_BACKEND,
148   };
149
150 } // namespace Property
151
152 } // namespace DevelTextLabel
153
154 } // namespace Toolkit
155
156 } // namespace Dali
157
158 #endif // DALI_TOOLKIT_TEXT_LABEL_DEVEL_H