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=a5821108d9a38afb9686ca7b24eb506d3524f3e9;hp=ec3cbb99601c975f1bab920eef6a2fdc8cebd736;hb=7c13cc0c065ae22e7ad0deaea4f56730ff050c5c;hpb=4800a84a19c2fd33aea3174eae8e55297ee3a9af diff --git a/dali-toolkit/internal/text/text-controller.h b/dali-toolkit/internal/text/text-controller.h index ec3cbb9..a582110 100644 --- a/dali-toolkit/internal/text/text-controller.h +++ b/dali-toolkit/internal/text/text-controller.h @@ -25,6 +25,7 @@ // INTERNAL INCLUDES #include #include +#include #include #include #include @@ -482,6 +483,27 @@ public: // Configure the text controller. Vector2 GetTextFitContentSize() const; /** + * @brief Retrieve the fited point size. + * + * @return The fited point size. + */ + float GetTextFitPointSize() const; + + /** + * @brief Sets whether the text fit properties have changed. + * + * @param[in] changed Whether to changed the text fit. + */ + void SetTextFitChanged(bool changed); + + /** + * @brief Whether the text fit properties are changed or not. + * + * @return True if the text fit properties are changed + */ + bool IsTextFitChanged() const; + + /** * @brief Enable or disable the placeholder text elide. * @param enabled Whether to enable the placeholder text elide. */ @@ -1614,18 +1636,6 @@ public: // Text-input Event Queuing. void SelectEvent(float x, float y, SelectionType selection); /** - * @brief Creates a selection event with a selection index. - * - * It could be called from the SelectText(). - * The start and end parameters are passed through the event. - * - * @param[in] start The start selection position. - * @param[in] end The end selection position. - * @param[in] selection type like the range. - */ - void SelectEvent(const uint32_t start, const uint32_t end, SelectionType selection); - - /** * @copydoc Text::SelectableControlInterface::SetTextSelectionRange() */ void SetTextSelectionRange(const uint32_t* start, const uint32_t* end); @@ -1736,6 +1746,22 @@ public: // Text-input Event Queuing. */ CharacterIndex GetCursorPosition(); + /** + * @brief Resets a provided vector with actors that marks the position of anchors in markup enabled text + * + * @param[out] anchorActors the vector of actor (empty collection if no anchors available). + */ + void GetAnchorActors(std::vector& anchorActors); + + /** + * @brief Return an index of first anchor in the anchor vector whose boundaries includes given character offset + * + * @param[in] characterOffset A position in text coords. + * + * @return the index in anchor vector (-1 if an anchor not found) + */ + int GetAnchorIndex(size_t characterOffset); + protected: // Inherit from Text::Decorator::ControllerInterface. /** * @copydoc Dali::Toolkit::Text::Decorator::ControllerInterface::GetTargetSize() @@ -1764,138 +1790,6 @@ protected: // Inherit from HiddenText. */ void DisplayTimeExpired() override; -private: // Update. - /** - * @brief Called 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 InputMethodContext events. - */ - void InsertText(const std::string& text, InsertType type); - - /** - * @copydoc Text::EditableControlInterface::PasteText() - */ - void PasteText(const std::string& stringToPaste); - - /** - * @brief Remove a given number of characters - * - * When predictve text is used the pre-edit text is removed and inserted again with the new characters. - * The UpdateInputStyleType @type parameter if set to DONT_UPDATE_INPUT_STYLE avoids to update the input - * style when pre-edit text is removed. - * - * @param[in] cursorOffset Start position from the current cursor position to start deleting characters. - * @param[in] numberOfCharacters The number of characters to delete from the cursorOffset. - * @param[in] type Whether to update the input style. - * @return True if the remove was successful. - */ - bool RemoveText(int cursorOffset, - int numberOfCharacters, - UpdateInputStyleType type); - - /** - * @brief Checks if text is selected and if so removes it. - * @return true if text was removed - */ - bool RemoveSelectedText(); - - /** - * @brief Update anchor position from given number of inserted characters. - * - * @param[in] numberOfCharacters The number of inserted characters. - * @param[in] previousCursorIndex A cursor position before event occurs. - */ - void InsertTextAnchor(int numberOfCharacters, - CharacterIndex previousCursorIndex); - - /** - * @brief Update anchor position from given number of removed characters. - * - * @param[in] cursorOffset Start position from the current cursor position to start deleting characters. - * @param[in] numberOfCharacters The number of removed characters. - * @param[in] previousCursorIndex A cursor position before event occurs. - */ - void RemoveTextAnchor(int cursorOffset, - int numberOfCharacters, - CharacterIndex previousCursorIndex); - -private: // Relayout. - /** - * @brief Lays-out the text. - * - * GetNaturalSize(), GetHeightForWidth() and Relayout() calls this method. - * - * @param[in] size A the size of a bounding box to layout text within. - * @param[in] operations The layout operations which need to be done. - * @param[out] layoutSize The size of the laid-out text. - */ - bool DoRelayout(const Size& size, - OperationsMask operations, - Size& layoutSize); - - /** - * @brief Calulates the vertical offset to align the text inside the bounding box. - * - * @param[in] size The size of the bounding box. - */ - void CalculateVerticalOffset(const Size& size); - -private: // Events. - /** - * @brief Process queued events which modify the model. - */ - void ProcessModifyEvents(); - - /** - * @brief Used to process an event queued from SetText() - */ - void TextReplacedEvent(); - - /** - * @brief Used to process an event queued from key events etc. - */ - void TextInsertedEvent(); - - /** - * @brief Used to process an event queued from backspace key etc. - */ - void TextDeletedEvent(); - - /** - * @brief Helper to KeyEvent() to handle the backspace or delete key case. - * - * @param[in] keyCode The keycode for the key pressed - * @return True if a character was deleted. - */ - bool DeleteEvent(int keyCode); - -private: // Helpers. - /** - * @brief Used to remove the text included the placeholder text. - */ - void ResetText(); - - /** - * @brief Helper to show the place holder text.. - */ - void ShowPlaceholderText(); - - /** - * @brief Helper to clear font-specific data (only). - */ - void ClearFontData(); - - /** - * @brief Helper to clear text's style data. - */ - void ClearStyleData(); - - /** - * @brief Used to reset the scroll position after setting a new text. - */ - void ResetScrollPosition(); - private: // Private contructors & copy operator. /** * @brief Private constructor.