Oops we're in a feature freeze and stabilization period.
This needs to be reverted.
https://phab.enlightenment.org/w/efl_and_elementary_1_9/

Thanks.

Daniel Juyung seo (SeoZ)



On Fri, Jan 3, 2014 at 6:55 PM, Jihoon Kim <imfin...@gmail.com> wrote:

> jihoon pushed a commit to branch master.
>
>
> http://git.enlightenment.org/core/elementary.git/commit/?id=c8f021ba302279a91666ddda04f0247b3a2931f6
>
> commit c8f021ba302279a91666ddda04f0247b3a2931f6
> Author: Jihoon Kim <jihoon48....@samsung.com>
> Date:   Fri Jan 3 18:51:38 2014 +0900
>
>     entry: Add elm_entry_input_panel_show_on_demand_set/get API
>
>     This API sets 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.
> ---
>  src/lib/elm_entry.c        | 61
> +++++++++++++++++++++++++++++++++++++++++++++-
>  src/lib/elm_entry_eo.h     | 30 +++++++++++++++++++++++
>  src/lib/elm_entry_legacy.h | 24 ++++++++++++++++++
>  src/lib/elm_widget_entry.h |  1 +
>  4 files changed, 115 insertions(+), 1 deletion(-)
>
> diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c
> index 81a35db..cc155c3 100644
> --- a/src/lib/elm_entry.c
> +++ b/src/lib/elm_entry.c
> @@ -594,6 +594,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);
>     edje_object_part_text_input_panel_return_key_disabled_set
>       (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);
>
>     // elm_entry_cursor_pos_set -> cursor,changed -> widget_show_region_set
>     // -> smart_objects_calculate will call all smart calculate functions,
> @@ -918,7 +920,7 @@ _elm_entry_smart_on_focus(Eo *obj, void *_pd
> EINA_UNUSED, va_list *list)
>       {
>          evas_object_focus_set(sd->entry_edje, EINA_TRUE);
>          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"))
>            elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON);
>          evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL);
> @@ -1576,6 +1578,8 @@ _mouse_up_cb(void *data,
>               void *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);
>
> @@ -1588,6 +1592,19 @@ _mouse_up_cb(void *data,
>               _magnifier_hide(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))
>       {
> @@ -5600,6 +5617,44 @@ _input_panel_return_key_autoenabled_set(Eo *obj,
> void *_pd, va_list *list)
>     _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;
> +
> +   if (ret) *ret = sd->input_panel_show_on_demand;
> +}
> +
>  EAPI void *
>  elm_entry_imf_context_get(Evas_Object *obj)
>  {
> @@ -5868,6 +5923,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_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_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_class_funcs_set(klass, func_desc);
> @@ -5965,6 +6022,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_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_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
>  };
>
> diff --git a/src/lib/elm_entry_eo.h b/src/lib/elm_entry_eo.h
> index 62da6a1..e168ce5 100644
> --- a/src/lib/elm_entry_eo.h
> +++ b/src/lib/elm_entry_eo.h
> @@ -95,6 +95,8 @@ enum
>     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_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
>  };
>
> @@ -1271,6 +1273,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)
>
>  /**
> + * @def elm_obj_entry_input_panel_show_on_demand_set
> + * @since 1.9
> + *
> + * 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.9
> + *
> + * 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
>   * @since 1.8
>   *
> diff --git a/src/lib/elm_entry_legacy.h b/src/lib/elm_entry_legacy.h
> index 40d1e47..b3f5506 100644
> --- a/src/lib/elm_entry_legacy.h
> +++ b/src/lib/elm_entry_legacy.h
> @@ -1191,3 +1191,27 @@ EAPI void
> elm_entry_input_panel_layout_variation_set(Evas_Obje
>   * @since 1.8
>   */
>  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.9
> + *
> + * @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.9
> + *
> + * @ingroup Entry
> + */
> +EAPI Eina_Bool
>  elm_entry_input_panel_show_on_demand_get(const Evas_Object *obj);
> diff --git a/src/lib/elm_widget_entry.h b/src/lib/elm_widget_entry.h
> index 4e37a10..dc2b96d 100644
> --- a/src/lib/elm_widget_entry.h
> +++ b/src/lib/elm_widget_entry.h
> @@ -102,6 +102,7 @@ struct _Elm_Entry_Smart_Data
>     Eina_Bool                             sel_mode : 1;
>     Eina_Bool                             changed : 1;
>     Eina_Bool                             scroll : 1;
> +   Eina_Bool                             input_panel_show_on_demand : 1;
>  };
>
>  typedef struct _Elm_Entry_Item_Provider     Elm_Entry_Item_Provider;
>
> --
>
>
>
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to