Actually I want to discuss about this kinds of APIs for long time ago. http://sourceforge.net/mailarchive/message.php?msg_id=31297258 But nobody is interested in this. ;-(
This API is dangerous but the root cause was from App. developers. For the genlist/gengrid cases, App can use realized/unrealized callback for checking evas object of the object item. 2013/9/2 ChunEon Park <her...@naver.com> > I think figuring out the items geometry can be one of the common scenarios > in app side. > > This is already raised before but nobody answered solution properly as far > as I remember. > > My conclusion is, this is a fight between "flexibilty" and "stable" > > For stable, we don't provide that api. > But i don't think this gurantee application stable and developers satisfy. > Maybe this may cause them painful to find out proper solutions and they > may try more dangerous and difficult method in worse case. > > This causes app go around too much. > > And we don't need to make app developers hard to make it. > > ------------------------------------ > -Regards, Hermet- > > -----Original Message----- > From: "Tom Hacohen"<tom.haco...@samsung.com> > To: "Enlightenment developer list"< > enlightenment-devel@lists.sourceforge.net>; > Cc: > Sent: 2013-09-02 (월) 18:20:35 > Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: > elementary/widget - introduce elm_object_item_object_get(). > > I have to side with Mike here. Both the decision process and the > solution smell badly. Worse than Mike's tuna breakfasts. > > -- > Tom. > > On 02/09/13 09:48, ChunEon Park wrote: > > If they know what they are doing exactly, then it won' t be problem. > > This gives the applications a chance to decorate their appilcation > easily. > > > > ------------------------------------ > > -Regards, Hermet- > > > > -----Original Message----- > > From: "Michael Blumenkrantz"<michael.blumenkrantz>@gmail.com> > > To: "Enlightenment developer list"<enlightenment-devel>@ > lists.sourceforge.net>; > > Cc: > > Sent: 2013-09-02 (월) 17:29:41 > > Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: > elementary/widget - introduce elm_object_item_object_get(). > > > > so wait a minute...everyone fights against this for literally over a > year, > > and now it gets in without further discussion because "applications > require > > it"???? seriously? > > > > > > On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git < > > no-re...@enlightenment.org> wrote: > > > >> hermet pushed a commit to branch master. > >> > >> commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c > >> Author: ChunEon Park <hermet>@hermet.pe.kr> > >> Date: Mon Sep 2 17:19:36 2013 +0900 > >> > >> elementary/widget - introduce elm_object_item_object_get(). > >> > >> We've countered application's requirements multiple times to they > have > >> the object handle from the elm_object_item. > >> > >> Now we introduce it for their convenient but they should use it > >> carefully. > >> --- > >> ChangeLog 6 +++++- > >> NEWS 1 + > >> src/lib/elm_main.c 6 ++++++ > >> src/lib/elm_object_item.h 19 +++++++++++++++++++ > >> src/lib/elm_removed.h 15 +-------------- > >> src/lib/elm_widget.c 7 +++++++ > >> src/lib/elm_widget.h 1 + > >> 7 files changed, 40 insertions(+), 15 deletions(-) > >> > >> diff --git a/ChangeLog b/ChangeLog > >> index 4c59fdc..1695f01 100644 > >> --- a/ChangeLog > >> +++ b/ChangeLog > >> @@ -1578,6 +1578,10 @@ > >> > >> * Gengrid: implement selectraise feature. > >> > >> -2013-08-28 DAniel Juyung Seo (SeoZ) > >> +2013-08-28 Daniel Juyung Seo (SeoZ) > >> > >> * Bg: Add bg reset feature. > >> + > >> +2013-09-02 ChunEon Park (Hermet) > >> + > >> + * Widget: Introduce elm_object_item_object_get() API. > >> diff --git a/NEWS b/NEWS > >> index c2056f3..c6046bd 100644 > >> --- a/NEWS > >> +++ b/NEWS > >> @@ -85,6 +85,7 @@ Additions: > >> * Add elm_win_focus_highlight_animate_set/get(). > >> * Add selectraise feature to gengrid. > >> * Add bg reset feature. > >> + * Add elm_object_item_object_get(). > >> > >> Improvements: > >> > >> diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c > >> index 2fa2ea0..9f138b2 100644 > >> --- a/src/lib/elm_main.c > >> +++ b/src/lib/elm_main.c > >> @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const > >> Elm_Object_Item *it) > >> { > >> return elm_widget_item_cursor_engine_only_get(it); > >> } > >> + > >> +EAPI const Evas_Object * > >> +elm_object_item_object_get(const Elm_Object_Item *it) > >> +{ > >> + return _elm_widget_item_object_get((Elm_Widget_Item*)it); > >> +} > >> diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h > >> index 8a0ccde..f256a63 100644 > >> --- a/src/lib/elm_object_item.h > >> +++ b/src/lib/elm_object_item.h > >> @@ -34,6 +34,25 @@ typedef void > >> (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec > >> EAPI Evas_Object *elm_object_item_widget_get(const > >> Elm_Object_Item *it); > >> > >> /** > >> + * Get the object item's internal object handle. > >> + * > >> + * @param it The Elementary object item > >> + * @return The Internal object of the object item. > >> + * > >> + * @note This function should only be used if you really need to refer > the > >> + * internal object's properties (i.e geometry). Since the object items > are > >> + * managed/controlled by the widget, you should not modify the object > >> directly > >> + * nor you should not treat the object without validation. > >> + * > >> + * Some widget items may return @c NULL for this API if the items @p > are > >> not > >> + * based on the evas object. > >> + * > >> + * @since 1.8 > >> + * @ingroup General > >> + */ > >> +EAPI const Evas_Object *elm_object_item_object_get(const > >> Elm_Object_Item *it); > >> + > >> +/** > >> * Set a content of an object item > >> * > >> * @param it The Elementary object item > >> diff --git a/src/lib/elm_removed.h b/src/lib/elm_removed.h > >> index 416726a..59b982f 100644 > >> --- a/src/lib/elm_removed.h > >> +++ b/src/lib/elm_removed.h > >> @@ -490,19 +490,6 @@ EINA_DEPRECATED EAPI Elm_Gen_Item > >> *elm_gen_item_prev_get(const Elm_Gen_Item *it) > >> EINA_DEPRECATED EAPI Evas_Object *elm_gen_item_widget_get(const > >> Elm_Gen_Item *it); > >> > >> /** > >> - * Get the widget object's handle which contains a given item > >> - * > >> - * @param it The Elementary object item > >> - * @return The widget object > >> - * > >> - * @note This returns the widget object itself that an item belongs to. > >> - * @note Every elm_object_item supports this API > >> - * @deprecated Use elm_object_item_widget_get() instead > >> - * @ingroup General > >> - */ > >> -EINA_DEPRECATED EAPI Evas_Object > >> *elm_object_item_object_get(const Elm_Object_Item *it); > >> - > >> -/** > >> * Set the text to show in the anchorblock > >> * > >> * Sets the text of the anchorblock to @p text. This text can include > >> markup > >> @@ -3303,7 +3290,7 @@ EINA_DEPRECATED EAPI void > >> elm_slideshow_show(Elm_Object_Item *i > >> * > >> * This returns the toolbar object itself that an item belongs to. > >> * > >> - * @deprecated use elm_object_item_object_get() instead. > >> + * @deprecated use elm_object_item_widget_get() instead. > >> */ > >> EINA_DEPRECATED EAPI Evas_Object *elm_toolbar_item_toolbar_get(const > >> Elm_Object_Item *it); > >> > >> diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c > >> index 5f1aae8..9bcec72 100644 > >> --- a/src/lib/elm_widget.c > >> +++ b/src/lib/elm_widget.c > >> @@ -5771,6 +5771,13 @@ _elm_widget_item_translate(Elm_Widget_Item *item) > >> #endif > >> } > >> > >> +EAPI const Evas_Object * > >> +_elm_widget_item_object_get(const Elm_Widget_Item *item) > >> +{ > >> + ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL); > >> + return item->view; > >> +} > >> + > >> /* happy debug functions */ > >> #ifdef ELM_DEBUG > >> static void > >> diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h > >> index 945ef9d..ef41e15 100644 > >> --- a/src/lib/elm_widget.h > >> +++ b/src/lib/elm_widget.h > >> @@ -772,6 +772,7 @@ EAPI void > >> _elm_widget_item_domain_translatable_part_text_set(Elm_Wid > >> EAPI const char * > _elm_widget_item_translatable_part_text_get(const > >> Elm_Widget_Item *item, const char *part); > >> EAPI void _elm_widget_item_translate(Elm_Widget_Item > *item); > >> EAPI void > >> _elm_widget_item_domain_part_text_translatable_set(Elm_Widget_Item > *item, > >> const char *part, const char *domain, Eina_Bool translatable); > >> +EAPI const Evas_Object *_elm_widget_item_object_get(const > Elm_Widget_Item > >> *item); > >> > >> /** > >> * Function to operate on a given widget's scrollabe children when > >> necessary. > >> > >> -- > >> > >> > >> > ------------------------------------------------------------------------------ > >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > >> Discover the easy way to master current and previous Microsoft > technologies > >> and advance your career. Get an incredible 1,500+ hours of step-by-step > >> tutorial videos with LearnDevNow. Subscribe today and save! > >> > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > >> > > > ------------------------------------------------------------------------------ > > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > > Discover the easy way to master current and previous Microsoft > technologies > > and advance your career. Get an incredible 1,500+ hours of step-by-step > > tutorial videos with LearnDevNow. Subscribe today and save! > > > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > ------------------------------------------------------------------------------ > > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > > Discover the easy way to master current and previous Microsoft > technologies > > and advance your career. Get an incredible 1,500+ hours of step-by-step > > tutorial videos with LearnDevNow. Subscribe today and save! > > > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- BRs, Kim. ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel