X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fcontrols%2Ftext-controls%2Ftext-field-devel.h;h=922632b538234870f1417d8e6939aa760b757447;hp=b67850809e321fdc516d42348ed2ba3168db6174;hb=60d99d04d7677a1b91d4f2fdd9e74bc5e1b5e7bf;hpb=427f642f46df778c141cc7ab9718ce33d0ce01e1 diff --git a/dali-toolkit/devel-api/controls/text-controls/text-field-devel.h b/dali-toolkit/devel-api/controls/text-controls/text-field-devel.h index b678508..922632b 100644 --- a/dali-toolkit/devel-api/controls/text-controls/text-field-devel.h +++ b/dali-toolkit/devel-api/controls/text-controls/text-field-devel.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_TEXT_FIELD_DEVEL_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,120 +17,159 @@ * limitations under the License. * */ +// EXTERNAL INCLUDES +#include // INTERNAL INCLUDES #include namespace Dali { - namespace Toolkit { - namespace DevelTextField { - namespace Property { - enum Type - { - RENDERING_BACKEND = Dali::Toolkit::TextField::Property::RENDERING_BACKEND, - TEXT = Dali::Toolkit::TextField::Property::TEXT, - PLACEHOLDER_TEXT = Dali::Toolkit::TextField::Property::PLACEHOLDER_TEXT, - PLACEHOLDER_TEXT_FOCUSED = Dali::Toolkit::TextField::Property::PLACEHOLDER_TEXT_FOCUSED, - FONT_FAMILY = Dali::Toolkit::TextField::Property::FONT_FAMILY, - FONT_STYLE = Dali::Toolkit::TextField::Property::FONT_STYLE, - POINT_SIZE = Dali::Toolkit::TextField::Property::POINT_SIZE, - MAX_LENGTH = Dali::Toolkit::TextField::Property::MAX_LENGTH, - EXCEED_POLICY = Dali::Toolkit::TextField::Property::EXCEED_POLICY, - HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextField::Property::HORIZONTAL_ALIGNMENT, - VERTICAL_ALIGNMENT = Dali::Toolkit::TextField::Property::VERTICAL_ALIGNMENT, - TEXT_COLOR = Dali::Toolkit::TextField::Property::TEXT_COLOR, - PLACEHOLDER_TEXT_COLOR = Dali::Toolkit::TextField::Property::PLACEHOLDER_TEXT_COLOR, - SHADOW_OFFSET = Dali::Toolkit::TextField::Property::SHADOW_OFFSET, - SHADOW_COLOR = Dali::Toolkit::TextField::Property::SHADOW_COLOR, - PRIMARY_CURSOR_COLOR = Dali::Toolkit::TextField::Property::PRIMARY_CURSOR_COLOR, - SECONDARY_CURSOR_COLOR = Dali::Toolkit::TextField::Property::SECONDARY_CURSOR_COLOR, - ENABLE_CURSOR_BLINK = Dali::Toolkit::TextField::Property::ENABLE_CURSOR_BLINK, - CURSOR_BLINK_INTERVAL = Dali::Toolkit::TextField::Property::CURSOR_BLINK_INTERVAL, - CURSOR_BLINK_DURATION = Dali::Toolkit::TextField::Property::CURSOR_BLINK_DURATION, - CURSOR_WIDTH = Dali::Toolkit::TextField::Property::CURSOR_WIDTH, - GRAB_HANDLE_IMAGE = Dali::Toolkit::TextField::Property::GRAB_HANDLE_IMAGE, - GRAB_HANDLE_PRESSED_IMAGE = Dali::Toolkit::TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, - SCROLL_THRESHOLD = Dali::Toolkit::TextField::Property::SCROLL_THRESHOLD, - SCROLL_SPEED = Dali::Toolkit::TextField::Property::SCROLL_SPEED, - SELECTION_HANDLE_IMAGE_LEFT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, - SELECTION_HANDLE_IMAGE_RIGHT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, - SELECTION_HANDLE_PRESSED_IMAGE_LEFT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, - SELECTION_HANDLE_PRESSED_IMAGE_RIGHT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, - SELECTION_HANDLE_MARKER_IMAGE_LEFT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, - SELECTION_HANDLE_MARKER_IMAGE_RIGHT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, - SELECTION_HIGHLIGHT_COLOR = Dali::Toolkit::TextField::Property::SELECTION_HIGHLIGHT_COLOR, - DECORATION_BOUNDING_BOX = Dali::Toolkit::TextField::Property::DECORATION_BOUNDING_BOX, - INPUT_METHOD_SETTINGS = Dali::Toolkit::TextField::Property::INPUT_METHOD_SETTINGS, - INPUT_COLOR = Dali::Toolkit::TextField::Property::INPUT_COLOR, - ENABLE_MARKUP = Dali::Toolkit::TextField::Property::ENABLE_MARKUP, - INPUT_FONT_FAMILY = Dali::Toolkit::TextField::Property::INPUT_FONT_FAMILY, - INPUT_FONT_STYLE = Dali::Toolkit::TextField::Property::INPUT_FONT_STYLE, - INPUT_POINT_SIZE = Dali::Toolkit::TextField::Property::INPUT_POINT_SIZE, - UNDERLINE = Dali::Toolkit::TextField::Property::UNDERLINE, - INPUT_UNDERLINE = Dali::Toolkit::TextField::Property::INPUT_UNDERLINE, - SHADOW = Dali::Toolkit::TextField::Property::SHADOW, - INPUT_SHADOW = Dali::Toolkit::TextField::Property::INPUT_SHADOW, - EMBOSS = Dali::Toolkit::TextField::Property::EMBOSS, - INPUT_EMBOSS = Dali::Toolkit::TextField::Property::INPUT_EMBOSS, - OUTLINE = Dali::Toolkit::TextField::Property::OUTLINE, - INPUT_OUTLINE = Dali::Toolkit::TextField::Property::INPUT_OUTLINE, - - /** - * @brief Hides the input characters and instead shows a default character for password or pin entry. - * @details name "hiddenInputSettings", type map. - * @note Optional. - * @see HiddenInput +enum +{ + TEXT = Dali::Toolkit::TextField::Property::TEXT, + PLACEHOLDER_TEXT = Dali::Toolkit::TextField::Property::PLACEHOLDER_TEXT, + PLACEHOLDER_TEXT_FOCUSED = Dali::Toolkit::TextField::Property::PLACEHOLDER_TEXT_FOCUSED, + FONT_FAMILY = Dali::Toolkit::TextField::Property::FONT_FAMILY, + FONT_STYLE = Dali::Toolkit::TextField::Property::FONT_STYLE, + POINT_SIZE = Dali::Toolkit::TextField::Property::POINT_SIZE, + MAX_LENGTH = Dali::Toolkit::TextField::Property::MAX_LENGTH, + EXCEED_POLICY = Dali::Toolkit::TextField::Property::EXCEED_POLICY, + HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextField::Property::HORIZONTAL_ALIGNMENT, + VERTICAL_ALIGNMENT = Dali::Toolkit::TextField::Property::VERTICAL_ALIGNMENT, + TEXT_COLOR = Dali::Toolkit::TextField::Property::TEXT_COLOR, + PLACEHOLDER_TEXT_COLOR = Dali::Toolkit::TextField::Property::PLACEHOLDER_TEXT_COLOR, + PRIMARY_CURSOR_COLOR = Dali::Toolkit::TextField::Property::PRIMARY_CURSOR_COLOR, + SECONDARY_CURSOR_COLOR = Dali::Toolkit::TextField::Property::SECONDARY_CURSOR_COLOR, + ENABLE_CURSOR_BLINK = Dali::Toolkit::TextField::Property::ENABLE_CURSOR_BLINK, + CURSOR_BLINK_INTERVAL = Dali::Toolkit::TextField::Property::CURSOR_BLINK_INTERVAL, + CURSOR_BLINK_DURATION = Dali::Toolkit::TextField::Property::CURSOR_BLINK_DURATION, + CURSOR_WIDTH = Dali::Toolkit::TextField::Property::CURSOR_WIDTH, + GRAB_HANDLE_IMAGE = Dali::Toolkit::TextField::Property::GRAB_HANDLE_IMAGE, + GRAB_HANDLE_PRESSED_IMAGE = Dali::Toolkit::TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, + SCROLL_THRESHOLD = Dali::Toolkit::TextField::Property::SCROLL_THRESHOLD, + SCROLL_SPEED = Dali::Toolkit::TextField::Property::SCROLL_SPEED, + SELECTION_HANDLE_IMAGE_LEFT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, + SELECTION_HANDLE_IMAGE_RIGHT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, + SELECTION_HANDLE_PRESSED_IMAGE_LEFT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, + SELECTION_HANDLE_PRESSED_IMAGE_RIGHT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, + SELECTION_HANDLE_MARKER_IMAGE_LEFT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, + SELECTION_HANDLE_MARKER_IMAGE_RIGHT = Dali::Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, + SELECTION_HIGHLIGHT_COLOR = Dali::Toolkit::TextField::Property::SELECTION_HIGHLIGHT_COLOR, + DECORATION_BOUNDING_BOX = Dali::Toolkit::TextField::Property::DECORATION_BOUNDING_BOX, + INPUT_METHOD_SETTINGS = Dali::Toolkit::TextField::Property::INPUT_METHOD_SETTINGS, + INPUT_COLOR = Dali::Toolkit::TextField::Property::INPUT_COLOR, + ENABLE_MARKUP = Dali::Toolkit::TextField::Property::ENABLE_MARKUP, + INPUT_FONT_FAMILY = Dali::Toolkit::TextField::Property::INPUT_FONT_FAMILY, + INPUT_FONT_STYLE = Dali::Toolkit::TextField::Property::INPUT_FONT_STYLE, + INPUT_POINT_SIZE = Dali::Toolkit::TextField::Property::INPUT_POINT_SIZE, + UNDERLINE = Dali::Toolkit::TextField::Property::UNDERLINE, + INPUT_UNDERLINE = Dali::Toolkit::TextField::Property::INPUT_UNDERLINE, + SHADOW = Dali::Toolkit::TextField::Property::SHADOW, + INPUT_SHADOW = Dali::Toolkit::TextField::Property::INPUT_SHADOW, + EMBOSS = Dali::Toolkit::TextField::Property::EMBOSS, + INPUT_EMBOSS = Dali::Toolkit::TextField::Property::INPUT_EMBOSS, + OUTLINE = Dali::Toolkit::TextField::Property::OUTLINE, + INPUT_OUTLINE = Dali::Toolkit::TextField::Property::INPUT_OUTLINE, + HIDDEN_INPUT_SETTINGS = Dali::Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, + PIXEL_SIZE = Dali::Toolkit::TextField::Property::PIXEL_SIZE, + ENABLE_SELECTION = Dali::Toolkit::TextField::Property::ENABLE_SELECTION, + PLACEHOLDER = Dali::Toolkit::TextField::Property::PLACEHOLDER, + ELLIPSIS = Dali::Toolkit::TextField::Property::ELLIPSIS, + + /** + * @brief Enables Text selection using Shift key. + * @details Name "enableShiftSelection", type Property::BOOLEAN. */ - HIDDEN_INPUT_SETTINGS = INPUT_OUTLINE + 1, - - /** - * @brief The size of font in pixels. - * - * Conversion from Point size to Pixel size : - * Pixel size = Point size * DPI / 72 - * @details name "pixelSize", type float + ENABLE_SHIFT_SELECTION = ELLIPSIS + 1, + + /** + * @brief Enables the grab handles for text selection. + * @details Name "enableGrabHandle", type Property::BOOLEAN. + * @note The default value is true, which means the grab handles are enabled by default. */ - PIXEL_SIZE = INPUT_OUTLINE + 2, + ENABLE_GRAB_HANDLE = ELLIPSIS + 2, - /** - * @brief Enables Text selection, such as the cursor, handle, clipboard, and highlight color. - * @details name "enableSelection", type bool + /** + * @brief Modifies the default text alignment to match the direction of the system language. + * @details Name "matchSystemLanguageDirection", type (Property::BOOLEAN), Read/Write + * @note The default value is false */ - ENABLE_SELECTION = INPUT_OUTLINE + 3, - - /** - * @brief Sets the placeholder : text, color, font family, font style, point size, and pixel size. - * - * @code - * Property::Map propertyMap; - * propertyMap["placeholderText"] = "Setting Placeholder Text"; - * propertyMap["placeholderColor"] = Color::RED; - * propertyMap["placeholderFontFamily"] = "Arial"; - * propertyMap["placeholderPointSize"] = 12.0f; - * - * Property::Map fontStyleMap; - * fontstyleMap.Insert( "weight", "bold" ); - * fontstyleMap.Insert( "width", "condensed" ); - * fontstyleMap.Insert( "slant", "italic" ); - * propertyMap["placeholderFontStyle"] = fontStyleMap; - * - * field.SetProperty( DevelTextField::Property::PLACEHOLDER, propertyMap ); - * @endcode - * - * @details name "placeholder", type MAP + MATCH_SYSTEM_LANGUAGE_DIRECTION = ELLIPSIS + 3, + + /** + * @brief Enables the grab handle popup for text selection. + * @details Name "enableGrabHandlePopup", type Property::BOOLEAN. + * @note The default value is true, which means the grab handle popup is enabled by default. + */ + ENABLE_GRAB_HANDLE_POPUP = ELLIPSIS + 4, + + /** + * @brief The default text background parameters. + * @details Name "textBackground", type Property::VECTOR4. + * @note Use "textBackground" as property name to avoid conflict with Control's "background" property. + * @note The default value is Color::TRANSPARENT. + */ + BACKGROUND = ELLIPSIS + 5, + + /** + * @brief The selected text in UTF-8 format. + * @details Name "selectedText", type Property::STRING. + * @note This property is read-only. */ - PLACEHOLDER = INPUT_OUTLINE + 4 - }; + SELECTED_TEXT = ELLIPSIS + 6, + + /** + * @brief The type or rendering e.g. bitmap-based. + * @details Name "renderingBackend", type Property::INTEGER. + */ + RENDERING_BACKEND = ELLIPSIS + 7, + + /** + * @brief The selected text start position. + * @details Name "selectedTextStart", type Property::INTEGER. + */ + SELECTED_TEXT_START, + + /** + * @brief The selected text range end position. + * @details Name "selectedTextEnd", type Property::INTEGER. + */ + SELECTED_TEXT_END, + +}; + } // namespace Property -} // namespace DevelText +/** + * @brief Return the input method context of TextField. + * + * @param[in] textField The instance of TextField. + * @return InputMethodContext instance. + */ +DALI_TOOLKIT_API InputMethodContext GetInputMethodContext(TextField textField); + +/** + * @brief Select the whole text of TextField. + * + * @param[in] textField The instance of TextField. + */ +DALI_TOOLKIT_API void SelectWholeText(TextField textField); + +/** + * @brief Unselect the whole text of TextField. + * + * @param[in] textField The instance of TextField. + */ +DALI_TOOLKIT_API void SelectNone(TextField textField); + +} // namespace DevelTextField } // namespace Toolkit