X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Ftext-controls%2Ftext-field.h;h=fc29af44a90bb743da1814990056a9d07d4a7464;hb=938ea2d2a1a42930cf12c743d839aded892949ea;hp=4d97b03c0dabb1bcc7c6c35e10e559331c1072cc;hpb=9f1abc9d8b332a4a619173082cc2622f3c4c6125;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/public-api/controls/text-controls/text-field.h b/dali-toolkit/public-api/controls/text-controls/text-field.h index 4d97b03..fc29af4 100644 --- a/dali-toolkit/public-api/controls/text-controls/text-field.h +++ b/dali-toolkit/public-api/controls/text-controls/text-field.h @@ -20,7 +20,6 @@ // INTERNAL INCLUDES #include -#include namespace Dali { @@ -32,54 +31,130 @@ namespace Internal DALI_INTERNAL { class TextField; } +/** + * @addtogroup dali_toolkit_controls_text_controls + * @{ + */ /** * @brief A control which provides a single-line editable text field. + * + * * Signals + * | %Signal Name | Method | + * |----------------------|-----------------------------------------------------| + * | textChanged | @ref TextChangedSignal() | + * | maxLengthReached | @ref MaxLengthReachedSignal() | + * + * @SINCE_1_0.0 */ class DALI_IMPORT_API TextField : public Control { public: - // Property indices - static const Property::Index PROPERTY_RENDERING_BACKEND; ///< name "rendering-backend", type INT - static const Property::Index PROPERTY_PLACEHOLDER_TEXT; ///< name "placeholder-text", type STRING - static const Property::Index PROPERTY_TEXT; ///< name "text", type STRING - static const Property::Index PROPERTY_CURSOR_IMAGE; ///< name "cursor-image", type STRING - static const Property::Index PROPERTY_PRIMARY_CURSOR_COLOR; ///< name "primary-cursor-color", type VECTOR4 - static const Property::Index PROPERTY_SECONDARY_CURSOR_COLOR; ///< name "secondary-cursor-color", type VECTOR4 - static const Property::Index PROPERTY_ENABLE_CURSOR_BLINK; ///< name "enable-cursor-blink", type BOOLEAN - static const Property::Index PROPERTY_CURSOR_BLINK_INTERVAL; ///< name "cursor-blink-interval", type FLOAT - static const Property::Index PROPERTY_CURSOR_BLINK_DURATION; ///< name "cursor-blink-duration", type FLOAT - static const Property::Index PROPERTY_GRAB_HANDLE_IMAGE; ///< name "grab-handle-image", type STRING - static const Property::Index PROPERTY_DECORATION_BOUNDING_BOX; ///< name "decoration-bounding-box", type RECTANGLE - - // Property names - static const std::string RENDERING_BACKEND_PROPERTY_NAME; ///< Property, name "rendering-backend", type INT - static const std::string PLACEHOLDER_TEXT_PROPERTY_NAME; ///< Property, name "placeholder-text", type STRING - static const std::string TEXT_PROPERTY_NAME; ///< Property, name "text", type STRING - static const std::string CURSOR_IMAGE_PROPERTY_NAME; ///< Property, name "cursor-image", type STRING - static const std::string PRIMARY_CURSOR_COLOR_PROPERTY_NAME; ///< Property, name "primary-cursor-color", type VECTOR4 - static const std::string SECONDARY_CURSOR_COLOR_PROPERTY_NAME; ///< Property, name "secondary-cursor-color", type VECTOR4 - static const std::string ENABLE_CURSOR_BLINK_PROPERTY_NAME; ///< Property, name "enable-cursor-blink", type BOOLEAN - static const std::string CURSOR_BLINK_INTERVAL_PROPERTY_NAME; ///< Property, name "cursor-blink-interval", type FLOAT - static const std::string CURSOR_BLINK_DURATION_PROPERTY_NAME; ///< Property, name "cursor-blink-duration", type FLOAT - static const std::string GRAB_HANDLE_IMAGE_PROPERTY_NAME; ///< Property, name "grab-handle-image", type STRING - static const std::string DECORATION_BOUNDING_BOX; ///< Property, name "decoration-bounding-box", type RECTANGLE + /** + * @brief The start and end property ranges for this control. + * @SINCE_1_0.0 + */ + enum PropertyRange + { + PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0 + PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000 ///< Reserve property indices @SINCE_1_0.0 + }; + + /** + * @brief An enumeration of properties belonging to the TextField class. + * @SINCE_1_0.0 + */ + struct Property + { + enum + { + RENDERING_BACKEND = PROPERTY_START_INDEX, ///< name "renderingBackend", The type or rendering e.g. bitmap-based, type INT @SINCE_1_0.0 + TEXT, ///< name "text", The text to display in UTF-8 format, type STRING @SINCE_1_0.0 + PLACEHOLDER_TEXT, ///< name "placeholderText", The text to display when the TextField is empty and inactive, type STRING @SINCE_1_0.0 + PLACEHOLDER_TEXT_FOCUSED, ///< name "placeholderTextFocused", The text to display when the TextField is empty with key-input focus, type STRING @SINCE_1_0.0 + FONT_FAMILY, ///< name "fontFamily", The requested font family, type STRING @SINCE_1_0.0 + FONT_STYLE, ///< name "fontStyle", The requested font style, type STRING @SINCE_1_0.0 + POINT_SIZE, ///< name "pointSize", The size of font in points, type FLOAT @SINCE_1_0.0 + MAX_LENGTH, ///< name "maxLength" The maximum number of characters that can be inserted, type INTEGER @SINCE_1_0.0 + EXCEED_POLICY, ///< name "exceedPolicy" Specifies how the text is truncated when it does not fit, type INTEGER @SINCE_1_0.0 + HORIZONTAL_ALIGNMENT, ///< name "horizontalAlignment", The line horizontal alignment, type STRING, values "BEGIN", "CENTER", "END" @SINCE_1_0.0 + VERTICAL_ALIGNMENT, ///< name "verticalAlignment", The line vertical alignment, type STRING, values "TOP", "CENTER", "BOTTOM" @SINCE_1_0.0 + TEXT_COLOR, ///< name "textColor", The text color, type VECTOR4 @SINCE_1_0.0 + PLACEHOLDER_TEXT_COLOR, ///< name "placeholderTextColor", The placeholder-text color, type VECTOR4 @SINCE_1_0.0 + SHADOW_OFFSET, ///< name "shadowOffset", The drop shadow offset 0 indicates no shadow, type VECTOR2 @DEPRECATED_1_1.37 Use SHADOW instead. + SHADOW_COLOR, ///< name "shadowColor", The color of a drop shadow, type VECTOR4 @DEPRECATED_1_1.37 Use SHADOW instead. + PRIMARY_CURSOR_COLOR, ///< name "primaryCursorColor", The color to apply to the primary cursor, type VECTOR4 @SINCE_1_0.0 + SECONDARY_CURSOR_COLOR, ///< name "secondaryCursorColor", The color to apply to the secondary cursor, type VECTOR4 @SINCE_1_0.0 + ENABLE_CURSOR_BLINK, ///< name "enableCursorBlink", Whether the cursor should blink or not, type BOOLEAN @SINCE_1_0.0 + CURSOR_BLINK_INTERVAL, ///< name "cursorBlinkInterval", The time interval in seconds between cursor on/off states, type FLOAT @SINCE_1_0.0 + CURSOR_BLINK_DURATION, ///< name "cursorBlinkDuration", The cursor will stop blinking after this number of seconds (if non-zero), type FLOAT @SINCE_1_0.0 + CURSOR_WIDTH, ///< name "cursorWidth", The cursor width, type INTEGER @SINCE_1_0.0 + GRAB_HANDLE_IMAGE, ///< name "grabHandleImage", The image to display for the grab handle, type STRING @SINCE_1_0.0 + GRAB_HANDLE_PRESSED_IMAGE, ///< name "grabHandlePressedImage", The image to display when the grab handle is pressed, type STRING @SINCE_1_0.0 + SCROLL_THRESHOLD, ///< name "scrollThreshold" Horizontal scrolling will occur if the cursor is this close to the control border, type FLOAT @SINCE_1_0.0 + SCROLL_SPEED, ///< name "scrollSpeed" The scroll speed in pixels per second, type FLOAT @SINCE_1_0.0 + SELECTION_HANDLE_IMAGE_LEFT, ///< name "selectionHandleImageLeft", The image to display for the left selection handle, type MAP @SINCE_1_0.0 + SELECTION_HANDLE_IMAGE_RIGHT, ///< name "selectionHandleImageRight", The image to display for the right selection handle, type MAP @SINCE_1_0.0 + SELECTION_HANDLE_PRESSED_IMAGE_LEFT, ///< name "selectionHandlePressedImageLeft", The image to display when the left selection handle is pressed, type MAP @SINCE_1_0.0 + SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, ///< name "selectionHandlePressedImageRight", The image to display when the right selection handle is pressed, type MAP @SINCE_1_0.0 + SELECTION_HANDLE_MARKER_IMAGE_LEFT, ///< name "selectionHandleMarkerImageLeft", The image to display for the left selection handle marker, type MAP @SINCE_1_0.0 + SELECTION_HANDLE_MARKER_IMAGE_RIGHT, ///< name "selectionHandleMarkerImageRight", The image to display for the right selection handle marker, type MAP @SINCE_1_0.0 + SELECTION_HIGHLIGHT_COLOR, ///< name "selectionHighlightColor", The color of the selection highlight, type VECTOR4 @SINCE_1_0.0 + DECORATION_BOUNDING_BOX, ///< name "decorationBoundingBox", The decorations (handles etc) will positioned within this area on-screen, type RECTANGLE @SINCE_1_0.0 + INPUT_METHOD_SETTINGS, ///< name "inputMethodSettings", The settings to relating to the System's Input Method, Key and Value type MAP @SINCE_1_0.0 + INPUT_COLOR, ///< name "inputColor", The color of the new input text, type VECTOR4 @SINCE_1_0.0 + ENABLE_MARKUP, ///< name "enableMarkup", Whether the mark-up processing is enabled. type BOOLEAN @SINCE_1_0.0 + INPUT_FONT_FAMILY, ///< name "inputFontFamily", The font's family of the new input text, type STRING @SINCE_1_0.0 + INPUT_FONT_STYLE, ///< name "inputFontStyle", The font's style of the new input text, type STRING @SINCE_1_0.0 + INPUT_POINT_SIZE, ///< name "inputPointSize", The font's size of the new input text in points, type FLOAT @SINCE_1_0.0 + UNDERLINE, ///< name "underline" The default underline parameters, type STRING @SINCE_1_1.37 + INPUT_UNDERLINE, ///< name "inputUnderline" The underline parameters of the new input text, type STRING @SINCE_1_1.37 + SHADOW, ///< name "shadow" The default shadow parameters, type STRING @SINCE_1_1.37 + INPUT_SHADOW, ///< name "inputShadow" The shadow parameters of the new input text, type STRING @SINCE_1_1.37 + EMBOSS, ///< name "emboss" The default emboss parameters, type STRING @SINCE_1_1.37 + INPUT_EMBOSS, ///< name "inputEmboss" The emboss parameters of the new input text, type STRING @SINCE_1_1.37 + OUTLINE, ///< name "outline" The default outline parameters, type STRING @SINCE_1_1.37 + INPUT_OUTLINE, ///< name "inputOutline" The outline parameters of the new input text, type STRING @SINCE_1_1.37 + }; + }; + + /** + * @brief Specifies how the text is truncated when it does not fit + * + * The default value is \e EXCEED_POLICY_CLIP. + * @SINCE_1_0.0 + */ + enum ExceedPolicy + { + EXCEED_POLICY_ORIGINAL, ///< The text will be display at original size, and may exceed the TextField boundary. @SINCE_1_0.0 + EXCEED_POLICY_CLIP ///< The end of text will be clipped to fit within the TextField. @SINCE_1_0.0 + }; + + // Type Defs + + /// @brief Text changed signal type. + typedef Signal TextChangedSignalType; + /// @brief Max Characters Exceed signal type. + typedef Signal MaxLengthReachedSignalType; /** - * Create the TextField control. + * @brief Create the TextField control. + * @SINCE_1_0.0 * @return A handle to the TextField control. */ static TextField New(); /** * @brief Creates an empty handle. + * @SINCE_1_0.0 */ TextField(); /** * @brief Copy constructor. * + * @SINCE_1_0.0 * @param[in] handle The handle to copy from. */ TextField( const TextField& handle ); @@ -87,15 +162,17 @@ public: /** * @brief Assignment operator. * + * @SINCE_1_0.0 * @param[in] handle The handle to copy from. * @return A reference to this. */ TextField& operator=( const TextField& handle ); /** - * @brief Destructor + * @brief Destructor. * * This is non-virtual since derived Handle types must not contain data or virtual methods. + * @SINCE_1_0.0 */ ~TextField(); @@ -105,16 +182,44 @@ public: * If the BaseHandle points is a TextField the downcast returns a valid handle. * If not the returned handle is left empty. * - * @param[in] handle Handle to an object - * @return handle to a TextField or an empty handle + * @SINCE_1_0.0 + * @param[in] handle Handle to an object. + * @return handle to a TextField or an empty handle. */ static TextField DownCast( BaseHandle handle ); + // Signals + + /** + * @brief This signal is emitted when the text changes. + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName( TextField textField ); + * @endcode + * @SINCE_1_0.0 + * @return The signal to connect to. + */ + TextChangedSignalType& TextChangedSignal(); + + /** + * @brief This signal is emitted when inserted text exceeds the maximum character limit. + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName( TextField textField ); + * @endcode + * @SINCE_1_0.0 + * @return The signal to connect to. + */ + MaxLengthReachedSignalType& MaxLengthReachedSignal(); + public: // Not intended for application developers /** * @brief Creates a handle using the Toolkit::Internal implementation. * + * @SINCE_1_0.0 * @param[in] implementation The Control implementation. */ DALI_INTERNAL TextField( Internal::TextField& implementation ); @@ -122,11 +227,15 @@ public: // Not intended for application developers /** * @brief Allows the creation of this Control from an Internal::CustomActor pointer. * + * @SINCE_1_0.0 * @param[in] internal A pointer to the internal CustomActor. */ explicit DALI_INTERNAL TextField( Dali::Internal::CustomActor* internal ); }; +/** + * @} + */ } // namespace Toolkit } // namespace Dali