91904418b8ada05982a1fd7aad4b80040b0c85fa
[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) 2018 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     RENDERING_BACKEND = Dali::Toolkit::TextLabel::Property::RENDERING_BACKEND,
38     TEXT = Dali::Toolkit::TextLabel::Property::TEXT,
39     FONT_FAMILY = Dali::Toolkit::TextLabel::Property::FONT_FAMILY,
40     FONT_STYLE = Dali::Toolkit::TextLabel::Property::FONT_STYLE,
41     POINT_SIZE = Dali::Toolkit::TextLabel::Property::POINT_SIZE,
42     MULTI_LINE = Dali::Toolkit::TextLabel::Property::MULTI_LINE,
43     HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT,
44     VERTICAL_ALIGNMENT = Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT,
45     UNUSED_PROPERTY_TEXT_COLOR = Dali::Toolkit::TextLabel::Property::UNUSED_PROPERTY_TEXT_COLOR,
46     RESERVED_PROPERTY_01 = Dali::Toolkit::TextLabel::Property::RESERVED_PROPERTY_01,
47     RESERVED_PROPERTY_02 = Dali::Toolkit::TextLabel::Property::RESERVED_PROPERTY_02,
48     RESERVED_PROPERTY_03 = Dali::Toolkit::TextLabel::Property::RESERVED_PROPERTY_03,
49     RESERVED_PROPERTY_04 = Dali::Toolkit::TextLabel::Property::RESERVED_PROPERTY_04,
50     RESERVED_PROPERTY_05 = Dali::Toolkit::TextLabel::Property::RESERVED_PROPERTY_05,
51     ENABLE_MARKUP = Dali::Toolkit::TextLabel::Property::ENABLE_MARKUP,
52     ENABLE_AUTO_SCROLL = Dali::Toolkit::TextLabel::Property::ENABLE_AUTO_SCROLL,
53     AUTO_SCROLL_SPEED = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_SPEED,
54     AUTO_SCROLL_LOOP_COUNT = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_LOOP_COUNT,
55     AUTO_SCROLL_GAP = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_GAP,
56     LINE_SPACING = Dali::Toolkit::TextLabel::Property::LINE_SPACING,
57     UNDERLINE = Dali::Toolkit::TextLabel::Property::UNDERLINE,
58     SHADOW = Dali::Toolkit::TextLabel::Property::SHADOW,
59     EMBOSS = Dali::Toolkit::TextLabel::Property::EMBOSS,
60     OUTLINE = Dali::Toolkit::TextLabel::Property::OUTLINE,
61     PIXEL_SIZE = Dali::Toolkit::TextLabel::Property::PIXEL_SIZE,
62     ELLIPSIS = Dali::Toolkit::TextLabel::Property::ELLIPSIS,
63     AUTO_SCROLL_LOOP_DELAY = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_LOOP_DELAY,
64     AUTO_SCROLL_STOP_MODE = Dali::Toolkit::TextLabel::Property::AUTO_SCROLL_STOP_MODE,
65     LINE_COUNT = Dali::Toolkit::TextLabel::Property::LINE_COUNT,
66     LINE_WRAP_MODE = Dali::Toolkit::TextLabel::Property::LINE_WRAP_MODE,
67
68     /**
69      * @brief The direction of the layout.
70      * @details Name "textDirection", type [Type](@ref Dali::Toolkit::DevelText::TextDirection::Type) (Property::INTEGER), Read/Write
71      * @note The text direction can be changed only by replacing the text itself.
72      * @see TextDirection::Type for supported values.
73      */
74     TEXT_DIRECTION,
75
76     /**
77      * @brief Alignment of text within area of single line
78      * @details Name "verticalLineAlignment", type [Type](@ref Dali::Toolkit::DevelText::VerticalLineAlignment::Type) (Property::INTEGER), Read/Write
79      * @note The default value is TOP
80      * @see VerticalLineAlignment::Type for supported values
81      */
82     VERTICAL_LINE_ALIGNMENT,
83
84     /**
85      * @brief The default text background parameters.
86      * @details Name "textBackground", type Property::MAP.
87      * @note Use "textBackground" as property name to avoid conflict with Control's "background" property
88      *
89      * The background map contains the following keys:
90      *
91      * | %Property Name       | Type     | Required | Description                                                                                                        |
92      * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
93      * | enable               | BOOLEAN  | No       | True to enable the background or false to disable (the default value is false)                                     |
94      * | color                | VECTOR4  | No       | The color of the background (the default value is Color::CYAN)                                                     |
95      */
96     BACKGROUND,
97
98     /**
99      * @brief Ignore spaces after text.
100      * @details Name "ignoreSpacesAfterText", type (Property::BOLEAN), Read/Write
101      * @note The default value is true
102      */
103     IGNORE_SPACES_AFTER_TEXT,
104
105     /**
106      * @brief Modifies the default text alignment to match the direction of the system language.
107      * @details Name "matchSystemLanguageDirection", type (Property::BOLEAN), Read/Write
108      * @note The default value is false
109      *
110      * If MATCH_SYSTEM_LANGUAGE_DIRECTION property set true, the default text alignment to match the direction of the system language.
111      *
112      * ex) Current system language direction LTR.
113      *     TextLabel::New("Hello world \n  ﻡﺮﺤﺑﺍ. ");
114      *     TextLabel::Property::HORIZONTAL_ALIGNMENT, "END"
115      *
116      * | TextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION                 |
117      * |-----------------------------------------------------------------------
118      * |        false (default)            |                true              |
119      * |-----------------------------------|----------------------------------|
120      * |                     Hello world   |                  Hello world     |
121      * |   ﻡﺮﺤﺑﺍ.                          |                      ﻡﺮﺤﺑﺍ.      |
122      *
123      */
124     MATCH_SYSTEM_LANGUAGE_DIRECTION,
125
126     /**
127      * @brief The text fit parameters.
128      * @details Name "textFit", type Property::MAP.
129      * @note The default value is false
130      *
131      * The textFit map contains the following keys:
132      *
133      * | %Property Name       | Type     | Required | Description                                                                                                        |
134      * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
135      * | enable               | BOOLEAN  | No       | True to enable the text fit or false to disable (the default value is false)                                     |
136      * | minSize              | FLOAT    | No       | Minimum Size for text fit (the default value is 10.f)                                                     |
137      * | maxSize              | FLOAT    | No       | Maximum Size for text fit (the default value is 100.f)                                                     |
138      * | stepSize             | FLOAT    | No       | Step Size for font increase (the default value is 1.f)                                                     |
139      * | fontSizeType         | STRING   | No       | The size type of font, You can choose between "pointSize" or "pixelSize". (the default value is "pointSize")                                                     |
140      */
141     TEXT_FIT,
142
143     /**
144      * @brief Sets the height of the line in points.
145      * @details Name "lineSize", type Property::FLOAT.
146      * @note If the font size is larger than the line size, it works with the font size.
147      */
148     MIN_LINE_SIZE,
149
150   };
151
152 } // namespace Property
153
154 } // namespace DevelTextLabel
155
156 } // namespace Toolkit
157
158 } // namespace Dali
159
160 #endif // DALI_TOOLKIT_TEXT_LABEL_DEVEL_H