Merge "DALi Version 1.1.34" into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-controller.h
index 058719e..6a83374 100644 (file)
@@ -99,6 +99,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 +124,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.
@@ -150,11 +166,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] numberOfChars The number of characters to delete from the cursorOffset.
+   * @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 numberOfChars );
+  bool RemoveText( int cursorOffset,
+                   int numberOfCharacters,
+                   UpdateInputStyleType type  );
 
   /**
    * @brief Retrieve the current cursor position.
@@ -184,7 +207,7 @@ public:
    *
    * @param[in] maxCharacters maximum number of characters to be accepted
    */
-  void SetMaximumNumberOfCharacters( int maxCharacters );
+  void SetMaximumNumberOfCharacters( Length maxCharacters );
 
   /**
    * @brief Sets the maximum number of characters that can be inserted into the TextModel
@@ -224,32 +247,32 @@ public:
   const std::string& GetDefaultFontStyle() const;
 
   /**
-   * @brief Sets the default font width.
+   * @brief Sets the default font weight.
    *
-   * @param[in] width The font width.
+   * @param[in] weight The font weight.
    */
-  void SetDefaultFontWidth( FontWidth width );
+  void SetDefaultFontWeight( FontWeight weight );
 
   /**
-   * @brief Retrieves the default font width.
+   * @brief Retrieves the default font weight.
    *
-   * @return The default font width.
+   * @return The default font weight.
    */
-  FontWidth GetDefaultFontWidth() const;
+  FontWeight GetDefaultFontWeight() const;
 
   /**
-   * @brief Sets the default font weight.
+   * @brief Sets the default font width.
    *
-   * @param[in] weight The font weight.
+   * @param[in] width The font width.
    */
-  void SetDefaultFontWeight( FontWeight weight );
+  void SetDefaultFontWidth( FontWidth width );
 
   /**
-   * @brief Retrieves the default font weight.
+   * @brief Retrieves the default font width.
    *
-   * @return The default font weight.
+   * @return The default font width.
    */
-  FontWeight GetDefaultFontWeight() const;
+  FontWidth GetDefaultFontWidth() const;
 
   /**
    * @brief Sets the default font slant.
@@ -283,7 +306,7 @@ public:
    * @ brief Update the text after a font change
    * @param[in] newDefaultFont The new font to change to
    */
-  void UpdateAfterFontChange( std::string& newDefaultFont );
+  void UpdateAfterFontChange( const std::string& newDefaultFont );
 
   /**
    * @brief Set the text color
@@ -398,6 +421,90 @@ public:
   const Vector4& GetInputColor() const;
 
   /**
+   * @brief Sets the input text's font family name.
+   *
+   * @param[in] fontFamily The text's font family name.
+   */
+  void SetInputFontFamily( const std::string& fontFamily );
+
+  /**
+   * @brief Retrieves the input text's font family name.
+   *
+   * @return The input text's font family name.
+   */
+  const std::string& GetInputFontFamily() const;
+
+  /**
+   * @brief Sets the input text's font style.
+   *
+   * @param[in] fontStyle The input text's font style.
+   */
+  void SetInputFontStyle( const std::string& fontStyle );
+
+  /**
+   * @brief Retrieves the input text's font style.
+   *
+   * @return The input text's font style.
+   */
+  const std::string& GetInputFontStyle() const;
+
+  /**
+   * @brief Sets the input font's weight.
+   *
+   * @param[in] weight The input font's weight.
+   */
+  void SetInputFontWeight( FontWeight weight );
+
+  /**
+   * @brief Retrieves the input font's weight.
+   *
+   * @return The input font's weight.
+   */
+  FontWeight GetInputFontWeight() const;
+
+  /**
+   * @brief Sets the input font's width.
+   *
+   * @param[in] width The input font's width.
+   */
+  void SetInputFontWidth( FontWidth width );
+
+  /**
+   * @brief Retrieves the input font's width.
+   *
+   * @return The input font's width.
+   */
+  FontWidth GetInputFontWidth() const;
+
+  /**
+   * @brief Sets the input font's slant.
+   *
+   * @param[in] slant The input font's slant.
+   */
+  void SetInputFontSlant( FontSlant slant );
+
+  /**
+   * @brief Retrieves the input font's slant.
+   *
+   * @return The input font's slant.
+   */
+  FontSlant GetInputFontSlant() const;
+
+  /**
+   * @brief Sets the input font's point size.
+   *
+   * @param[in] size The input font's point size.
+   */
+  void SetInputFontPointSize( float size );
+
+  /**
+   * @brief Retrieves the input font's point size.
+   *
+   * @return The input font's point size.
+   */
+  float GetInputFontPointSize() const;
+
+  /**
    * @brief Called to enable/disable cursor blink.
    *
    * @note Only editable controls should calls this.
@@ -685,11 +792,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();