forked from enlightenment/efl
Add elm_entry_input_panel_show_on_demand_set/get()
This commit is contained in:
parent
f2d0b1b567
commit
c69f560ea1
|
@ -1558,3 +1558,7 @@
|
||||||
|
|
||||||
* Mapbuf: Ensure that content size calculation is correctly finished
|
* Mapbuf: Ensure that content size calculation is correctly finished
|
||||||
because the mapbuf is willing to block the size calculation forcely.
|
because the mapbuf is willing to block the size calculation forcely.
|
||||||
|
|
||||||
|
2013-08-14 Jihoon Kim (jihoon)
|
||||||
|
|
||||||
|
* Entry: Add elm_entry_input_panel_show_on_demand_set/get().
|
||||||
|
|
|
@ -83,6 +83,7 @@ Additions:
|
||||||
* File Selector : Support elm_object_part_text_set() for the ok, cancel part to change the OK, Cancel button label.
|
* File Selector : Support elm_object_part_text_set() for the ok, cancel part to change the OK, Cancel button label.
|
||||||
* Add _elm_access_object_get, deprecate _elm_access_info_get
|
* Add _elm_access_object_get, deprecate _elm_access_info_get
|
||||||
* Add elm_win_focus_highlight_animate_set/get().
|
* Add elm_win_focus_highlight_animate_set/get().
|
||||||
|
* Add elm_entry_input_panel_show_on_demand_set/get().
|
||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
|
||||||
|
|
|
@ -519,6 +519,8 @@ _elm_entry_smart_theme(Eo *obj, void *_pd, va_list *list)
|
||||||
(sd->entry_edje, "elm.text", (Edje_Input_Panel_Return_Key_Type)sd->input_panel_return_key_type);
|
(sd->entry_edje, "elm.text", (Edje_Input_Panel_Return_Key_Type)sd->input_panel_return_key_type);
|
||||||
edje_object_part_text_input_panel_return_key_disabled_set
|
edje_object_part_text_input_panel_return_key_disabled_set
|
||||||
(sd->entry_edje, "elm.text", sd->input_panel_return_key_disabled);
|
(sd->entry_edje, "elm.text", sd->input_panel_return_key_disabled);
|
||||||
|
edje_object_part_text_input_panel_show_on_demand_set
|
||||||
|
(sd->entry_edje, "elm.text", sd->input_panel_show_on_demand);
|
||||||
|
|
||||||
if (sd->cursor_pos != 0)
|
if (sd->cursor_pos != 0)
|
||||||
elm_entry_cursor_pos_set(obj, sd->cursor_pos);
|
elm_entry_cursor_pos_set(obj, sd->cursor_pos);
|
||||||
|
@ -831,7 +833,7 @@ _elm_entry_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
|
||||||
{
|
{
|
||||||
evas_object_focus_set(sd->entry_edje, EINA_TRUE);
|
evas_object_focus_set(sd->entry_edje, EINA_TRUE);
|
||||||
edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
|
edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
|
||||||
if (top && top_is_win && sd->input_panel_enable &&
|
if (top && top_is_win && sd->input_panel_enable && !sd->input_panel_show_on_demand &&
|
||||||
!edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))
|
!edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))
|
||||||
elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON);
|
elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON);
|
||||||
evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL);
|
evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL);
|
||||||
|
@ -1540,6 +1542,8 @@ _mouse_up_cb(void *data,
|
||||||
void *event_info)
|
void *event_info)
|
||||||
{
|
{
|
||||||
Evas_Event_Mouse_Up *ev = event_info;
|
Evas_Event_Mouse_Up *ev = event_info;
|
||||||
|
Eina_Bool top_is_win = EINA_FALSE;
|
||||||
|
Evas_Object *top;
|
||||||
|
|
||||||
ELM_ENTRY_DATA_GET(data, sd);
|
ELM_ENTRY_DATA_GET(data, sd);
|
||||||
|
|
||||||
|
@ -1552,6 +1556,19 @@ _mouse_up_cb(void *data,
|
||||||
_magnifier_hide(data);
|
_magnifier_hide(data);
|
||||||
_menu_call(data);
|
_menu_call(data);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
top = elm_widget_top_get(data);
|
||||||
|
if (top)
|
||||||
|
{
|
||||||
|
if (!strcmp(evas_object_type_get(top), "elm_win"))
|
||||||
|
top_is_win = EINA_TRUE;
|
||||||
|
|
||||||
|
if (top_is_win && sd->input_panel_enable && sd->input_panel_show_on_demand &&
|
||||||
|
!edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))
|
||||||
|
elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ((ev->button == 3) && (!_elm_config->desktop_entry))
|
else if ((ev->button == 3) && (!_elm_config->desktop_entry))
|
||||||
{
|
{
|
||||||
|
@ -5337,6 +5354,44 @@ _input_panel_return_key_autoenabled_set(Eo *obj, void *_pd, va_list *list)
|
||||||
_return_key_enabled_check(obj);
|
_return_key_enabled_check(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_entry_input_panel_show_on_demand_set(Evas_Object *obj,
|
||||||
|
Eina_Bool ondemand)
|
||||||
|
{
|
||||||
|
ELM_ENTRY_CHECK(obj);
|
||||||
|
eo_do(obj, elm_obj_entry_input_panel_show_on_demand_set(ondemand));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_input_panel_show_on_demand_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||||
|
{
|
||||||
|
Eina_Bool ondemand = va_arg(*list, int);
|
||||||
|
Elm_Entry_Smart_Data *sd = _pd;
|
||||||
|
|
||||||
|
sd->input_panel_show_on_demand = ondemand;
|
||||||
|
|
||||||
|
edje_object_part_text_input_panel_show_on_demand_set
|
||||||
|
(sd->entry_edje, "elm.text", ondemand);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
elm_entry_input_panel_show_on_demand_get(const Evas_Object *obj)
|
||||||
|
{
|
||||||
|
ELM_ENTRY_CHECK(obj) EINA_FALSE;
|
||||||
|
Eina_Bool ret = EINA_FALSE;
|
||||||
|
eo_do((Eo *) obj, elm_obj_entry_input_panel_show_on_demand_get(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_input_panel_show_on_demand_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||||
|
{
|
||||||
|
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||||
|
Elm_Entry_Smart_Data *sd = _pd;
|
||||||
|
|
||||||
|
*ret = sd->input_panel_show_on_demand;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void *
|
EAPI void *
|
||||||
elm_entry_imf_context_get(Evas_Object *obj)
|
elm_entry_imf_context_get(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
|
@ -5601,6 +5656,8 @@ _class_constructor(Eo_Class *klass)
|
||||||
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END), _anchor_hover_end),
|
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END), _anchor_hover_end),
|
||||||
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET), _input_panel_layout_variation_set),
|
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET), _input_panel_layout_variation_set),
|
||||||
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET), _input_panel_layout_variation_get),
|
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET), _input_panel_layout_variation_get),
|
||||||
|
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_SET), _input_panel_show_on_demand_set),
|
||||||
|
EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_GET), _input_panel_show_on_demand_get),
|
||||||
EO_OP_FUNC_SENTINEL
|
EO_OP_FUNC_SENTINEL
|
||||||
};
|
};
|
||||||
eo_class_funcs_set(klass, func_desc);
|
eo_class_funcs_set(klass, func_desc);
|
||||||
|
@ -5696,6 +5753,8 @@ static const Eo_Op_Description op_desc[] = {
|
||||||
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END, "Ends the hover popup in the entry."),
|
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END, "Ends the hover popup in the entry."),
|
||||||
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET, "Set the input panel layout variation of the entry."),
|
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET, "Set the input panel layout variation of the entry."),
|
||||||
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET, "Get the input panel layout variation of the entry."),
|
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET, "Get the input panel layout variation of the entry."),
|
||||||
|
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_SET, "Set the attribute to show the input panel in case of only an user's explicit Mouse Up event."),
|
||||||
|
EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_GET, "Get the attribute to show the input panel in case of only an user's explicit Mouse Up event."),
|
||||||
EO_OP_DESCRIPTION_SENTINEL
|
EO_OP_DESCRIPTION_SENTINEL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,8 @@ enum
|
||||||
ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END,
|
ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END,
|
||||||
ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET,
|
ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET,
|
||||||
ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET,
|
ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET,
|
||||||
|
ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_SET,
|
||||||
|
ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_GET,
|
||||||
ELM_OBJ_ENTRY_SUB_ID_LAST
|
ELM_OBJ_ENTRY_SUB_ID_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1239,6 +1241,34 @@ enum
|
||||||
*/
|
*/
|
||||||
#define elm_obj_entry_input_panel_return_key_autoenabled_set(enabled) ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_RETURN_KEY_AUTOENABLED_SET), EO_TYPECHECK(Eina_Bool, enabled)
|
#define elm_obj_entry_input_panel_return_key_autoenabled_set(enabled) ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_RETURN_KEY_AUTOENABLED_SET), EO_TYPECHECK(Eina_Bool, enabled)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def elm_obj_entry_input_panel_show_on_demand_set
|
||||||
|
* @since 1.8
|
||||||
|
*
|
||||||
|
* Set the attribute to show the input panel in case of only an user's explicit Mouse Up event.
|
||||||
|
*
|
||||||
|
* @param[in] ondemand
|
||||||
|
*
|
||||||
|
* @see elm_entry_input_panel_show_on_demand_set
|
||||||
|
*
|
||||||
|
* @ingroup Entry
|
||||||
|
*/
|
||||||
|
#define elm_obj_entry_input_panel_show_on_demand_set(ondemand) ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_SET), EO_TYPECHECK(Eina_Bool, ondemand)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def elm_obj_entry_input_panel_show_on_demand_get
|
||||||
|
* @since 1.8
|
||||||
|
*
|
||||||
|
* Get the attribute to show the input panel in case of only an user's explicit Mouse Up event.
|
||||||
|
*
|
||||||
|
* @param[out] ret
|
||||||
|
*
|
||||||
|
* @see elm_entry_input_panel_show_on_demand_get
|
||||||
|
*
|
||||||
|
* @ingroup Entry
|
||||||
|
*/
|
||||||
|
#define elm_obj_entry_input_panel_show_on_demand_get(ret) ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_SHOW_ON_DEMAND_GET), EO_TYPECHECK(Eina_Bool *, ret)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @def elm_obj_entry_imf_context_get
|
* @def elm_obj_entry_imf_context_get
|
||||||
* @since 1.8
|
* @since 1.8
|
||||||
|
|
|
@ -1170,3 +1170,27 @@ EAPI void elm_entry_input_panel_layout_variation_set(Evas_Obje
|
||||||
* @since 1.8
|
* @since 1.8
|
||||||
*/
|
*/
|
||||||
EAPI int elm_entry_input_panel_layout_variation_get(const Evas_Object *obj);
|
EAPI int elm_entry_input_panel_layout_variation_get(const Evas_Object *obj);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the attribute to show the input panel in case of only an user's explicit Mouse Up event.
|
||||||
|
* It doesn't request to show the input panel even though it has focus.
|
||||||
|
*
|
||||||
|
* @param obj The entry object
|
||||||
|
* @param ondemand If true, the input panel will be shown in case of only Mouse up event.
|
||||||
|
* (Focus event will be ignored.)
|
||||||
|
* @since 1.8
|
||||||
|
*
|
||||||
|
* @ingroup Entry
|
||||||
|
*/
|
||||||
|
EAPI void elm_entry_input_panel_show_on_demand_set(Evas_Object *obj, Eina_Bool ondemand);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the attribute to show the input panel in case of only an user's explicit Mouse Up event.
|
||||||
|
*
|
||||||
|
* @param obj The entry object
|
||||||
|
* @return @c EINA_TRUE if the input panel will be shown in case of only Mouse up event.
|
||||||
|
* @since 1.8
|
||||||
|
*
|
||||||
|
* @ingroup Entry
|
||||||
|
*/
|
||||||
|
EAPI Eina_Bool elm_entry_input_panel_show_on_demand_get(const Evas_Object *obj);
|
||||||
|
|
|
@ -95,6 +95,7 @@ struct _Elm_Entry_Smart_Data
|
||||||
Eina_Bool sel_mode : 1;
|
Eina_Bool sel_mode : 1;
|
||||||
Eina_Bool changed : 1;
|
Eina_Bool changed : 1;
|
||||||
Eina_Bool scroll : 1;
|
Eina_Bool scroll : 1;
|
||||||
|
Eina_Bool input_panel_show_on_demand : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider;
|
typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider;
|
||||||
|
|
Loading…
Reference in New Issue