Merge "Support multiple surfaces for partial update" into devel/master
[platform/core/uifw/dali-adaptor.git] / dali / devel-api / adaptor-framework / input-method-context.h
index 85f754a..3c6e33d 100755 (executable)
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/events/key-event.h>
+#include <dali/public-api/common/dali-vector.h>
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/base-handle.h>
@@ -49,12 +50,12 @@ class DALI_ADAPTOR_API InputMethodContext : public BaseHandle
 public:
 
   /**
-  * @brief The direction of text.
-  */
+   * @brief The direction of text.
+   */
   enum TextDirection
   {
-    LeftToRight,
-    RightToLeft,
+    LEFT_TO_RIGHT,
+    RIGHT_TO_LEFT,
   };
 
   /**
@@ -90,6 +91,9 @@ public:
     HARDWARE_KEYBOARD   ///< Hardware keyboard
   };
 
+  /**
+   * @brief Enumeration for the language mode of the input panel.
+   */
   enum class InputPanelLanguage
   {
     AUTOMATIC,    ///< IME Language automatically set depending on the system display
@@ -97,6 +101,38 @@ public:
   };
 
   /**
+   * @brief Enumeration for the preedit style types.
+   */
+  enum class PreeditStyle
+  {
+    NONE,                    ///< None style
+    UNDERLINE,               ///< Underline substring style
+    REVERSE,                 ///< Reverse substring style
+    HIGHLIGHT,               ///< Highlight substring style
+    CUSTOM_PLATFORM_STYLE_1, ///< Custom style for platform
+    CUSTOM_PLATFORM_STYLE_2, ///< Custom style for platform
+    CUSTOM_PLATFORM_STYLE_3, ///< Custom style for platform
+    CUSTOM_PLATFORM_STYLE_4  ///< Custom style for platform
+  };
+
+  /**
+   * @brief This structure is for the preedit style types and indices.
+   */
+  struct PreeditAttributeData
+  {
+    PreeditAttributeData()
+    : preeditType( PreeditStyle::NONE ),
+      startIndex( 0 ),
+      endIndex( 0 )
+    {
+    }
+
+    PreeditStyle preeditType;  /// The preedit style type
+    unsigned int startIndex;   /// The start index of preedit
+    unsigned int endIndex;     /// The end index of preedit
+  };
+
+  /**
    * @brief This structure is used to pass on data from the InputMethodContext regarding predictive text.
    */
   struct EventData
@@ -181,6 +217,8 @@ public:
   typedef Signal< void ( int ) > LanguageChangedSignalType;  ///< Language changed signal
   typedef Signal< void ( const std::string&, const std::string&, const std::string& ) > ContentReceivedSignalType; ///< Content received signal
 
+  using PreEditAttributeDataContainer = Vector< Dali::InputMethodContext::PreeditAttributeData >;
+
 public:
 
   /**
@@ -461,6 +499,13 @@ public:
    */
   void SetInputPanelPosition( unsigned int x, unsigned int y );
 
+  /**
+   * @brief Gets the preedit attributes data.
+   *
+   * @param[out] attrs The preedit attributes data.
+   */
+  void GetPreeditStyle( PreEditAttributeDataContainer& attrs ) const;
+
 public:
 
   // Signals