There is no way to add resize callback to the object item at this moment. And sure, this api can be dangerous if app uses it incorrectly.
However, If this api should be used by all apps obligatorily, then I won't add it. Problem is, we can't sure all apis are perfect in the world. simply like double free(). So we provide api doc to warn the developers for dangerous cases. ------------------------------------ -Regards, Hermet- -----Original Message----- From: "daniel.za...@samsung.com"<daniel.za...@samsung.com> To: "Enlightenment developer list"<enlightenment-devel@lists.sourceforge.net>; Cc: "ChunEon Park"<her...@naver.com>; Sent: 2013-09-02 (์) 20:01:07 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). Sorry for the dumb question but resize callback can't help on that? Imo, storing pointers to obsolete objects can be very dangerous. But it is just my opinion ;-) Vive Valgrind! Vive la France! JackDanielZ, alias daniel On 09/02/2013 01:53 PM, ChunEon Park wrote: > 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.hacohen>@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 ------------------------------------------------------------------------------ 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