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

Reply via email to