Remove alignment from text controller.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-controller.h
index 7e22134..53a5991 100644 (file)
@@ -86,6 +86,7 @@ public:
     REORDER            = 0x0400,
     ALIGN              = 0x0800,
     COLOR              = 0x1000,
+    UPDATE_DIRECTION   = 0x2000,
     ALL_OPERATIONS     = 0xFFFF
   };
 
@@ -99,6 +100,15 @@ public:
   };
 
   /**
+   * @brief Used to specify whether to update the input style.
+   */
+  enum UpdateInputStyleType
+  {
+    UPDATE_INPUT_STYLE,
+    DONT_UPDATE_INPUT_STYLE
+  };
+
+  /**
    * @brief Create a new instance of a Controller.
    *
    * @param[in] controlInterface An interface used to request a text relayout.
@@ -115,6 +125,13 @@ public:
   void EnableTextInput( DecoratorPtr decorator );
 
   /**
+   * @brief Used to switch between bitmap & vector based glyphs
+   *
+   * @param[in] glyphType The type of glyph; note that metrics for bitmap & vector based glyphs are different.
+   */
+  void SetGlyphType( TextAbstraction::GlyphType glyphType );
+
+  /**
    * @brief Enables/disables the mark-up processor.
    *
    * By default is disabled.
@@ -133,6 +150,37 @@ public:
   bool IsMarkupProcessorEnabled() const;
 
   /**
+   * @brief Enables/disables the auto text scrolling
+   *
+   * By default is disabled.
+   *
+   * @param[in] enable Whether to enable the auto scrolling
+   */
+  void SetAutoScrollEnabled( bool enable );
+
+  /**
+   * @brief Retrieves whether auto text scrolling is enabled.
+   *
+   * By default is disabled.
+   *
+   * @return @e true if auto scrolling is enabled, otherwise returns @e false.
+   */
+  bool IsAutoScrollEnabled() const;
+
+  /**
+   * @brief Get direction of the text from the first line of text,
+   * @return bool rtl (right to left) is true
+   */
+  CharacterDirection GetAutoScrollDirection() const;
+
+  /**
+   * @brief Get the alignment offset of the first line of text.
+   *
+   * @return The alignment offset.
+   */
+  float GetAutoScrollLineAlignment() const;
+
+  /**
    * @brief Replaces any text previously set.
    *
    * @note This will be converted into UTF-32 when stored in the text model.
@@ -150,11 +198,18 @@ public:
   /**
    * @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 );
+  bool RemoveText( int cursorOffset,
+                   int numberOfCharacters,
+                   UpdateInputStyleType type  );
 
   /**
    * @brief Retrieve the current cursor position.
@@ -504,13 +559,6 @@ public:
   const Vector2& GetScrollPosition() const;
 
   /**
-   * @brief Query the alignment offset.
-   *
-   * @return The alignmnet offset.
-   */
-  const Vector2& GetAlignmentOffset() const;
-
-  /**
    * @copydoc Control::GetNaturalSize()
    */
   Vector3 GetNaturalSize();
@@ -612,11 +660,11 @@ public:
   LayoutEngine::VerticalAlignment GetVerticalAlignment() const;
 
   /**
-   * @brief Calulates the alignment of the whole text inside the bounding box.
+   * @brief Calulates the vertical offset to align the text inside the bounding box.
    *
    * @param[in] size The size of the bounding box.
    */
-  void CalculateTextAlignment( const Size& size );
+  void CalculateVerticalOffset( const Size& size );
 
   /**
    * @brief Return the layout engine.
@@ -769,11 +817,6 @@ private:
   void ShowPlaceholderText();
 
   /**
-   * @brief Helper to clear all the model data except for LogicalModel::mText.
-   */
-  void ClearModelData();
-
-  /**
    * @brief Helper to clear font-specific data (only).
    */
   void ClearFontData();