done

2011/12/7 Daniel Juyung Seo <seojuyu...@gmail.com>

> This is cool!!
> Please update ElementaryChanges wiki page for elementary API or
> whatever changes.
> http://trac.enlightenment.org/e/wiki/ElementaryChanges
>
> I just saw the elm_index code and there are a lot to be fixed in elm_index
> :(
> This will be done soon :)
>
> Thanks.
> Daniel Juyung Soe (SeoZ)
>
> On Tue, Dec 6, 2011 at 11:05 PM, Enlightenment SVN
> <no-re...@enlightenment.org> wrote:
> > Log:
> > elementary: API break ! using Elm_Index_Item instead of the item's data
> in the index widget. This was applied for function and smart callbacks
> >
> > Author:       yoz
> > Date:         2011-12-06 06:05:55 -0800 (Tue, 06 Dec 2011)
> > New Revision: 65956
> > Trac:         http://trac.enlightenment.org/e/changeset/65956
> >
> > Modified:
> >  trunk/elementary/src/bin/test_index.c trunk/elementary/src/lib/
> Elementary.h.in trunk/elementary/src/lib/elm_index.c
> >
> > Modified: trunk/elementary/src/bin/test_index.c
> > ===================================================================
> > --- trunk/elementary/src/bin/test_index.c       2011-12-06 11:36:29 UTC
> (rev 65955)
> > +++ trunk/elementary/src/bin/test_index.c       2011-12-06 14:05:55 UTC
> (rev 65956)
> > @@ -20,7 +20,7 @@
> >  {
> >    // called on a change but delayed in case multiple changes happen in a
> >    // short timespan
> > -   elm_genlist_item_top_bring_in(event_info);
> > +   elm_genlist_item_top_bring_in(elm_index_item_data_get(event_info));
> >  }
> >
> >  void
> > @@ -34,7 +34,7 @@
> >  index_selected(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void
> *event_info)
> >  {
> >    // called on final select
> > -   elm_genlist_item_top_bring_in(event_info);
> > +   elm_genlist_item_top_bring_in(elm_index_item_data_get(event_info));
> >  }
> >
> >  void
> > @@ -160,13 +160,15 @@
> >    Test_Index2_Elements *gui = data;
> >    const char *label, *label_next;
> >    Elm_List_Item *it, *it_next;
> > +   Elm_Index_Item *iit;
> >
> >    it = elm_list_selected_item_get(obj);
> >    it_next = elm_list_item_next(it);
> >
> >    if (!it_next)
> >      {
> > -       elm_index_item_del(gui->id, it);
> > +        iit = elm_index_item_find(gui->id, it);
> > +        if (iit) elm_index_item_del(gui->id, iit);
> >        elm_list_item_del(it);
> >        return;
> >      }
> > @@ -174,14 +176,11 @@
> >    label = elm_list_item_label_get(it);
> >    label_next = elm_list_item_label_get(it_next);
> >
> > +   iit = elm_index_item_find(gui->id, it);
> >    if (label[0] == label_next[0])
> > -     {
> > -       Elm_Index_Item *iit;
> > -       iit = elm_index_item_find(gui->id, it);
> > -       elm_index_item_data_set(iit, it_next);
> > -     }
> > +     elm_index_item_data_set(iit, it_next);
> >    else
> > -     elm_index_item_del(gui->id, it);
> > +     elm_index_item_del(gui->id, iit);
> >
> >    elm_list_item_del(it);
> >  }
> > @@ -189,7 +188,7 @@
> >  void
> >  test_index2_id_changed(void *data __UNUSED__, Evas_Object *obj
> __UNUSED__, void *event_info)
> >  {
> > -   elm_list_item_show(event_info);
> > +   elm_list_item_show(elm_index_item_data_get(event_info));
> >  }
> >
> >  void
> >
> > Modified: trunk/elementary/src/lib/Elementary.h.in
> > ===================================================================
> > --- trunk/elementary/src/lib/Elementary.h.in    2011-12-06 11:36:29 UTC
> (rev 65955)
> > +++ trunk/elementary/src/lib/Elementary.h.in    2011-12-06 14:05:55 UTC
> (rev 65956)
> > @@ -22399,19 +22399,14 @@
> >    EAPI int             elm_index_item_level_get(const Evas_Object *obj)
> EINA_ARG_NONNULL(1);
> >
> >    /**
> > -    * Returns the last selected item's data, for a given index widget.
> > +    * Returns the last selected item, for a given index widget.
> >     *
> >     * @param obj The index object.
> > -    * @return The item @b data associated to the last selected item on
> > -    * @p obj (or @c NULL, on errors).
> > +    * @return The last item @b selected on @p obj (or @c NULL, on
> errors).
> >     *
> > -    * @warning The returned value is @b not an #Elm_Index_Item item
> > -    * handle, but the data associated to it (see the @c item parameter
> > -    * in elm_index_item_append(), as an example).
> > -    *
> >     * @ingroup Index
> >     */
> > -   EAPI void           *elm_index_item_selected_get(const Evas_Object
> *obj, int level) EINA_ARG_NONNULL(1);
> > +   EAPI Elm_Index_Item *elm_index_item_selected_get(const Evas_Object
> *obj, int level) EINA_ARG_NONNULL(1);
> >
> >    /**
> >     * Append a new item on a given index widget.
> > @@ -22456,8 +22451,7 @@
> >     * @param obj The index object.
> >     * @param letter Letter under which the item should be indexed
> >     * @param item The item data to set for the index's item
> > -    * @param relative The item data of the index item to be the
> > -    * predecessor of this new one
> > +    * @param relative The index item to be the predecessor of this new
> one
> >     *
> >     * Despite the most common usage of the @p letter argument is for
> >     * single char strings, one could use arbitrary strings as index
> > @@ -22466,13 +22460,12 @@
> >     * @c item will be the pointer returned back on @c "changed", @c
> >     * "delay,changed" and @c "selected" smart events.
> >     *
> > -    * @note If @p relative is @c NULL or if it's not found to be data
> > -    * set on any previous item on @p obj, this function will behave as
> > +    * @note If @p relative is @c NULL this function will behave as
> >     * elm_index_item_append().
> >     *
> >     * @ingroup Index
> >     */
> > -   EAPI void            elm_index_item_append_relative(Evas_Object
> *obj, const char *letter, const void *item, const void *relative)
> EINA_ARG_NONNULL(1);
> > +   EAPI void            elm_index_item_append_relative(Evas_Object
> *obj, const char *letter, const void *item, const Elm_Index_Item *relative)
> EINA_ARG_NONNULL(1);
> >
> >    /**
> >     * Prepend a new item, on a given index widget, <b>after the item
> > @@ -22481,8 +22474,7 @@
> >     * @param obj The index object.
> >     * @param letter Letter under which the item should be indexed
> >     * @param item The item data to set for the index's item
> > -    * @param relative The item data of the index item to be the
> > -    * successor of this new one
> > +    * @param relative The index item to be the successor of this new one
> >     *
> >     * Despite the most common usage of the @p letter argument is for
> >     * single char strings, one could use arbitrary strings as index
> > @@ -22491,13 +22483,12 @@
> >     * @c item will be the pointer returned back on @c "changed", @c
> >     * "delay,changed" and @c "selected" smart events.
> >     *
> > -    * @note If @p relative is @c NULL or if it's not found to be data
> > -    * set on any previous item on @p obj, this function will behave as
> > +    * @note If @p relative is @c NULL this function will behave as
> >     * elm_index_item_prepend().
> >     *
> >     * @ingroup Index
> >     */
> > -   EAPI void            elm_index_item_prepend_relative(Evas_Object
> *obj, const char *letter, const void *item, const void *relative)
> EINA_ARG_NONNULL(1);
> > +   EAPI void            elm_index_item_prepend_relative(Evas_Object
> *obj, const char *letter, const void *item, const Elm_Index_Item *relative)
> EINA_ARG_NONNULL(1);
> >
> >    /**
> >     * Insert a new item into the given index widget, using @p cmp_func
> > @@ -22537,18 +22528,14 @@
> >     * it's data value</b>.
> >     *
> >     * @param obj The index object
> > -    * @param item The item's data pointer for the item to be removed
> > -    * from @p obj
> > +    * @param item The item to be removed from @p obj
> >     *
> >     * If a deletion callback is set, via elm_index_item_del_cb_set(),
> >     * that callback function will be called by this one.
> >     *
> > -    * @warning The item to be removed from @p obj will be found via
> > -    * its item data pointer, and not by an #Elm_Index_Item handle.
> > -    *
> >     * @ingroup Index
> >     */
> > -   EAPI void            elm_index_item_del(Evas_Object *obj, const void
> *item) EINA_ARG_NONNULL(1);
> > +   EAPI void            elm_index_item_del(Evas_Object *obj,
> Elm_Index_Item *item) EINA_ARG_NONNULL(1);
> >
> >    /**
> >     * Find a given index widget's item, <b>using item data</b>.
> >
> > Modified: trunk/elementary/src/lib/elm_index.c
> > ===================================================================
> > --- trunk/elementary/src/lib/elm_index.c        2011-12-06 11:36:29 UTC
> (rev 65955)
> > +++ trunk/elementary/src/lib/elm_index.c        2011-12-06 14:05:55 UTC
> (rev 65956)
> > @@ -298,11 +298,11 @@
> >  _delay_change(void *data)
> >  {
> >    Widget_Data *wd = elm_widget_data_get(data);
> > -   void *d;
> > +   Elm_Index_Item *item;
> >    if (!wd) return ECORE_CALLBACK_CANCEL;
> >    wd->delay = NULL;
> > -   d = (void *)elm_index_item_selected_get(data, wd->level);
> > -   if (d) evas_object_smart_callback_call(data, SIG_DELAY_CHANGED, d);
> > +   item = elm_index_item_selected_get(data, wd->level);
> > +   if (item) evas_object_smart_callback_call(data, SIG_DELAY_CHANGED,
> item);
> >    return ECORE_CALLBACK_CANCEL;
> >  }
> >
> > @@ -386,7 +386,7 @@
> >                   selectraise = edje_object_data_get(VIEW(it),
> "selectraise");
> >                   if ((selectraise) && (!strcmp(selectraise, "on")))
> >                     evas_object_raise(VIEW(it));
> > -                  evas_object_smart_callback_call((void *)obj,
> SIG_CHANGED, (void *)it->base.data);
> > +                  evas_object_smart_callback_call((void *)obj,
> SIG_CHANGED, (void *)it);
> >                   if (wd->delay) ecore_timer_del(wd->delay);
> >                   wd->delay = ecore_timer_add(0.2, _delay_change, obj);
> >                }
> > @@ -452,12 +452,12 @@
> >  {
> >    Widget_Data *wd = elm_widget_data_get(data);
> >    Evas_Event_Mouse_Up *ev = event_info;
> > -   void *d;
> > +   Elm_Index_Item *item;
> >    if (!wd) return;
> >    if (ev->button != 1) return;
> >    wd->down = 0;
> > -   d = (void *)elm_index_item_selected_get(data, wd->level);
> > -   if (d) evas_object_smart_callback_call(data, SIG_SELECTED, d);
> > +   item = elm_index_item_selected_get(data, wd->level);
> > +   if (item) evas_object_smart_callback_call(data, SIG_SELECTED, item);
> >    elm_index_active_set(data, 0);
> >    edje_object_signal_emit(wd->base, "elm,state,level,0", "elm");
> >    edje_object_signal_emit(wd->base, "elm,indicator,state,inactive",
> "elm");
> > @@ -628,7 +628,7 @@
> >    return wd->level;
> >  }
> >
> > -EAPI void *
> > +EAPI Elm_Index_Item *
> >  elm_index_item_selected_get(const Evas_Object *obj, int level)
> >  {
> >    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
> > @@ -638,7 +638,7 @@
> >    if (!wd) return NULL;
> >    EINA_LIST_FOREACH(wd->items, l, it)
> >       if ((it->selected) && (it->level == level))
> > -        return elm_widget_item_data_get(it);
> > +        return it;
> >    return NULL;
> >  }
> >
> > @@ -670,50 +670,38 @@
> >  }
> >
> >  EAPI void
> > -elm_index_item_append_relative(Evas_Object *obj, const char *letter,
> const void *item, const void *relative)
> > +elm_index_item_append_relative(Evas_Object *obj, const char *letter,
> const void *item, const Elm_Index_Item *relative)
> >  {
> >    ELM_CHECK_WIDTYPE(obj, widtype);
> >    Widget_Data *wd = elm_widget_data_get(obj);
> > -   Elm_Index_Item *it, *it_rel;
> > +   Elm_Index_Item *it;
> >    if (!wd) return;
> >    if (!relative)
> >      {
> >         elm_index_item_append(obj, letter, item);
> >         return;
> >      }
> > -   it_rel = _item_find(obj, relative);
> > -   if (!it_rel)
> > -     {
> > -        elm_index_item_append(obj, letter, item);
> > -        return;
> > -     }
> >    it = _item_new(obj, letter, item);
> >    if (!it) return;
> > -   wd->items = eina_list_append_relative(wd->items, it, it_rel);
> > +   wd->items = eina_list_append_relative(wd->items, it, relative);
> >    _index_box_clear(obj, wd->bx[wd->level], wd->level);
> >  }
> >
> >  EAPI void
> > -elm_index_item_prepend_relative(Evas_Object *obj, const char *letter,
> const void *item, const void *relative)
> > +elm_index_item_prepend_relative(Evas_Object *obj, const char *letter,
> const void *item, const Elm_Index_Item *relative)
> >  {
> >    ELM_CHECK_WIDTYPE(obj, widtype);
> >    Widget_Data *wd = elm_widget_data_get(obj);
> > -   Elm_Index_Item *it, *it_rel;
> > +   Elm_Index_Item *it;
> >    if (!wd) return;
> >    if (!relative)
> >      {
> >         elm_index_item_prepend(obj, letter, item);
> >         return;
> >      }
> > -   it_rel = _item_find(obj, relative);
> > -   if (!it_rel)
> > -     {
> > -        elm_index_item_append(obj, letter, item);
> > -        return;
> > -     }
> >    it = _item_new(obj, letter, item);
> >    if (!it) return;
> > -   wd->items = eina_list_prepend_relative(wd->items, it, it_rel);
> > +   wd->items = eina_list_prepend_relative(wd->items, it, relative);
> >    _index_box_clear(obj, wd->bx[wd->level], wd->level);
> >  }
> >
> > @@ -759,15 +747,13 @@
> >  }
> >
> >  EAPI void
> > -elm_index_item_del(Evas_Object *obj, const void *item)
> > +elm_index_item_del(Evas_Object *obj, Elm_Index_Item *item)
> >  {
> >    ELM_CHECK_WIDTYPE(obj, widtype);
> >    Widget_Data *wd = elm_widget_data_get(obj);
> > -   Elm_Index_Item *it;
> >    if (!wd) return;
> > -   it = _item_find(obj, item);
> > -   if (!it) return;
> > -   _item_free(it);
> > +   if (!item) return;
> > +   _item_free(item);
> >    _index_box_clear(obj, wd->bx[wd->level], wd->level);
> >  }
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > Cloud Services Checklist: Pricing and Packaging Optimization
> > This white paper is intended to serve as a reference, checklist and
> point of
> > discussion for anyone considering optimizing the pricing and packaging
> model
> > of a cloud services business. Read Now!
> > http://www.accelacomm.com/jaw/sfnl/114/51491232/
> > _______________________________________________
> > enlightenment-svn mailing list
> > enlightenment-...@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>
>
> ------------------------------------------------------------------------------
> Cloud Services Checklist: Pricing and Packaging Optimization
> This white paper is intended to serve as a reference, checklist and point
> of
> discussion for anyone considering optimizing the pricing and packaging
> model
> of a cloud services business. Read Now!
> http://www.accelacomm.com/jaw/sfnl/114/51491232/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Michaƫl Bouchaud
------------------------------------------------------------------------------
Cloud Services Checklist: Pricing and Packaging Optimization
This white paper is intended to serve as a reference, checklist and point of 
discussion for anyone considering optimizing the pricing and packaging model 
of a cloud services business. Read Now!
http://www.accelacomm.com/jaw/sfnl/114/51491232/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to