1 #ifndef DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H
2 #define DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H
5 * Copyright (c) 2017 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-editor.h>
30 namespace DevelTextEditor
37 RENDERING_BACKEND = Dali::Toolkit::TextEditor::Property::RENDERING_BACKEND,
38 TEXT = Dali::Toolkit::TextEditor::Property::TEXT,
39 TEXT_COLOR = Dali::Toolkit::TextEditor::Property::TEXT_COLOR,
40 FONT_FAMILY = Dali::Toolkit::TextEditor::Property::FONT_FAMILY,
41 FONT_STYLE = Dali::Toolkit::TextEditor::Property::FONT_STYLE,
42 POINT_SIZE = Dali::Toolkit::TextEditor::Property::POINT_SIZE,
43 HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextEditor::Property::HORIZONTAL_ALIGNMENT,
44 SCROLL_THRESHOLD = Dali::Toolkit::TextEditor::Property::SCROLL_THRESHOLD,
45 SCROLL_SPEED = Dali::Toolkit::TextEditor::Property::SCROLL_SPEED,
46 PRIMARY_CURSOR_COLOR = Dali::Toolkit::TextEditor::Property::PRIMARY_CURSOR_COLOR,
47 SECONDARY_CURSOR_COLOR = Dali::Toolkit::TextEditor::Property::SECONDARY_CURSOR_COLOR,
48 ENABLE_CURSOR_BLINK = Dali::Toolkit::TextEditor::Property::ENABLE_CURSOR_BLINK,
49 CURSOR_BLINK_INTERVAL = Dali::Toolkit::TextEditor::Property::CURSOR_BLINK_INTERVAL,
50 CURSOR_BLINK_DURATION = Dali::Toolkit::TextEditor::Property::CURSOR_BLINK_DURATION,
51 CURSOR_WIDTH = Dali::Toolkit::TextEditor::Property::CURSOR_WIDTH,
52 GRAB_HANDLE_IMAGE = Dali::Toolkit::TextEditor::Property::GRAB_HANDLE_IMAGE,
53 GRAB_HANDLE_PRESSED_IMAGE = Dali::Toolkit::TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE,
54 SELECTION_HANDLE_IMAGE_LEFT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT,
55 SELECTION_HANDLE_IMAGE_RIGHT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT,
56 SELECTION_HANDLE_PRESSED_IMAGE_LEFT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT,
57 SELECTION_HANDLE_PRESSED_IMAGE_RIGHT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT,
58 SELECTION_HANDLE_MARKER_IMAGE_LEFT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT,
59 SELECTION_HANDLE_MARKER_IMAGE_RIGHT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT,
60 SELECTION_HIGHLIGHT_COLOR = Dali::Toolkit::TextEditor::Property::SELECTION_HIGHLIGHT_COLOR,
61 DECORATION_BOUNDING_BOX = Dali::Toolkit::TextEditor::Property::DECORATION_BOUNDING_BOX,
62 ENABLE_MARKUP = Dali::Toolkit::TextEditor::Property::ENABLE_MARKUP,
63 INPUT_COLOR = Dali::Toolkit::TextEditor::Property::INPUT_COLOR,
64 INPUT_FONT_FAMILY = Dali::Toolkit::TextEditor::Property::INPUT_FONT_FAMILY,
65 INPUT_FONT_STYLE = Dali::Toolkit::TextEditor::Property::INPUT_FONT_STYLE,
66 INPUT_POINT_SIZE = Dali::Toolkit::TextEditor::Property::INPUT_POINT_SIZE,
67 LINE_SPACING = Dali::Toolkit::TextEditor::Property::LINE_SPACING,
68 INPUT_LINE_SPACING = Dali::Toolkit::TextEditor::Property::INPUT_LINE_SPACING,
69 UNDERLINE = Dali::Toolkit::TextEditor::Property::UNDERLINE,
70 INPUT_UNDERLINE = Dali::Toolkit::TextEditor::Property::INPUT_UNDERLINE,
71 SHADOW = Dali::Toolkit::TextEditor::Property::SHADOW,
72 INPUT_SHADOW = Dali::Toolkit::TextEditor::Property::INPUT_SHADOW,
73 EMBOSS = Dali::Toolkit::TextEditor::Property::EMBOSS,
74 INPUT_EMBOSS = Dali::Toolkit::TextEditor::Property::INPUT_EMBOSS,
75 OUTLINE = Dali::Toolkit::TextEditor::Property::OUTLINE,
76 INPUT_OUTLINE = Dali::Toolkit::TextEditor::Property::INPUT_OUTLINE,
79 * @brief name "smoothScroll", type bool
80 * @details Enable or disable the smooth scroll animation
82 SMOOTH_SCROLL = INPUT_OUTLINE + 1,
85 * @brief name "smoothScrollDuration", type float
86 * @details Sets the duration of smooth scroll animation
88 SMOOTH_SCROLL_DURATION,
91 * @brief name "enableScrollBar", type bool
92 * @details Enable or disable the scroll bar
97 * @brief name "scrollBarShowDuration", type float
98 * @details Sets the duration of scroll bar to show
100 SCROLL_BAR_SHOW_DURATION,
103 * @brief name "scrollBarFadeDuration", type float
104 * @details Sets the duration of scroll bar to fade out
106 SCROLL_BAR_FADE_DURATION,
109 * @brief The size of font in pixels.
111 * Conversion from Point size to Pixel size :
112 * Pixel size = Point size * DPI / 72
113 * @details name "pixelSize", type float
118 * @brief The line count of text.
119 * @details name "lineCount", type int
120 * @note this property is read-only.
125 * @brief The text to display when the TextEditor is empty and inactive.
126 * @details name "placeholderText", type string
131 * @brief The placeholder-text color.
132 * @details name "placeholderTextColor", type vector4
134 PLACEHOLDER_TEXT_COLOR,
137 * @brief Enables Text selection, such as the cursor, handle, clipboard, and highlight color.
138 * @details name "enableSelection", type bool
143 * @brief Sets the placeholder : text, color, font family, font style, point size, and pixel size.
146 * Property::Map propertyMap;
147 * propertyMap["placeholderText"] = "Setting Placeholder Text";
148 * propertyMap["placeholderTextFocused"] = "Setting Placeholder Text Focused";
149 * propertyMap["placeholderColor"] = Color::RED;
150 * propertyMap["placeholderFontFamily"] = "Arial";
151 * propertyMap["placeholderPointSize"] = 12.0f;
153 * Property::Map fontStyleMap;
154 * fontStyleMap.Insert( "weight", "bold" );
155 * fontStyleMap.Insert( "width", "condensed" );
156 * fontStyleMap.Insert( "slant", "italic" );
157 * propertyMap["placeholderFontStyle"] = fontStyleMap;
159 * editor.SetProperty( DevelTextEditor::Property::PLACEHOLDER, propertyMap );
162 * @details name "placeholder", type MAP
167 * @brief line wrap mode when the text lines over layout width.
168 * @details name "lineWrapMode", type string.
172 } // namespace Property
178 STARTED, ///< Scrolling is started.
179 FINISHED ///< Scrolling is finished.
181 } // namespace Scroll
183 typedef Signal< void ( TextEditor, Scroll::Type ) > ScrollStateChangedSignalType;
186 * @brief This signal is emitted when TextEditor scrolling is started or finished.
188 * A callback of the following type may be connected:
190 * void YourCallbackName( ScrollState::Type type );
192 * type: Whether the scrolling is started or finished.
193 * @return The signal to connect to
195 DALI_IMPORT_API ScrollStateChangedSignalType& ScrollStateChangedSignal( TextEditor textEditor );
197 } // namespace DevelTextEditor
199 } // namespace Toolkit
203 #endif // DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H