From: jihoon Date: Thu, 23 Feb 2012 06:15:12 +0000 (+0000) Subject: Add edje_object_part_text_imf_context_get API X-Git-Tag: submit/2.0alpha-wayland/20121127.221958~365 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d96b2bad79494de9264c2857f158c2dc2a079d6;p=profile%2Fivi%2Fedje.git Add edje_object_part_text_imf_context_get API 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 --- diff --git a/src/lib/Edje.h b/src/lib/Edje.h index 2aa8a05..1c1621a 100644 --- a/src/lib/Edje.h +++ b/src/lib/Edje.h @@ -452,6 +452,10 @@ param in edje programs # undef EAPI #endif +#ifdef HAVE_ECORE_IMF +#include +#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 diff --git a/src/lib/edje_entry.c b/src/lib/edje_entry.c index 84b6909..f28be42 100644 --- a/src/lib/edje_entry.c +++ b/src/lib/edje_entry.c @@ -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) { diff --git a/src/lib/edje_private.h b/src/lib/edje_private.h index d9d578c..9a4112f 100644 --- a/src/lib/edje_private.h +++ b/src/lib/edje_private.h @@ -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); diff --git a/src/lib/edje_util.c b/src/lib/edje_util.c index 6750b5b..a248764 100644 --- a/src/lib/edje_util.c +++ b/src/lib/edje_util.c @@ -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) {