Add edje_object_part_text_imf_context_get API

This API can be used to get the input method context in entry.


SVN revision: 68306
This commit is contained in:
Jihoon Kim 2012-02-23 06:15:12 +00:00
parent 0a42091076
commit c58edcd114
4 changed files with 51 additions and 2 deletions

View 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

View 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)
{

View 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);

View 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)
{