forked from enlightenment/efl
edje/edje_entry:
add edje_object_part_text_input_panel_language_set/get edje_object_part_text_input_panel_imdata_set/get edje_object_part_text_input_panel_return_key_type_set/get edje_object_part_text_input_panel_return_key_disabled_set/get SVN revision: 67966
This commit is contained in:
parent
de808a0fb8
commit
e464a99326
|
@ -348,3 +348,10 @@
|
||||||
2012-02-14 Cedric Bail
|
2012-02-14 Cedric Bail
|
||||||
|
|
||||||
* add a way to disable signal broadcasting introduced in edje 1.1.
|
* add a way to disable signal broadcasting introduced in edje 1.1.
|
||||||
|
|
||||||
|
2012-02-15 Jihoon Kim
|
||||||
|
|
||||||
|
* add edje_object_part_text_input_panel_language_set/get
|
||||||
|
edje_object_part_text_input_panel_imdata_set/get
|
||||||
|
edje_object_part_text_input_panel_return_key_type_set/get
|
||||||
|
edje_object_part_text_input_panel_return_key_disabled_set/get
|
||||||
|
|
|
@ -817,6 +817,24 @@ typedef enum _Edje_Input_Panel_Layout
|
||||||
EDJE_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
|
EDJE_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
|
||||||
} Edje_Input_Panel_Layout;
|
} Edje_Input_Panel_Layout;
|
||||||
|
|
||||||
|
typedef enum _Edje_Input_Panel_Lang
|
||||||
|
{
|
||||||
|
EDJE_INPUT_PANEL_LANG_AUTOMATIC, /**< Automatic */
|
||||||
|
EDJE_INPUT_PANEL_LANG_ALPHABET /**< Alphabet */
|
||||||
|
} Edje_Input_Panel_Lang;
|
||||||
|
|
||||||
|
typedef enum _Edje_Input_Panel_Return_Key_Type
|
||||||
|
{
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DONE,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_GO,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_JOIN,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_NEXT,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH,
|
||||||
|
EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SEND
|
||||||
|
} Edje_Input_Panel_Return_Key_Type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Converts type identifier to string nicer representation.
|
* @brief Converts type identifier to string nicer representation.
|
||||||
*
|
*
|
||||||
|
@ -2965,6 +2983,100 @@ EAPI void edje_object_part_text_input_panel_show(const Evas_Object *
|
||||||
*/
|
*/
|
||||||
EAPI void edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part);
|
EAPI void edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the language mode of the input panel.
|
||||||
|
*
|
||||||
|
* This API can be used if you want to show the Alphabet keyboard.
|
||||||
|
*
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param lang the language to be set to the input panel.
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI void edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Lang lang);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the language mode of the input panel.
|
||||||
|
*
|
||||||
|
* See @ref edje_object_part_text_input_panel_language_set for more details.
|
||||||
|
*
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @return input panel language type
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI Edje_Input_Panel_Lang edje_object_part_text_input_panel_language_get(const Evas_Object *obj, const char *part);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @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
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI void edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, const void *data, int len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the specific data of the current active input panel.
|
||||||
|
*
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param data The specific data to be got from the input panel
|
||||||
|
* @param len The length of data
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI void edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char *part, 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 A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param return_key_type The type of "return" key on the input panel
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI void edje_object_part_text_input_panel_return_key_type_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Return_Key_Type return_key_type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the "return" key type.
|
||||||
|
*
|
||||||
|
* @see edje_object_part_text_input_panel_return_key_type_set() for more details
|
||||||
|
*
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @return The type of "return" key on the input panel
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI Edje_Input_Panel_Return_Key_Type edje_object_part_text_input_panel_return_key_type_get(const Evas_Object *obj, const char *part);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the return key on the input panel to be disabled.
|
||||||
|
*
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param disabled The state
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI void edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, const char *part, Eina_Bool disabled);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get whether the return key on the input panel should be disabled or not.
|
||||||
|
*
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @return EINA_TRUE if it should be disabled
|
||||||
|
* @since 1.2.0
|
||||||
|
*/
|
||||||
|
EAPI Eina_Bool edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a filter function for newly inserted text.
|
* Add a filter function for newly inserted text.
|
||||||
*
|
*
|
||||||
|
|
|
@ -28,6 +28,7 @@ struct _Entry
|
||||||
Eina_List *anchorlist;
|
Eina_List *anchorlist;
|
||||||
Eina_List *itemlist;
|
Eina_List *itemlist;
|
||||||
char *selection;
|
char *selection;
|
||||||
|
Edje_Input_Panel_Lang input_panel_lang;
|
||||||
Eina_Bool selecting : 1;
|
Eina_Bool selecting : 1;
|
||||||
Eina_Bool have_selection : 1;
|
Eina_Bool have_selection : 1;
|
||||||
Eina_Bool select_allow : 1;
|
Eina_Bool select_allow : 1;
|
||||||
|
@ -2649,6 +2650,96 @@ _edje_entry_input_panel_hide(Edje_Real_Part *rp)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_edje_entry_input_panel_language_set(Edje_Real_Part *rp, Edje_Input_Panel_Lang lang)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
|
||||||
|
if (!en) return;
|
||||||
|
en->input_panel_lang = lang;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
ecore_imf_context_input_panel_language_set(en->imf_context, lang);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Edje_Input_Panel_Lang
|
||||||
|
_edje_entry_input_panel_language_get(Edje_Real_Part *rp)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return EDJE_INPUT_PANEL_LANG_AUTOMATIC;
|
||||||
|
|
||||||
|
return en->input_panel_lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_edje_entry_input_panel_imdata_set(Edje_Real_Part *rp, const void *data, int len)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
ecore_imf_context_input_panel_imdata_set(en->imf_context, data, len);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_edje_entry_input_panel_imdata_get(Edje_Real_Part *rp, void *data, int *len)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
ecore_imf_context_input_panel_imdata_get(en->imf_context, data, len);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_edje_entry_input_panel_return_key_type_set(Edje_Real_Part *rp, Edje_Input_Panel_Return_Key_Type return_key_type)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
ecore_imf_context_input_panel_return_key_type_set(en->imf_context, return_key_type);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Edje_Input_Panel_Return_Key_Type
|
||||||
|
_edje_entry_input_panel_return_key_type_get(Edje_Real_Part *rp)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
return ecore_imf_context_input_panel_return_key_type_get(en->imf_context);
|
||||||
|
#endif
|
||||||
|
return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_edje_entry_input_panel_return_key_disabled_set(Edje_Real_Part *rp, Eina_Bool disabled)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
ecore_imf_context_input_panel_return_key_disabled_set(en->imf_context, disabled);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Eina_Bool
|
||||||
|
_edje_entry_input_panel_return_key_disabled_get(Edje_Real_Part *rp)
|
||||||
|
{
|
||||||
|
Entry *en = rp->entry_data;
|
||||||
|
if (!en) return EINA_FALSE;
|
||||||
|
#ifdef HAVE_ECORE_IMF
|
||||||
|
if (en->imf_context)
|
||||||
|
return ecore_imf_context_input_panel_return_key_disabled_get(en->imf_context);
|
||||||
|
#endif
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static Evas_Textblock_Cursor *
|
static Evas_Textblock_Cursor *
|
||||||
_cursor_get(Edje_Real_Part *rp, Edje_Cursor cur)
|
_cursor_get(Edje_Real_Part *rp, Edje_Cursor cur)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1952,6 +1952,14 @@ void _edje_entry_input_panel_enabled_set(Edje_Real_Part *rp, Eina_Bool enabled);
|
||||||
Eina_Bool _edje_entry_input_panel_enabled_get(Edje_Real_Part *rp);
|
Eina_Bool _edje_entry_input_panel_enabled_get(Edje_Real_Part *rp);
|
||||||
void _edje_entry_input_panel_show(Edje_Real_Part *rp);
|
void _edje_entry_input_panel_show(Edje_Real_Part *rp);
|
||||||
void _edje_entry_input_panel_hide(Edje_Real_Part *rp);
|
void _edje_entry_input_panel_hide(Edje_Real_Part *rp);
|
||||||
|
void _edje_entry_input_panel_language_set(Edje_Real_Part *rp, Edje_Input_Panel_Lang lang);
|
||||||
|
Edje_Input_Panel_Lang _edje_entry_input_panel_language_get(Edje_Real_Part *rp);
|
||||||
|
void _edje_entry_input_panel_imdata_set(Edje_Real_Part *rp, const void *data, int len);
|
||||||
|
void _edje_entry_input_panel_imdata_get(Edje_Real_Part *rp, void *data, int *len);
|
||||||
|
void _edje_entry_input_panel_return_key_type_set(Edje_Real_Part *rp, Edje_Input_Panel_Return_Key_Type return_key_type);
|
||||||
|
Edje_Input_Panel_Return_Key_Type _edje_entry_input_panel_return_key_type_get(Edje_Real_Part *rp);
|
||||||
|
void _edje_entry_input_panel_return_key_disabled_set(Edje_Real_Part *rp, Eina_Bool disabled);
|
||||||
|
Eina_Bool _edje_entry_input_panel_return_key_disabled_get(Edje_Real_Part *rp);
|
||||||
|
|
||||||
void _edje_external_init();
|
void _edje_external_init();
|
||||||
void _edje_external_shutdown();
|
void _edje_external_shutdown();
|
||||||
|
|
|
@ -1953,6 +1953,137 @@ edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part)
|
||||||
_edje_entry_input_panel_hide(rp);
|
_edje_entry_input_panel_hide(rp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Lang lang)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
_edje_entry_input_panel_language_set(rp, lang);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Edje_Input_Panel_Lang
|
||||||
|
edje_object_part_text_input_panel_language_get(const Evas_Object *obj, const char *part)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return EDJE_INPUT_PANEL_LANG_AUTOMATIC;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return EDJE_INPUT_PANEL_LANG_AUTOMATIC;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
return _edje_entry_input_panel_language_get(rp);
|
||||||
|
}
|
||||||
|
return EDJE_INPUT_PANEL_LANG_AUTOMATIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, const void *data, int len)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
_edje_entry_input_panel_imdata_set(rp, data, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char *part, void *data, int *len)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
_edje_entry_input_panel_imdata_get(rp, data, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_text_input_panel_return_key_type_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Return_Key_Type return_key_type)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
_edje_entry_input_panel_return_key_type_set(rp, return_key_type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Edje_Input_Panel_Return_Key_Type
|
||||||
|
edje_object_part_text_input_panel_return_key_type_get(const Evas_Object *obj, const char *part)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
return _edje_entry_input_panel_return_key_type_get(rp);
|
||||||
|
}
|
||||||
|
return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, const char *part, Eina_Bool disabled)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
_edje_entry_input_panel_return_key_disabled_set(rp, disabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return EINA_FALSE;
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return EINA_FALSE;
|
||||||
|
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||||
|
{
|
||||||
|
return _edje_entry_input_panel_return_key_disabled_get(rp);
|
||||||
|
}
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data)
|
edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue