class View;
class RenderingController;
+ /**
+ * @brief Text selection operations .
+ */
+ enum SelectionType
+ {
+ INTERACTIVE = 0x0000,
+ ALL = 0x0001,
+ NONE = 0x0002
+ };
+
typedef IntrusivePtr<Controller> ControllerPtr;
/**
GET_SCRIPTS = 0x0002,
VALIDATE_FONTS = 0x0004,
GET_LINE_BREAKS = 0x0008,
- GET_WORD_BREAKS = 0x0010,
- BIDI_INFO = 0x0020,
- SHAPE_TEXT = 0x0040,
- GET_GLYPH_METRICS = 0x0080,
- LAYOUT = 0x0100,
- UPDATE_LAYOUT_SIZE = 0x0200,
- REORDER = 0x0400,
- ALIGN = 0x0800,
- COLOR = 0x1000,
- UPDATE_DIRECTION = 0x2000,
+ BIDI_INFO = 0x0010,
+ SHAPE_TEXT = 0x0020,
+ GET_GLYPH_METRICS = 0x0040,
+ LAYOUT = 0x0080,
+ UPDATE_LAYOUT_SIZE = 0x0100,
+ REORDER = 0x0200,
+ ALIGN = 0x0400,
+ COLOR = 0x0800,
+ UPDATE_DIRECTION = 0x1000,
ALL_OPERATIONS = 0xFFFF
};
};
};
+ struct TextFitInfo
+ {
+ enum Property
+ {
+ TEXT_FIT_ENABLE,
+ TEXT_FIT_MIN_SIZE,
+ TEXT_FIT_MAX_SIZE,
+ TEXT_FIT_STEP_SIZE,
+ TEXT_FIT_FONT_SIZE_TYPE
+ };
+ };
+
public: // Constructor.
/**
bool IsTextElideEnabled() const;
/**
+ * @brief Enable or disable the text fit.
+ *
+ * @param[in] enabled Whether to enable the text fit.
+ */
+ void SetTextFitEnabled(bool enabled);
+
+ /**
+ * @brief Whether the text fit is enabled or not.
+ *
+ * @return True if the text fit is enabled
+ */
+ bool IsTextFitEnabled() const;
+
+ /**
+ * @brief Sets minimum size valid for text fit.
+ *
+ * @param[in] minimum size value.
+ * @param[in] type The font size type is point size or pixel size
+ */
+ void SetTextFitMinSize( float pointSize, FontSizeType type );
+
+ /**
+ * @brief Retrieves the minimum point size valid for text fit.
+ *
+ * @return The minimum point size valid for text fit
+ */
+ float GetTextFitMinSize() const;
+
+ /**
+ * @brief Sets maximum size valid for text fit.
+ *
+ * @param[in] maximum size value.
+ * @param[in] type The font size type is point size or pixel size
+ */
+ void SetTextFitMaxSize( float pointSize, FontSizeType type );
+
+ /**
+ * @brief Retrieves the maximum point size valid for text fit.
+ *
+ * @return The maximum point size valid for text fit
+ */
+ float GetTextFitMaxSize() const;
+
+ /**
+ * @brief Sets step size for font increase valid for text fit.
+ *
+ * @param[in] step size value.
+ * @param[in] type The font size type is point size or pixel size
+ */
+ void SetTextFitStepSize( float step, FontSizeType type );
+
+ /**
+ * @brief Retrieves the step point size valid for text fit.
+ *
+ * @return The step point size valid for text fit
+ */
+ float GetTextFitStepSize() const;
+
+ /**
+ * @brief Sets content size valid for text fit.
+ *
+ * @param[in] Content size value.
+ */
+ void SetTextFitContentSize(Vector2 size);
+
+ /**
+ * @brief Retrieves the content size valid for text fit.
+ *
+ * @return The content size valid for text fit
+ */
+ Vector2 GetTextFitContentSize() const;
+
+ /**
* @brief Enable or disable the placeholder text elide.
* @param enabled Whether to enable the placeholder text elide.
*/
bool IsGrabHandleEnabled() const;
/**
+ * @brief Enable or disable the grab handles for text selection.
+ *
+ * @param[in] enabled Whether to enable the grab handles
+ */
+ void SetGrabHandlePopupEnabled( bool enabled );
+
+ /**
+ * @brief Returns whether the grab handles are enabled.
+ *
+ * @return True if the grab handles are enabled
+ */
+ bool IsGrabHandlePopupEnabled() const;
+
+ /**
* @brief Sets input type to password
*
* @note The string is displayed hidden character
float GetDefaultLineSpacing() const;
/**
+ * @brief Sets the default line size.
+ *
+ * @param[in] lineSize The line size.
+ *
+ * @return True if lineSize has been updated, false otherwise
+ */
+ bool SetDefaultLineSize( float lineSize );
+
+ /**
+ * @brief Retrieves the default line size.
+ *
+ * @return The line size.
+ */
+ float GetDefaultLineSize() const;
+
+ /**
* @brief Sets the input text's color.
*
* @param[in] color The input text's color.
float GetHeightForWidth( float width );
/**
+ * @brief Calculates the point size for text for given layout()
+ */
+ void FitPointSizeforLayout( Size layoutSize );
+
+ /**
+ * @brief Checks if the point size fits within the layout size.
+ *
+ * @return Whether the point size fits within the layout size.
+ */
+ bool CheckForTextFit( float pointSize, Size& layoutSize );
+
+ /**
* @brief Retrieves the text's number of lines for a given width.
* @param[in] width The width of the text's area.
* @ return The number of lines.
*/
void SetLayoutDirection( Dali::LayoutDirection::Type layoutDirection );
+ /**
+ * @brief Retrieves if showing real text or not.
+ * @return The value of showing real text.
+ */
+ bool IsShowingRealText() const;
public: // Relayout.
void LongPressEvent( Gesture::State state, float x, float y );
/**
+ * @brief Creates a selection event.
+ *
+ * It could be called from the TapEvent (double tap) or when the text selection popup's sellect all button is pressed.
+ *
+ * @param[in] x The x position relative to the top-left of the parent control.
+ * @param[in] y The y position relative to the top-left of the parent control.
+ * @param[in] selection type like the whole text is selected or unselected.
+ */
+ void SelectEvent( float x, float y, SelectionType selection );
+
+ /**
* @brief Event received from input method context
*
* @param[in] inputMethodContext The input method context.
*/
bool ShouldClearFocusOnEscape() const;
+ /**
+ * @brief Create an actor that renders the text background color
+ *
+ * @return the created actor or an empty handle if no background color needs to be rendered.
+ */
+ Actor CreateBackgroundActor();
+
+ /**
+ * @brief Retrive Selected text.
+ *
+ * @return The seleced text.
+ */
+ std::string GetSelectedText();
+
protected: // Inherit from Text::Decorator::ControllerInterface.
/**
void TextDeletedEvent();
/**
- * @brief Creates a selection event.
- *
- * It could be called from the TapEvent (double tap) or when the text selection popup's sellect all button is pressed.
- *
- * @param[in] x The x position relative to the top-left of the parent control.
- * @param[in] y The y position relative to the top-left of the parent control.
- * @param[in] selectAll Whether the whole text is selected.
- */
- void SelectEvent( float x, float y, bool selectAll );
-
- /**
* @brief Helper to KeyEvent() to handle the backspace or delete key case.
*
* @param[in] keyCode The keycode for the key pressed