X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.h;h=4edd28117830a6cf7db2343daf16dfe4f47941cd;hp=5ef498daf9bf53f4e4bc2065a49a275bb1ef4286;hb=09f35f81061ca470e79ac674024b9e587ff44e7f;hpb=620ac79821b89142af1926f3577c7fa003f16ad3 diff --git a/dali-toolkit/internal/text/text-controller.h b/dali-toolkit/internal/text/text-controller.h index 5ef498d..4edd281 100644 --- a/dali-toolkit/internal/text/text-controller.h +++ b/dali-toolkit/internal/text/text-controller.h @@ -50,6 +50,15 @@ typedef IntrusivePtr ControllerPtr; typedef Dali::Toolkit::Text::ControlInterface ControlInterface; /** + * @brief Different placeholder-text can be shown when the control is active/inactive. + */ +enum PlaceholderType +{ + PLACEHOLDER_TYPE_ACTIVE, + PLACEHOLDER_TYPE_INACTIVE, +}; + +/** * @brief A Text Controller is used by UI Controls which display text. * * It manipulates the Logical & Visual text models on behalf of the UI Controls. @@ -60,7 +69,7 @@ typedef Dali::Toolkit::Text::ControlInterface ControlInterface; */ class Controller : public RefObject, public Decorator::Observer { -private: +public: /** * @brief Text related operations to be done in the relayout process. @@ -83,7 +92,14 @@ private: ALL_OPERATIONS = 0xFFFF }; -public: + /** + * @brief Used to distinguish between regular key events and IMF events + */ + enum InsertType + { + COMMIT, + PRE_EDIT + }; /** * @brief Create a new instance of a Controller. @@ -111,16 +127,34 @@ public: /** * @brief Replaces any placeholder text previously set. * + * @param[in] cursorOffset Start position from the current cursor position to start deleting characters. + * @param[in] numberOfChars The number of characters to delete from the cursorOffset. + * @return True if the remove was successful. + */ + bool RemoveText( int cursorOffset, int numberOfChars ); + + /** + * @brief Retrieve the current cursor position. + * + * @return The cursor position. + */ + unsigned int GetLogicalCursorPosition() const; + + /** + * @brief Replaces any placeholder text previously set. + * + * @param[in] type Different placeholder-text can be shown when the control is active/inactive. * @param[in] text A string of UTF-8 characters. */ - void SetPlaceholderText( const std::string& text ); + void SetPlaceholderText( PlaceholderType type, const std::string& text ); /** * @brief Retrieve any placeholder text previously set. * - * @return A string of UTF-8 characters. + * @param[in] type Different placeholder-text can be shown when the control is active/inactive. + * @param[out] A string of UTF-8 characters. */ - void GetPlaceholderText( std::string& text ) const; + void GetPlaceholderText( PlaceholderType type, std::string& text ) const; /** * @brief Sets the maximum number of characters that can be inserted into the TextModel @@ -179,26 +213,32 @@ public: float GetDefaultPointSize() const; /** - * @brief Retrieve the default fonts. + * @brief Set the text color + * + * @param textColor The text color + */ + void SetTextColor( const Vector4& textColor ); + + /** + * @brief Retrieve the text color * - * @param[out] fonts The default font family, style and point sizes. - * @param[in] numberOfCharacters The number of characters in the logical model. + * @return The text color */ - void GetDefaultFonts( Dali::Vector& fonts, Length numberOfCharacters ) const; + const Vector4& GetTextColor() const; /** * @brief Set the text color * * @param textColor The text color */ - void SetTextColor( const Vector4& textColor ); + void SetPlaceholderTextColor( const Vector4& textColor ); /** * @brief Retrieve the text color * * @return The text color */ - const Vector4& GetTextColor() const; + const Vector4& GetPlaceholderTextColor() const; /** * @brief Set the shadow offset. @@ -332,30 +372,24 @@ public: void ProcessModifyEvents(); /** - * @brief Used to process an event queued from SetText() - * - * @param[in] newText The new text to store in the logical model. + * @brief Used to remove placeholder text. */ - void ReplaceTextEvent( const std::string& newText ); + void ResetText(); /** - * @brief Used to process an event queued from key events etc. - * - * @param[in] text The text to insert into the logical model. + * @brief Used to process an event queued from SetText() */ - void InsertTextEvent( const std::string& text ); + void TextReplacedEvent(); /** - * @brief Used to process an event queued from backspace key etc. + * @brief Used to process an event queued from key events etc. */ - void DeleteTextEvent(); + void TextInsertedEvent(); /** - * @brief Update the model following text replace/insert etc. - * - * @param[in] operationsRequired The layout operations which need to be done. + * @brief Used to process an event queued from backspace key etc. */ - void UpdateModel( OperationsMask operationsRequired ); + void TextDeletedEvent(); /** * @brief Lays-out the text. @@ -407,10 +441,19 @@ public: * @brief Caller by editable UI controls when key events are received. * * @param[in] event The key event. + * @param[in] type Used to distinguish between regular key events and IMF events. */ bool KeyEvent( const Dali::KeyEvent& event ); /** + * @brief Caller by editable UI controls when key events are received. + * + * @param[in] text The text to insert. + * @param[in] type Used to distinguish between regular key events and IMF events. + */ + void InsertText( const std::string& text, InsertType type ); + + /** * @brief Caller by editable UI controls when a tap gesture occurs. * @param[in] tapCount The number of taps. * @param[in] x The x position relative to the top-left of the parent control.