On Thu, Feb 23, 2012 at 7:15 AM, Enlightenment SVN
<[email protected]> wrote:
> Log:
> Add edje_object_part_text_imf_context_get API
>  This API can be used to get the input method context in entry.
>
>
> Author:       jihoon
> Date:         2012-02-22 22:15:12 -0800 (Wed, 22 Feb 2012)
> New Revision: 68306
> Trac:         http://trac.enlightenment.org/e/changeset/68306
>
> Modified:
>  trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_entry.c 
> trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_util.c
>
> Modified: trunk/edje/src/lib/Edje.h
> ===================================================================
> --- trunk/edje/src/lib/Edje.h   2012-02-23 06:13:00 UTC (rev 68305)
> +++ trunk/edje/src/lib/Edje.h   2012-02-23 06:15:12 UTC (rev 68306)
> @@ -452,6 +452,10 @@
>  # undef EAPI
>  #endif
>
> +#ifdef HAVE_ECORE_IMF

NOOOOO ! NEVER use configure defined macro in public header files !!!

Hence he function edje_object_part_text_imf_context_get() below must
be always defined. In case there is no ecore_imf, it should just
return NULL

and you have forgotten @since in the doc

Vincent

> +#include <Ecore_IMF.h>
> +#endif
> +
>  #ifdef _WIN32
>  # ifdef EFL_EDJE_BUILD
>  #  ifdef DLL_EXPORT
> @@ -2869,9 +2873,21 @@
>  */
>  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
>
> Modified: trunk/edje/src/lib/edje_entry.c
> ===================================================================
> --- trunk/edje/src/lib/edje_entry.c     2012-02-23 06:13:00 UTC (rev 68305)
> +++ trunk/edje/src/lib/edje_entry.c     2012-02-23 06:15:12 UTC (rev 68306)
> @@ -2553,6 +2553,17 @@
>      }
>  }
>
> +#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)
>  {
>
> Modified: trunk/edje/src/lib/edje_private.h
> ===================================================================
> --- trunk/edje/src/lib/edje_private.h   2012-02-23 06:13:00 UTC (rev 68305)
> +++ trunk/edje/src/lib/edje_private.h   2012-02-23 06:15:12 UTC (rev 68306)
> @@ -1940,7 +1940,9 @@
>  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);
>
> Modified: trunk/edje/src/lib/edje_util.c
> ===================================================================
> --- trunk/edje/src/lib/edje_util.c      2012-02-23 06:13:00 UTC (rev 68305)
> +++ trunk/edje/src/lib/edje_util.c      2012-02-23 06:15:12 UTC (rev 68306)
> @@ -1527,6 +1527,26 @@
>      _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)
>  {
>
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> enlightenment-svn mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to