Add edje_object_part_text_imf_context_get API
authorjihoon <jihoon>
Thu, 23 Feb 2012 06:15:12 +0000 (06:15 +0000)
committerjihoon <jihoon@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 23 Feb 2012 06:15:12 +0000 (06:15 +0000)
This API can be used to get the input method context in entry.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@68306 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Edje.h
src/lib/edje_entry.c
src/lib/edje_private.h
src/lib/edje_util.c

index 2aa8a05..1c1621a 100644 (file)
@@ -452,6 +452,10 @@ param in edje programs
 # undef EAPI
 #endif
 
+#ifdef HAVE_ECORE_IMF
+#include <Ecore_IMF.h>
+#endif
+
 #ifdef _WIN32
 # ifdef EFL_EDJE_BUILD
 #  ifdef DLL_EXPORT
@@ -2869,9 +2873,21 @@ EAPI int              edje_object_part_text_cursor_pos_get              (const E
  */
 EAPI void             edje_object_part_text_imf_context_reset           (const Evas_Object *obj, const char *part);
 
+#ifdef HAVE_ECORE_IMF
+/**
+ * @brief Get the input method context in entry.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return The input method context in entry
+ */
+EAPI Ecore_IMF_Context *edje_object_part_text_imf_context_get           (const Evas_Object *obj, const char *part);
+#endif
+
 /**
  * @brief Set the layout of the input panel.
- * 
+ *
  * The layout of the input panel or virtual keyboard can make it easier or
  * harder to enter content. This allows you to hint what kind of input you
  * are expecting to enter and thus have the input panel automatically
index 84b6909..f28be42 100644 (file)
@@ -2553,6 +2553,17 @@ _edje_entry_select_abort(Edje_Real_Part *rp)
      }
 }
 
+#ifdef HAVE_ECORE_IMF
+Ecore_IMF_Context *
+_edje_entry_imf_context_get(Edje_Real_Part *rp)
+{
+   Entry *en = rp->entry_data;
+   if (!en) return NULL;
+
+   return en->imf_context;
+}
+#endif
+
 void
 _edje_entry_autocapital_type_set(Edje_Real_Part *rp, Edje_Text_Autocapital_Type autocapital_type)
 {
index d9d578c..9a4112f 100644 (file)
@@ -1940,7 +1940,9 @@ void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Co
 void _edje_entry_select_allow_set(Edje_Real_Part *rp, Eina_Bool allow);
 Eina_Bool _edje_entry_select_allow_get(const Edje_Real_Part *rp);
 void _edje_entry_select_abort(Edje_Real_Part *rp);
-
+#ifdef HAVE_ECORE_IMF
+Ecore_IMF_Context *_edje_entry_imf_context_get(Edje_Real_Part *rp);
+#endif
 Eina_Bool _edje_entry_cursor_next(Edje_Real_Part *rp, Edje_Cursor cur);
 Eina_Bool _edje_entry_cursor_prev(Edje_Real_Part *rp, Edje_Cursor cur);
 Eina_Bool _edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur);
index 6750b5b..a248764 100644 (file)
@@ -1527,6 +1527,26 @@ edje_object_part_text_select_extend(const Evas_Object *obj, const char *part)
      _edje_entry_select_extend(rp);
 }
 
+#ifdef HAVE_ECORE_IMF
+EAPI Ecore_IMF_Context *
+edje_object_part_text_imf_context_get(const Evas_Object *obj, const char *part)
+{
+   Edje *ed;
+   Edje_Real_Part *rp;
+
+   ed = _edje_fetch(obj);
+   if ((!ed) || (!part)) return NULL;
+
+   rp = _edje_real_part_recursive_get(ed, (char *)part);
+   if (!rp) return NULL;
+
+   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+     return _edje_entry_imf_context_get(rp);
+   else
+     return NULL;
+}
+#endif
+
 EAPI Eina_Bool
 edje_object_part_text_cursor_next(Evas_Object *obj, const char *part, Edje_Cursor cur)
 {