+ *
+ * @ingroup Entry
+ */
+EAPI Eina_Bool elm_entry_input_panel_enabled_get(const Evas_Object *obj);
+
+/**
+ * Show the input panel (virtual keyboard) based on the input panel property of entry such as layout, autocapital types, and so on.
+ *
+ * Note that input panel is shown or hidden automatically according to the focus state of entry widget.
+ * This API can be used in the case of manually controlling by using elm_entry_input_panel_enabled_set(en, EINA_FALSE).
+ *
+ * @param obj The entry object
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_show(Evas_Object *obj);
+
+/**
+ * Hide the input panel (virtual keyboard).
+ *
+ * Note that input panel is shown or hidden automatically according to the focus state of entry widget.
+ * This API can be used in the case of manually controlling by using elm_entry_input_panel_enabled_set(en, EINA_FALSE)
+ *
+ * @param obj The entry object
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_hide(Evas_Object *obj);
+
+/**
+ * Set the language mode of the input panel.
+ *
+ * This API can be used if you want to show the alphabet keyboard mode.
+ *
+ * @param obj The entry object
+ * @param lang language to be set to the input panel.
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_language_set(Evas_Object *obj, Elm_Input_Panel_Lang lang);
+
+/**
+ * Get the language mode of the input panel.
+ *
+ * See @ref elm_entry_input_panel_language_set for more details.
+ *
+ * @param obj The entry object
+ * @return input panel language type
+ *
+ * @ingroup Entry
+ */
+EAPI Elm_Input_Panel_Lang elm_entry_input_panel_language_get(const Evas_Object *obj);
+
+/**
+ * Set the input panel-specific data to deliver to the input panel.
+ *
+ * This API is used by applications to deliver specific data to the input panel.
+ * The data format MUST be negotiated by both application and the input panel.
+ * The size and format of data are defined by the input panel.
+ *
+ * @param obj The entry object
+ * @param data The specific data to be set to the input panel.
+ * @param len the length of data, in bytes, to send to the input panel
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_imdata_set(Evas_Object *obj, const void *data, int len);
+
+/**
+ * Get the specific data of the current input panel.
+ *
+ * See @ref elm_entry_input_panel_imdata_set for more details.
+ *
+ * @param obj The entry object
+ * @param data The specific data to be got from the input panel
+ * @param len The length of data
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_imdata_get(const Evas_Object *obj, void *data, int *len);
+
+/**
+ * Set the "return" key type. This type is used to set string or icon on the "return" key of the input panel.
+ *
+ * An input panel displays the string or icon associated with this type
+ *
+ * @param obj The entry object
+ * @param return_key_type The type of "return" key on the input panel
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_return_key_type_set(Evas_Object *obj, Elm_Input_Panel_Return_Key_Type return_key_type);
+
+/**
+ * Get the "return" key type.
+ *
+ * @see elm_entry_input_panel_return_key_type_set() for more details
+ *
+ * @param obj The entry object
+ * @return The type of "return" key on the input panel
+ *
+ * @ingroup Entry
+ */
+EAPI Elm_Input_Panel_Return_Key_Type elm_entry_input_panel_return_key_type_get(const Evas_Object *obj);
+
+/**
+ * Set the return key on the input panel to be disabled.
+ *
+ * @param obj The entry object
+ * @param disabled The state to put in in: @c EINA_TRUE for
+ * disabled, @c EINA_FALSE for enabled
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_return_key_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+/**
+ * Get whether the return key on the input panel should be disabled or not.
+ *
+ * @param obj The entry object
+ * @return EINA_TRUE if it should be disabled
+ *
+ * @ingroup Entry
+ */
+EAPI Eina_Bool elm_entry_input_panel_return_key_disabled_get(const Evas_Object *obj);
+
+/**
+ * Set whether the return key on the input panel is disabled automatically when entry has no text.
+ *
+ * If @p enabled is EINA_TRUE, The return key on input panel is disabled when the entry has no text.
+ * The return key on the input panel is automatically enabled when the entry has text.
+ * The default value is EINA_FALSE.
+ *
+ * @param obj The entry object
+ * @param enabled If @p enabled is EINA_TRUE, the return key is automatically disabled when the entry has no text.
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_input_panel_return_key_autoenabled_set(Evas_Object *obj, Eina_Bool enabled);
+
+/**
+ * Reset the input method context of the entry if needed.
+ *
+ * This can be necessary in the case where modifying the buffer would confuse on-going input method behavior.
+ * This will typically cause the Input Method Context to clear the preedit state.
+ * @param obj The entry object
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_imf_context_reset(Evas_Object *obj);
+
+/**
+ * Set whether the entry should allow to use the text prediction.
+ *
+ * @param obj The entry object
+ * @param prediction Whether the entry should allow to use the text prediction.
+ *
+ * @ingroup Entry
+ */
+EAPI void elm_entry_prediction_allow_set(Evas_Object *obj, Eina_Bool prediction);
+
+/**
+ * Get whether the entry should allow to use the text prediction.
+ *
+ * @param obj The entry object
+ * @return EINA_TRUE if it allows to use the text prediction, otherwise EINA_FALSE.
+ *
+ * @ingroup Entry