# undef EAPI
#endif
+#ifdef HAVE_ECORE_IMF
+#include <Ecore_IMF.h>
+#endif
+
#ifdef _WIN32
# ifdef EFL_EDJE_BUILD
# ifdef DLL_EXPORT
*/
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
}
}
+#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)
{
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);
_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)
{