Add update_preedit_string() with attrs parameter 00/40900/1
authorSungmin Kwak <sungmin.kwak@samsung.com>
Wed, 8 Apr 2015 10:15:40 +0000 (19:15 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 10 Jun 2015 07:24:10 +0000 (16:24 +0900)
Change-Id: I38991dabf2431a73d2ee63a8f2dfa5a514c312c3

src/sclconnection-isf.cpp
src/sclconnection-isf.h
src/sclconnection.cpp
src/sclconnection.h
src/sclcore.cpp
src/sclcore.h
src/sclcoreimpl.cpp
src/sclcoreimpl.h

index 39db979..f665df2 100644 (file)
@@ -848,6 +848,23 @@ void CSCLConnectionISF::update_preedit_string(sclint ic, const sclchar *ic_uuid,
     }
 }
 
+void CSCLConnectionISF::update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs)
+{
+    if (m_initialized) {
+        scim::String uuid;
+        if (ic_uuid) {
+            uuid = scim::String(ic_uuid);
+        }
+        m_helper_agent.update_preedit_string(ic, uuid, scim::utf8_mbstowcs(str), attrs);
+
+        if (str && strlen(str) > 0) {
+            show_preedit_string(ic, ic_uuid);
+        } else {
+            hide_preedit_string(ic, ic_uuid);
+        }
+    }
+}
+
 void CSCLConnectionISF::update_aux_string(const sclchar *str)
 {
     if (m_initialized) {
index 3a6808c..632ae4e 100644 (file)
@@ -69,6 +69,7 @@ public:
     void hide_candidate_string(void);
     void hide_associate_string(void);
     void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str);
+    void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs);
     void update_aux_string(const sclchar *str);
     void update_input_context(sclu32 type, sclu32 value);
     void get_surrounding_text(const sclchar *ic_uuid, sclint maxlen_before, sclint maxlen_after) const;
index 68464ed..b63c028 100644 (file)
@@ -229,6 +229,13 @@ void CSCLConnection::update_preedit_string(sclint ic, const sclchar *ic_uuid, co
     }
 }
 
+void CSCLConnection::update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs)
+{
+    if (m_impl) {
+        m_impl->update_preedit_string(ic, ic_uuid, str, attrs);
+    }
+}
+
 void CSCLConnection::update_aux_string(const sclchar *str)
 {
     if (m_impl) {
index 5eec308..58cc7a3 100644 (file)
 #ifndef __SCL_CONNECTION_H__
 #define __SCL_CONNECTION_H__
 
+#define Uses_SCIM_ATTRIBUTE
+
 #include <string>
+#include <scim.h>
 #include "scltypes.h"
 //SCL_BEGIN_DECLS
 
@@ -66,6 +69,7 @@ public:
     virtual void hide_candidate_string(void);
     virtual void hide_associate_string(void);
     virtual void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str);
+    virtual void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs);
     virtual void update_aux_string(const sclchar *str);
     virtual void update_input_context(sclu32 type, sclu32 value);
     virtual void get_surrounding_text(const sclchar *ic_uuid, sclint maxlen_before, sclint maxlen_after) const;
index 13fa0e8..1e5f5ff 100644 (file)
@@ -198,6 +198,13 @@ void CSCLCore::update_preedit_string(sclint ic, const sclchar *ic_uuid, const sc
     }
 }
 
+void CSCLCore::update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs)
+{
+    if (m_impl) {
+        m_impl->update_preedit_string(ic, ic_uuid, str, attrs);
+    }
+}
+
 void CSCLCore::update_aux_string(const sclchar *str)
 {
     if (m_impl) {
index 4319a7a..7c446d2 100644 (file)
 
 //SCL_BEGIN_DECLS
 
-#include <string>
+#define Uses_SCIM_ATTRIBUTE
 
+#include <string>
+#include <scim.h>
 #include <sclcommon.h>
 #include "sclcoretypes.h"
 #include "sclcorecallback.h"
@@ -176,19 +178,29 @@ public:
     void hide_associate_string(void);
 
     /**
-     * @brief Update a new WideString for preedit.
+     * @brief Update a new string for preedit.
      *
      * @param[in] ic The handle of the client Input Context to receive the WideString.
      *            -1 means the currently focused Input Context.
      * @param[in] ic_uuid The UUID of the IMEngine used by the Input Context.
      *            NULL means don't match.
      * @param[in] str The UTF-8 string to be updated.
-     * @param[in] attrs The attribute list for preedit string.
      */
-    /*void update_preedit_string (int ic, const sclchar *ic_uuid, const sclchar *str, const AttributeList &attrs) const;*/
     void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str);
 
     /**
+     * @brief Update a new string for preedit.
+     *
+     * @param[in] ic The handle of the client Input Context to receive the WideString.
+     *            -1 means the currently focused Input Context.
+     * @param[in] ic_uuid The UUID of the IMEngine used by the Input Context.
+     *            NULL means don't match.
+     * @param[in] str The UTF-8 string to be updated.
+     * @param[in] attrs The attribute list for preedit string.
+     */
+    void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs);
+
+    /**
      * @brief Update a new string for aux.
      *
      * @param[in] str The string to be updated.
index 259ea1f..16d179b 100644 (file)
@@ -200,6 +200,11 @@ void CSCLCoreImpl::update_preedit_string(sclint ic, const sclchar *ic_uuid, cons
     m_connection.update_preedit_string(ic, ic_uuid, str);
 }
 
+void CSCLCoreImpl::update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs)
+{
+    m_connection.update_preedit_string(ic, ic_uuid, str, attrs);
+}
+
 void CSCLCoreImpl::update_aux_string(const sclchar *str)
 {
     m_connection.update_aux_string(str);
index 57db893..62d2c56 100644 (file)
@@ -73,8 +73,8 @@ public:
     void hide_aux_string(void);
     void hide_candidate_string(void);
     void hide_associate_string(void);
-    /*void update_preedit_string (int ic, const sclchar *ic_uuid, const sclchar *str, const AttributeList &attrs) const;*/
     void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str);
+    void update_preedit_string(sclint ic, const sclchar *ic_uuid, const sclchar *str, const scim::AttributeList &attrs);
     //void update_aux_string (const sclchar *str, const AttributeList &attrs) const;
     void update_aux_string(const sclchar *str);
     //void update_candidate_string (const LookupTable &table) const;