From: Daniel J. S. <seo...@gm...> - 2013-08-14 18:54:18
|
After this commit, I got this build error. EDJ modules/ethumb/emotion/template.edj CCLD modules/ethumb/emotion/module.la lib/edje/.libs/libedje.so: undefined reference to `ecore_imf_context_input_panel_show_on_demand_get' lib/edje/.libs/libedje.so: undefined reference to `ecore_imf_context_input_panel_show_on_demand_set' collect2: error: ld returned 1 exit status make[4]: *** [bin/ethumb/ethumb] Error 1 Can you please check it? It was fine with one of my machines, Ubuntu 12.04, but it does not work in the other machine, Ubuntu 12.10. Thanks. Daniel Juyung Seo. On Wed, Aug 14, 2013 at 6:17 PM, Jihoon Kim - Enlightenment Git < no-...@en...> wrote: > jihoon pushed a commit to branch master. > > commit 4b5ed04559aa1a782a96f945b725b452c05e4d60 > Author: Jihoon Kim <jih...@sa...> > Date: Wed Aug 14 18:17:06 2013 +0900 > > Edje: add edje_object_part_text_input_panel_show_on_demand_set/get() > --- > ChangeLog | 6 +++++- > NEWS | 1 + > src/lib/edje/Edje_Eo.h | 28 ++++++++++++++++++++++++++ > src/lib/edje/Edje_Legacy.h | 21 +++++++++++++++++++ > src/lib/edje/edje_entry.c | 38 +++++++++++++++++++++++++++++++++++ > src/lib/edje/edje_private.h | 4 ++++ > src/lib/edje/edje_smart.c | 4 ++++ > src/lib/edje/edje_util.c | 49 > +++++++++++++++++++++++++++++++++++++++++++++ > 8 files changed, 150 insertions(+), 1 deletion(-) > > diff --git a/ChangeLog b/ChangeLog > index 8d50d51..803be7c 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,6 +1,10 @@ > +2013-08-14 Jihoon Kim > + > + * Edje: add > edje_object_part_text_input_panel_show_on_demand_set/get(). > + > 2013-08-13 Jihoon Kim > > - * Ecore_IMF: add ecore_imf_context_input_panel_on_demand_set/get() > + * Ecore_IMF: add ecore_imf_context_input_panel_on_demand_set/get(). > > 2013-08-09 Cedric Bail > > diff --git a/NEWS b/NEWS > index 6da6d0e..afbf966 100644 > --- a/NEWS > +++ b/NEWS > @@ -129,6 +129,7 @@ Additions: > - Add threshold support to Edje draggable part. > - Reduce load time of Edje_Object using Evas_Object_Textblock and > many styles. > - Add edje_object_mmap_set. > + - Add edje_object_part_text_input_panel_show_on_demand_set/get(). > * Eeze: > - Add a dummy libmount replacement for when libmount is not there. > * Ecore_Con: > diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h > index 6678a96..410709a 100644 > --- a/src/lib/edje/Edje_Eo.h > +++ b/src/lib/edje/Edje_Eo.h > @@ -79,6 +79,8 @@ enum > EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET, > EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET, > EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET, > + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW_ON_DEMAND_SET, > + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW_ON_DEMAND_GET, > EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD, > EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL, > EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL, > @@ -491,6 +493,32 @@ enum > #define edje_obj_part_text_input_panel_return_key_disabled_get(part, ret) > EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET), > EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool *, ret) > > /** > + * @def edje_obj_part_text_input_panel_show_on_demand_set > + * @since 1.8 > + * > + * @brief Set the attribute to show the input panel in case of only an > user's explicit Mouse Up event. > + * > + * @param[in] part > + * @param[in] ondemand > + * > + * @see edje_object_part_text_input_panel_show_on_demand_set > + */ > +#define edje_obj_part_text_input_panel_show_on_demand_set(part, ondemand) > EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW_ON_DEMAND_SET), > EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, ondemand) > + > +/** > + * @def edje_obj_part_text_input_panel_show_on_demand_get > + * @since 1.8 > + * > + * @brief Get the attribute to show the input panel in case of only an > user's explicit Mouse Up event. > + * > + * @param[in] part > + * @param[out] ret > + * > + * @see edje_object_part_text_input_panel_show_on_demand_get > + */ > +#define edje_obj_part_text_input_panel_show_on_demand_get(part, ret) > EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW_ON_DEMAND_GET), > EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool *, ret) > + > +/** > * @def edje_obj_text_insert_filter_callback_add > * @since 1.8 > * > diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h > index 196e498..64e4f88 100644 > --- a/src/lib/edje/Edje_Legacy.h > +++ b/src/lib/edje/Edje_Legacy.h > @@ -1241,6 +1241,27 @@ EAPI void > edje_object_part_text_input_panel_return_key_disabled_set( > EAPI Eina_Bool > edje_object_part_text_input_panel_return_key_disabled_get(const > Evas_Object *obj, const char *part); > > /** > + * 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 A valid Evas_Object handle > + * @param part The part name > + * @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.0 > + */ > +EAPI void > edje_object_part_text_input_panel_show_on_demand_set(Evas_Object *obj, > const char *part, Eina_Bool ondemand); > + > +/** > + * Get the attribute to show the input panel in case of only an user's > explicit Mouse Up event. > + * > + * @param obj A valid Evas_Object handle > + * @param part The part name > + * @return @c EINA_TRUE if the input panel will be shown in case of only > Mouse up event. > + * @since 1.8.0 > + */ > +EAPI Eina_Bool > edje_object_part_text_input_panel_show_on_demand_get(const Evas_Object > *obj, const char *part); > + > +/** > * Add a filter function for newly inserted text. > * > * Whenever text is inserted (not the same as set) into the given @p part, > diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c > index 159a2b4..d7490f9 100644 > --- a/src/lib/edje/edje_entry.c > +++ b/src/lib/edje/edje_entry.c > @@ -3541,6 +3541,44 @@ > _edje_entry_input_panel_return_key_disabled_get(Edje_Real_Part *rp) > #endif > } > > +#ifdef HAVE_ECORE_IMF > +void > +_edje_entry_input_panel_show_on_demand_set(Edje_Real_Part *rp, Eina_Bool > ondemand) > +#else > +void > +_edje_entry_input_panel_show_on_demand_set(Edje_Real_Part *rp, Eina_Bool > ondemand __UNUSED__) > +#endif > +{ > + Entry *en; > + > + if ((rp->type != EDJE_RP_TYPE_TEXT) || > + (!rp->typedata.text)) return; > + en = rp->typedata.text->entry_data; > + if (!en) return; > +#ifdef HAVE_ECORE_IMF > + if (en->imf_context) > + ecore_imf_context_input_panel_show_on_demand_set(en->imf_context, > ondemand); > +#endif > +} > + > +Eina_Bool > +_edje_entry_input_panel_show_on_demand_get(Edje_Real_Part *rp) > +{ > + Entry *en; > + > + if ((rp->type != EDJE_RP_TYPE_TEXT) || > + (!rp->typedata.text)) return EINA_FALSE; > + en = rp->typedata.text->entry_data; > + if (!en) return EINA_FALSE; > +#ifdef HAVE_ECORE_IMF > + if (en->imf_context) { > + Eina_Bool ret = > ecore_imf_context_input_panel_show_on_demand_get(en->imf_context); > + return ret; > + } > +#endif > + return EINA_FALSE; > +} > + > static Evas_Textblock_Cursor * > _cursor_get(Edje_Real_Part *rp, Edje_Cursor cur) > { > diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h > index 608aa01..456a690 100644 > --- a/src/lib/edje/edje_private.h > +++ b/src/lib/edje/edje_private.h > @@ -2326,6 +2326,8 @@ void > _edje_entry_input_panel_return_key_type_set(Edje_Real_Part *rp, Edje_Input_ > 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_entry_input_panel_show_on_demand_set(Edje_Real_Part *rp, > Eina_Bool ondemand); > +Eina_Bool _edje_entry_input_panel_show_on_demand_get(Edje_Real_Part *rp); > > void _edje_external_init(void); > void _edje_external_shutdown(void); > @@ -2487,6 +2489,8 @@ void _part_text_input_panel_return_key_type_set(Eo > *obj, void *_pd, va_list *lis > void _part_text_input_panel_return_key_type_get(Eo *obj, void *_pd, > va_list *list); > void _part_text_input_panel_return_key_disabled_set(Eo *obj, void *_pd, > va_list *list); > void _part_text_input_panel_return_key_disabled_get(Eo *obj, void *_pd, > va_list *list); > +void _part_text_input_panel_show_on_demand_set(Eo *obj, void *_pd, > va_list *list); > +void _part_text_input_panel_show_on_demand_get(Eo *obj, void *_pd, > va_list *list); > void _text_insert_filter_callback_add(Eo *obj, void *_pd, va_list *list); > void _text_insert_filter_callback_del(Eo *obj, void *_pd, va_list *list); > void _text_insert_filter_callback_del_full(Eo *obj, void *_pd, va_list > *list); > diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c > index de3ee80..2a75e43 100644 > --- a/src/lib/edje/edje_smart.c > +++ b/src/lib/edje/edje_smart.c > @@ -466,6 +466,8 @@ _edje_smart_class_constructor(Eo_Class *klass) > > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET), > _part_text_input_panel_return_key_type_get), > > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET), > _part_text_input_panel_return_key_disabled_set), > > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET), > _part_text_input_panel_return_key_disabled_get), > + > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW_ON_DEMAND_SET), > _part_text_input_panel_show_on_demand_set), > + > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW_ON_DEMAND_GET), > _part_text_input_panel_show_on_demand_get), > > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD), > _text_insert_filter_callback_add), > > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL), > _text_insert_filter_callback_del), > > EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL), > _text_insert_filter_callback_del_full), > @@ -612,6 +614,8 @@ static const Eo_Op_Description op_desc[] = { > > EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET, > "Get the return key type."), > > EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET, > "Set the return key on the input panel to be disabled."), > > EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET, > "Get whether the return key on the input panel should be disabled or not."), > + > EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_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(EDJE_OBJ_SUB_ID_PART_TEXT_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(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD, > "Add a filter function for newly inserted text."), > EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL, > "Delete a function from the filter list."), > > EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL, > "Delete a function and matching user data from the filter list."), > diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c > index 41550d0..2bfbf9d 100644 > --- a/src/lib/edje/edje_util.c > +++ b/src/lib/edje/edje_util.c > @@ -3135,6 +3135,55 @@ _part_text_input_panel_return_key_disabled_get(Eo > *obj EINA_UNUSED, void *_pd, v > } > > EAPI void > +edje_object_part_text_input_panel_show_on_demand_set(Evas_Object *obj, > const char *part, Eina_Bool ondemand) > +{ > + if (!obj) return; > + eo_do(obj, edje_obj_part_text_input_panel_show_on_demand_set(part, > ondemand)); > +} > + > +void _part_text_input_panel_show_on_demand_set(Eo *obj EINA_UNUSED, void > *_pd, va_list *list) > +{ > + const char *part = va_arg(*list, const char *); > + Eina_Bool ondemand = va_arg(*list, int); > + Edje *ed = _pd; > + Edje_Real_Part *rp; > + > + 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_show_on_demand_set(rp, ondemand); > + } > +} > + > +EAPI Eina_Bool > +edje_object_part_text_input_panel_show_on_demand_get(const Evas_Object > *obj, const char *part) > +{ > + if (!obj) return EINA_FALSE; > + Eina_Bool ret = EINA_FALSE; > + eo_do((Eo *)obj, > edje_obj_part_text_input_panel_show_on_demand_get(part, &ret)); > + return ret; > +} > + > +void _part_text_input_panel_show_on_demand_get(Eo *obj EINA_UNUSED, void > *_pd, va_list *list) > +{ > + const char *part = va_arg(*list, const char *); > + Eina_Bool *ret = va_arg(*list, Eina_Bool *); > + Edje *ed = _pd; > + Edje_Real_Part *rp; > + *ret = EINA_FALSE; > + > + 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) > + { > + *ret = _edje_entry_input_panel_show_on_demand_get(rp); > + } > +} > + > +EAPI void > edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char > *part, Edje_Text_Filter_Cb func, void *data) > { > if (!obj) return; > > -- > > > ------------------------------------------------------------------------------ > Get 100% visibility into Java/.NET code with AppDynamics Lite! > It's a free troubleshooting tool designed for production. > Get down to code-level detail for bottlenecks, with <2% overhead. > Download for free and get started troubleshooting in minutes. > http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk > |